From 7300938372d209523989c7c122952a8888feda79 Mon Sep 17 00:00:00 2001 From: Morten Olsen Date: Tue, 8 Oct 2024 06:41:47 +0200 Subject: [PATCH] cleanup --- .gitignore | 1 + .vagrant/bundler/global.sol | 1 - .vagrant/machines/default/libvirt/vagrant_cwd | 1 - .vagrant/rgloader/loader.rb | 12 ---- Vagrantfile | 2 +- inventory.yml | 11 ++++ notes.md | 1 + playbooks/image.yml | 3 +- .../roles/{info => base_info}/tasks/main.yml | 9 +++ playbooks/roles/base_system/meta/main.yml | 2 + .../{system => base_system}/tasks/main.yml | 0 .../files/.shellrc/rc.d/01-env.sh} | 3 + playbooks/roles/base_terminal/meta/main.yml | 3 + .../tasks/config.yml | 1 + .../tasks/install.yml | 0 .../{desktop => base_terminal}/tasks/main.yml | 0 .../base_terminal/vars/default/default.yml | 14 +++++ .../vars/empty.yml | 0 .../vars/zeronorth/default.yml | 0 playbooks/roles/desktop/meta/main.yml | 4 -- playbooks/roles/dev/vars/empty.yml | 4 -- playbooks/roles/docker/meta/main.yml | 4 -- .../files/default/.config/kitty/kitty.conf | 0 playbooks/roles/env_desktop/meta/main.yml | 3 + .../{desktop => env_desktop}/tasks/config.yml | 0 .../tasks/install.yml | 0 .../roles/{dev => env_desktop}/tasks/main.yml | 0 .../vars/default/default.yml | 0 .../{desktop => env_desktop}/vars/empty.yml | 0 .../vars/personal/Darwin.yml | 0 .../vars/zeronorth/Darwin.yml | 0 playbooks/roles/env_develop/meta/main.yml | 3 + .../{dev => env_develop}/tasks/install.yml | 0 playbooks/roles/env_develop/tasks/main.yml | 20 +++++++ .../default => env_develop/vars}/default.yml | 2 +- .../files/private/.ssh/config.d/private-git | 0 .../private/.ssh/keys/github-private.pub | 0 .../files/private/Projects/private/.envrc | 0 .../files/private/Projects/private/.gitconfig | 0 .../files/private/Projects/private/.npmrc | 0 .../zeronorth/.ssh/config.d/zeronorth-git | 0 .../zeronorth/.ssh/keys/github-zeronorth.pub | 0 .../files/zeronorth/Projects/zeronorth/.envrc | 0 .../zeronorth/Projects/zeronorth/.gitconfig | 0 .../files/zeronorth/Projects/zeronorth/.npmrc | 0 playbooks/roles/env_terminal/meta/main.yml | 11 ++++ .../{dev => env_terminal}/tasks/config.yml | 15 ++++- .../roles/env_terminal/tasks/install.yml | 33 ++++++++++ playbooks/roles/env_terminal/tasks/main.yml | 22 +++++++ .../vars/default/default.yml | 0 playbooks/roles/env_terminal/vars/empty.yml | 4 ++ .../env_terminal/vars/zeronorth/default.yml | 5 ++ .../files}/.ssh/authorized_keys | 0 playbooks/roles/server_ssh/meta/main.yml | 3 + playbooks/roles/server_ssh/tasks/main.yml | 39 ++++++++++++ .../roles/software/atuin/defaults/main.yml | 14 ----- playbooks/roles/software/atuin/meta/main.yml | 4 -- playbooks/roles/software/atuin/tasks/main.yml | 30 ---------- .../roles/software/starship/defaults/main.yml | 14 ----- .../roles/software/starship/meta/main.yml | 4 -- .../roles/software_atuin/defaults/main.yml | 14 +++++ .../files}/.config/atuin/config.toml | 0 playbooks/roles/software_atuin/meta/main.yml | 4 ++ playbooks/roles/software_atuin/tasks/main.yml | 60 +++++++++++++++++++ playbooks/roles/software_docker/meta/main.yml | 3 + .../tasks/macos.yml | 0 .../tasks/main.yml | 0 .../tasks/ubuntu.yml | 0 .../files/.local/bin}/rollout.sh | 0 .../files}/.ssh/config.d/github | 0 playbooks/roles/software_git/meta/main.yml | 3 + playbooks/roles/software_git/tasks/main.yml | 47 +++++++++++++++ .../templates}/.gitconfig.j2 | 0 .../files}/.shellrc/rc.d/01-nvim.sh | 0 playbooks/roles/software_nvim/meta/main.yml | 4 ++ .../tasks => software_nvim}/nvim.yml | 2 +- playbooks/roles/software_nvim/tasks/main.yml | 56 +++++++++++++++++ .../files}/.shellrc/rc.d/05-nvm.sh | 0 playbooks/roles/software_nvm/meta/main.yml | 4 ++ playbooks/roles/software_nvm/tasks/main.yml | 51 ++++++++++++++++ .../files}/.ssh/config | 0 playbooks/roles/software_ssh/meta/main.yml | 4 ++ playbooks/roles/software_ssh/tasks/main.yml | 0 .../roles/software_starship/defaults/main.yml | 14 +++++ .../roles/software_starship/meta/main.yml | 4 ++ .../tasks/main.yml | 20 ++++--- .../files}/.tmux.conf | 0 playbooks/roles/software_tmux/meta/main.yml | 4 ++ playbooks/roles/software_tmux/tasks/main.yml | 39 ++++++++++++ .../default => software_zsh/files}/.zshrc | 0 playbooks/roles/software_zsh/meta/main.yml | 4 ++ playbooks/roles/software_zsh/tasks/main.yml | 54 +++++++++++++++++ playbooks/roles/system/meta/main.yml | 2 - .../{update => tasks_update}/tasks/main.yml | 0 .../files/default/.shellrc/rc.d/01-env.sh | 1 - .../files/default/.shellrc/rc.d/01-scripts.sh | 2 - .../files/default/.shellrc/rc.d/10-gpg.sh | 5 -- playbooks/roles/terminal/meta/main.yml | 4 -- playbooks/roles/terminal/tasks/main.yml | 55 ----------------- playbooks/roles/terminal/tasks/nvm.yml | 19 ------ playbooks/setup.yml | 16 +++-- scripts/setup-local.sh | 1 - scripts/setup-remote.sh | 19 ++++++ 103 files changed, 619 insertions(+), 198 deletions(-) delete mode 100644 .vagrant/bundler/global.sol delete mode 100644 .vagrant/machines/default/libvirt/vagrant_cwd delete mode 100644 .vagrant/rgloader/loader.rb create mode 100644 notes.md rename playbooks/roles/{info => base_info}/tasks/main.yml (52%) create mode 100644 playbooks/roles/base_system/meta/main.yml rename playbooks/roles/{system => base_system}/tasks/main.yml (100%) rename playbooks/roles/{terminal/files/default/.shellrc/rc.d/01-alias.sh => base_terminal/files/.shellrc/rc.d/01-env.sh} (70%) create mode 100644 playbooks/roles/base_terminal/meta/main.yml rename playbooks/roles/{terminal => base_terminal}/tasks/config.yml (97%) rename playbooks/roles/{terminal => base_terminal}/tasks/install.yml (100%) rename playbooks/roles/{desktop => base_terminal}/tasks/main.yml (100%) create mode 100644 playbooks/roles/base_terminal/vars/default/default.yml rename playbooks/roles/{terminal => base_terminal}/vars/empty.yml (100%) rename playbooks/roles/{terminal => base_terminal}/vars/zeronorth/default.yml (100%) delete mode 100644 playbooks/roles/desktop/meta/main.yml delete mode 100644 playbooks/roles/dev/vars/empty.yml delete mode 100644 playbooks/roles/docker/meta/main.yml rename playbooks/roles/{desktop => env_desktop}/files/default/.config/kitty/kitty.conf (100%) create mode 100644 playbooks/roles/env_desktop/meta/main.yml rename playbooks/roles/{desktop => env_desktop}/tasks/config.yml (100%) rename playbooks/roles/{desktop => env_desktop}/tasks/install.yml (100%) rename playbooks/roles/{dev => env_desktop}/tasks/main.yml (100%) rename playbooks/roles/{desktop => env_desktop}/vars/default/default.yml (100%) rename playbooks/roles/{desktop => env_desktop}/vars/empty.yml (100%) rename playbooks/roles/{desktop => env_desktop}/vars/personal/Darwin.yml (100%) rename playbooks/roles/{desktop => env_desktop}/vars/zeronorth/Darwin.yml (100%) create mode 100644 playbooks/roles/env_develop/meta/main.yml rename playbooks/roles/{dev => env_develop}/tasks/install.yml (100%) create mode 100644 playbooks/roles/env_develop/tasks/main.yml rename playbooks/roles/{dev/vars/default => env_develop/vars}/default.yml (60%) rename playbooks/roles/{terminal => env_terminal}/files/private/.ssh/config.d/private-git (100%) rename playbooks/roles/{terminal => env_terminal}/files/private/.ssh/keys/github-private.pub (100%) rename playbooks/roles/{terminal => env_terminal}/files/private/Projects/private/.envrc (100%) rename playbooks/roles/{terminal => env_terminal}/files/private/Projects/private/.gitconfig (100%) rename playbooks/roles/{terminal => env_terminal}/files/private/Projects/private/.npmrc (100%) rename playbooks/roles/{terminal => env_terminal}/files/zeronorth/.ssh/config.d/zeronorth-git (100%) rename playbooks/roles/{terminal => env_terminal}/files/zeronorth/.ssh/keys/github-zeronorth.pub (100%) rename playbooks/roles/{terminal => env_terminal}/files/zeronorth/Projects/zeronorth/.envrc (100%) rename playbooks/roles/{terminal => env_terminal}/files/zeronorth/Projects/zeronorth/.gitconfig (100%) rename playbooks/roles/{terminal => env_terminal}/files/zeronorth/Projects/zeronorth/.npmrc (100%) create mode 100644 playbooks/roles/env_terminal/meta/main.yml rename playbooks/roles/{dev => env_terminal}/tasks/config.yml (64%) create mode 100644 playbooks/roles/env_terminal/tasks/install.yml create mode 100644 playbooks/roles/env_terminal/tasks/main.yml rename playbooks/roles/{terminal => env_terminal}/vars/default/default.yml (100%) create mode 100644 playbooks/roles/env_terminal/vars/empty.yml create mode 100644 playbooks/roles/env_terminal/vars/zeronorth/default.yml rename playbooks/roles/{terminal/files/default => server_ssh/files}/.ssh/authorized_keys (100%) create mode 100644 playbooks/roles/server_ssh/meta/main.yml create mode 100644 playbooks/roles/server_ssh/tasks/main.yml delete mode 100644 playbooks/roles/software/atuin/defaults/main.yml delete mode 100644 playbooks/roles/software/atuin/meta/main.yml delete mode 100644 playbooks/roles/software/atuin/tasks/main.yml delete mode 100644 playbooks/roles/software/starship/defaults/main.yml delete mode 100644 playbooks/roles/software/starship/meta/main.yml create mode 100644 playbooks/roles/software_atuin/defaults/main.yml rename playbooks/roles/{terminal/files/default => software_atuin/files}/.config/atuin/config.toml (100%) create mode 100644 playbooks/roles/software_atuin/meta/main.yml create mode 100644 playbooks/roles/software_atuin/tasks/main.yml create mode 100644 playbooks/roles/software_docker/meta/main.yml rename playbooks/roles/{docker => software_docker}/tasks/macos.yml (100%) rename playbooks/roles/{docker => software_docker}/tasks/main.yml (100%) rename playbooks/roles/{docker => software_docker}/tasks/ubuntu.yml (100%) rename playbooks/roles/{terminal/files/default/.scripts => software_git/files/.local/bin}/rollout.sh (100%) rename playbooks/roles/{terminal/files/default => software_git/files}/.ssh/config.d/github (100%) create mode 100644 playbooks/roles/software_git/meta/main.yml create mode 100644 playbooks/roles/software_git/tasks/main.yml rename playbooks/roles/{terminal/templates/default => software_git/templates}/.gitconfig.j2 (100%) rename playbooks/roles/{terminal/files/default => software_nvim/files}/.shellrc/rc.d/01-nvim.sh (100%) create mode 100644 playbooks/roles/software_nvim/meta/main.yml rename playbooks/roles/{terminal/tasks => software_nvim}/nvim.yml (90%) create mode 100644 playbooks/roles/software_nvim/tasks/main.yml rename playbooks/roles/{terminal/files/default => software_nvm/files}/.shellrc/rc.d/05-nvm.sh (100%) create mode 100644 playbooks/roles/software_nvm/meta/main.yml create mode 100644 playbooks/roles/software_nvm/tasks/main.yml rename playbooks/roles/{terminal/files/default => software_ssh/files}/.ssh/config (100%) create mode 100644 playbooks/roles/software_ssh/meta/main.yml create mode 100644 playbooks/roles/software_ssh/tasks/main.yml create mode 100644 playbooks/roles/software_starship/defaults/main.yml create mode 100644 playbooks/roles/software_starship/meta/main.yml rename playbooks/roles/{software/starship => software_starship}/tasks/main.yml (50%) rename playbooks/roles/{terminal/files/default => software_tmux/files}/.tmux.conf (100%) create mode 100644 playbooks/roles/software_tmux/meta/main.yml create mode 100644 playbooks/roles/software_tmux/tasks/main.yml rename playbooks/roles/{terminal/files/default => software_zsh/files}/.zshrc (100%) create mode 100644 playbooks/roles/software_zsh/meta/main.yml create mode 100644 playbooks/roles/software_zsh/tasks/main.yml delete mode 100644 playbooks/roles/system/meta/main.yml rename playbooks/roles/{update => tasks_update}/tasks/main.yml (100%) delete mode 100644 playbooks/roles/terminal/files/default/.shellrc/rc.d/01-env.sh delete mode 100644 playbooks/roles/terminal/files/default/.shellrc/rc.d/01-scripts.sh delete mode 100644 playbooks/roles/terminal/files/default/.shellrc/rc.d/10-gpg.sh delete mode 100644 playbooks/roles/terminal/meta/main.yml delete mode 100644 playbooks/roles/terminal/tasks/main.yml delete mode 100644 playbooks/roles/terminal/tasks/nvm.yml create mode 100755 scripts/setup-remote.sh diff --git a/.gitignore b/.gitignore index ef81b1e..6595ed9 100644 --- a/.gitignore +++ b/.gitignore @@ -1 +1,2 @@ /.venv/ +/.vagrant/ diff --git a/.vagrant/bundler/global.sol b/.vagrant/bundler/global.sol deleted file mode 100644 index 3b4b853..0000000 --- a/.vagrant/bundler/global.sol +++ /dev/null @@ -1 +0,0 @@ -{"dependencies":[["racc",["~> 1.4"]],["nokogiri",["~> 1.6"]],["diffy",[">= 0"]],["rexml",[">= 0"]],["xml-simple",[">= 0"]],["mime-types-data",["~> 3.2015"]],["mime-types",[">= 0"]],["formatador",[">= 0.2","< 2.0"]],["excon",["~> 0.71"]],["builder",[">= 0"]],["fog-core",["~> 2"]],["json",[">= 0"]],["ruby-libvirt",[">= 0.7.0"]],["fog-xml",["~> 0.1.1"]],["multi_json",["~> 1.10"]],["fog-json",[">= 0"]],["fog-libvirt",[">= 0.6.0"]],["vagrant-libvirt",["= 0.12.2"]],["vagrant-qemu",["= 0.3.6"]]],"checksum":"d29c877f7d936a4ed482393f2146efe63cd2dcecac3c1ae41fbb8ca2d854a211","vagrant_version":"2.4.1"} \ No newline at end of file diff --git a/.vagrant/machines/default/libvirt/vagrant_cwd b/.vagrant/machines/default/libvirt/vagrant_cwd deleted file mode 100644 index 142fa18..0000000 --- a/.vagrant/machines/default/libvirt/vagrant_cwd +++ /dev/null @@ -1 +0,0 @@ -/Users/alice/Projects/private/system \ No newline at end of file diff --git a/.vagrant/rgloader/loader.rb b/.vagrant/rgloader/loader.rb deleted file mode 100644 index b6c81bf..0000000 --- a/.vagrant/rgloader/loader.rb +++ /dev/null @@ -1,12 +0,0 @@ -# Copyright (c) HashiCorp, Inc. -# SPDX-License-Identifier: BUSL-1.1 - -# This file loads the proper rgloader/loader.rb file that comes packaged -# with Vagrant so that encoded files can properly run with Vagrant. - -if ENV["VAGRANT_INSTALLER_EMBEDDED_DIR"] - require File.expand_path( - "rgloader/loader", ENV["VAGRANT_INSTALLER_EMBEDDED_DIR"]) -else - raise "Encoded files can't be read outside of the Vagrant installer." -end diff --git a/Vagrantfile b/Vagrantfile index b3fda91..1903660 100644 --- a/Vagrantfile +++ b/Vagrantfile @@ -2,7 +2,7 @@ # vi: set ft=ruby : Vagrant.configure("2") do |config| config.vm.provider "virtualbox" - config.vm.box = "archlinux/archlinux" + config.vm.box = "generic/fedora39" config.vm.provision "ansible" do |ansible| ansible.playbook = "playbooks/setup.yml" end diff --git a/inventory.yml b/inventory.yml index a1a3067..79308ce 100644 --- a/inventory.yml +++ b/inventory.yml @@ -3,8 +3,19 @@ images: docker-dev: contexts: - privat +android: + hosts: + pixel9: + ansible_host: 192.168.3.7 + ansible_connection: ssh + ansible_port: 8022 + ansible_user: u0_a200 desktops: hosts: zn-macbook: + ansible_host: 192.168.3.3 + ansible_connection: ssh + ansible_port: 22 + ansible_user: alice contexts: - zeronorth diff --git a/notes.md b/notes.md new file mode 100644 index 0000000..621e28c --- /dev/null +++ b/notes.md @@ -0,0 +1 @@ +https://github.com/hashicorp/vagrant/issues/13501#issuecomment-2394397587 diff --git a/playbooks/image.yml b/playbooks/image.yml index a11bd52..dea4e3d 100644 --- a/playbooks/image.yml +++ b/playbooks/image.yml @@ -2,4 +2,5 @@ - name: Setup host hosts: localhost roles: - - role: terminal + - role: env_terminal + - role: env_develop diff --git a/playbooks/roles/info/tasks/main.yml b/playbooks/roles/base_info/tasks/main.yml similarity index 52% rename from playbooks/roles/info/tasks/main.yml rename to playbooks/roles/base_info/tasks/main.yml index eed4128..cf22bc8 100644 --- a/playbooks/roles/info/tasks/main.yml +++ b/playbooks/roles/base_info/tasks/main.yml @@ -1,3 +1,12 @@ +- name: Show info + debug: + msg: + user: "{{ ansible_user }}" + home: "{{ ansible_env.HOME }}" + distribution: "{{ ansible_distribution }}" + family: "{{ ansible_os_family}}" + arch: "{{ ansible_architecture }}" + - name: Setting host facts tags: always ansible.builtin.set_fact: diff --git a/playbooks/roles/base_system/meta/main.yml b/playbooks/roles/base_system/meta/main.yml new file mode 100644 index 0000000..c0421e8 --- /dev/null +++ b/playbooks/roles/base_system/meta/main.yml @@ -0,0 +1,2 @@ +dependencies: + - role: base_info diff --git a/playbooks/roles/system/tasks/main.yml b/playbooks/roles/base_system/tasks/main.yml similarity index 100% rename from playbooks/roles/system/tasks/main.yml rename to playbooks/roles/base_system/tasks/main.yml diff --git a/playbooks/roles/terminal/files/default/.shellrc/rc.d/01-alias.sh b/playbooks/roles/base_terminal/files/.shellrc/rc.d/01-env.sh similarity index 70% rename from playbooks/roles/terminal/files/default/.shellrc/rc.d/01-alias.sh rename to playbooks/roles/base_terminal/files/.shellrc/rc.d/01-env.sh index 445f0b9..ce72312 100644 --- a/playbooks/roles/terminal/files/default/.shellrc/rc.d/01-alias.sh +++ b/playbooks/roles/base_terminal/files/.shellrc/rc.d/01-env.sh @@ -1,3 +1,6 @@ +export TMPDIR="${TMPDIR:-/tmp}" +export PATH="$PATH:$HOME/.local/bin" + alias ls=eza alias cat=bat alias grep=rg diff --git a/playbooks/roles/base_terminal/meta/main.yml b/playbooks/roles/base_terminal/meta/main.yml new file mode 100644 index 0000000..ee75b16 --- /dev/null +++ b/playbooks/roles/base_terminal/meta/main.yml @@ -0,0 +1,3 @@ +--- +dependencies: + - role: base_info diff --git a/playbooks/roles/terminal/tasks/config.yml b/playbooks/roles/base_terminal/tasks/config.yml similarity index 97% rename from playbooks/roles/terminal/tasks/config.yml rename to playbooks/roles/base_terminal/tasks/config.yml index 4d15b2c..309b2d5 100644 --- a/playbooks/roles/terminal/tasks/config.yml +++ b/playbooks/roles/base_terminal/tasks/config.yml @@ -3,6 +3,7 @@ tags: - config ansible.builtin.file: + mode: "{{ item.mode }}" path: "{{ home }}/{{ item.path }}" state: directory with_community.general.filetree: diff --git a/playbooks/roles/terminal/tasks/install.yml b/playbooks/roles/base_terminal/tasks/install.yml similarity index 100% rename from playbooks/roles/terminal/tasks/install.yml rename to playbooks/roles/base_terminal/tasks/install.yml diff --git a/playbooks/roles/desktop/tasks/main.yml b/playbooks/roles/base_terminal/tasks/main.yml similarity index 100% rename from playbooks/roles/desktop/tasks/main.yml rename to playbooks/roles/base_terminal/tasks/main.yml diff --git a/playbooks/roles/base_terminal/vars/default/default.yml b/playbooks/roles/base_terminal/vars/default/default.yml new file mode 100644 index 0000000..c7caaf8 --- /dev/null +++ b/playbooks/roles/base_terminal/vars/default/default.yml @@ -0,0 +1,14 @@ +--- +terminal_pkgs: + - bat + - eza + - direnv + - fzf + - gnupg + - jq + - ripgrep + - neovim + - gh + - tmux + - zoxide + - sshpass diff --git a/playbooks/roles/terminal/vars/empty.yml b/playbooks/roles/base_terminal/vars/empty.yml similarity index 100% rename from playbooks/roles/terminal/vars/empty.yml rename to playbooks/roles/base_terminal/vars/empty.yml diff --git a/playbooks/roles/terminal/vars/zeronorth/default.yml b/playbooks/roles/base_terminal/vars/zeronorth/default.yml similarity index 100% rename from playbooks/roles/terminal/vars/zeronorth/default.yml rename to playbooks/roles/base_terminal/vars/zeronorth/default.yml diff --git a/playbooks/roles/desktop/meta/main.yml b/playbooks/roles/desktop/meta/main.yml deleted file mode 100644 index 6ec6c73..0000000 --- a/playbooks/roles/desktop/meta/main.yml +++ /dev/null @@ -1,4 +0,0 @@ ---- -dependencies: - - role: info - - role: system diff --git a/playbooks/roles/dev/vars/empty.yml b/playbooks/roles/dev/vars/empty.yml deleted file mode 100644 index ea9617d..0000000 --- a/playbooks/roles/dev/vars/empty.yml +++ /dev/null @@ -1,4 +0,0 @@ ---- -dev_pkgs: [] -dev_casks: [] -dev_flatpaks: [] diff --git a/playbooks/roles/docker/meta/main.yml b/playbooks/roles/docker/meta/main.yml deleted file mode 100644 index 6ec6c73..0000000 --- a/playbooks/roles/docker/meta/main.yml +++ /dev/null @@ -1,4 +0,0 @@ ---- -dependencies: - - role: info - - role: system diff --git a/playbooks/roles/desktop/files/default/.config/kitty/kitty.conf b/playbooks/roles/env_desktop/files/default/.config/kitty/kitty.conf similarity index 100% rename from playbooks/roles/desktop/files/default/.config/kitty/kitty.conf rename to playbooks/roles/env_desktop/files/default/.config/kitty/kitty.conf diff --git a/playbooks/roles/env_desktop/meta/main.yml b/playbooks/roles/env_desktop/meta/main.yml new file mode 100644 index 0000000..ee75b16 --- /dev/null +++ b/playbooks/roles/env_desktop/meta/main.yml @@ -0,0 +1,3 @@ +--- +dependencies: + - role: base_info diff --git a/playbooks/roles/desktop/tasks/config.yml b/playbooks/roles/env_desktop/tasks/config.yml similarity index 100% rename from playbooks/roles/desktop/tasks/config.yml rename to playbooks/roles/env_desktop/tasks/config.yml diff --git a/playbooks/roles/desktop/tasks/install.yml b/playbooks/roles/env_desktop/tasks/install.yml similarity index 100% rename from playbooks/roles/desktop/tasks/install.yml rename to playbooks/roles/env_desktop/tasks/install.yml diff --git a/playbooks/roles/dev/tasks/main.yml b/playbooks/roles/env_desktop/tasks/main.yml similarity index 100% rename from playbooks/roles/dev/tasks/main.yml rename to playbooks/roles/env_desktop/tasks/main.yml diff --git a/playbooks/roles/desktop/vars/default/default.yml b/playbooks/roles/env_desktop/vars/default/default.yml similarity index 100% rename from playbooks/roles/desktop/vars/default/default.yml rename to playbooks/roles/env_desktop/vars/default/default.yml diff --git a/playbooks/roles/desktop/vars/empty.yml b/playbooks/roles/env_desktop/vars/empty.yml similarity index 100% rename from playbooks/roles/desktop/vars/empty.yml rename to playbooks/roles/env_desktop/vars/empty.yml diff --git a/playbooks/roles/desktop/vars/personal/Darwin.yml b/playbooks/roles/env_desktop/vars/personal/Darwin.yml similarity index 100% rename from playbooks/roles/desktop/vars/personal/Darwin.yml rename to playbooks/roles/env_desktop/vars/personal/Darwin.yml diff --git a/playbooks/roles/desktop/vars/zeronorth/Darwin.yml b/playbooks/roles/env_desktop/vars/zeronorth/Darwin.yml similarity index 100% rename from playbooks/roles/desktop/vars/zeronorth/Darwin.yml rename to playbooks/roles/env_desktop/vars/zeronorth/Darwin.yml diff --git a/playbooks/roles/env_develop/meta/main.yml b/playbooks/roles/env_develop/meta/main.yml new file mode 100644 index 0000000..ee75b16 --- /dev/null +++ b/playbooks/roles/env_develop/meta/main.yml @@ -0,0 +1,3 @@ +--- +dependencies: + - role: base_info diff --git a/playbooks/roles/dev/tasks/install.yml b/playbooks/roles/env_develop/tasks/install.yml similarity index 100% rename from playbooks/roles/dev/tasks/install.yml rename to playbooks/roles/env_develop/tasks/install.yml diff --git a/playbooks/roles/env_develop/tasks/main.yml b/playbooks/roles/env_develop/tasks/main.yml new file mode 100644 index 0000000..cb8cc53 --- /dev/null +++ b/playbooks/roles/env_develop/tasks/main.yml @@ -0,0 +1,20 @@ +--- +- name: "Load vars : {{ context }}" + ansible.builtin.include_vars: "{{ item }}" + tags: + - install + with_first_found: + - files: + - "{{ ansible_distribution }}-{{ ansible_distribution_release }}.yml" + - "{{ ansible_distribution }}.yml" + - "{{ ansible_os_family }}.yml" + - default.yml + paths: ../vars + skip: true + +- name: "Install dependencies" + tags: + - install + when: env_develop_pkgs + ansible.builtin.package: + name: "{{ env_develop_pkgs }}" diff --git a/playbooks/roles/dev/vars/default/default.yml b/playbooks/roles/env_develop/vars/default.yml similarity index 60% rename from playbooks/roles/dev/vars/default/default.yml rename to playbooks/roles/env_develop/vars/default.yml index 6e0cd55..6d40d23 100644 --- a/playbooks/roles/dev/vars/default/default.yml +++ b/playbooks/roles/env_develop/vars/default.yml @@ -1,4 +1,4 @@ --- -dev_pkgs: +env_develop_pkgs: - rustup - python3 diff --git a/playbooks/roles/terminal/files/private/.ssh/config.d/private-git b/playbooks/roles/env_terminal/files/private/.ssh/config.d/private-git similarity index 100% rename from playbooks/roles/terminal/files/private/.ssh/config.d/private-git rename to playbooks/roles/env_terminal/files/private/.ssh/config.d/private-git diff --git a/playbooks/roles/terminal/files/private/.ssh/keys/github-private.pub b/playbooks/roles/env_terminal/files/private/.ssh/keys/github-private.pub similarity index 100% rename from playbooks/roles/terminal/files/private/.ssh/keys/github-private.pub rename to playbooks/roles/env_terminal/files/private/.ssh/keys/github-private.pub diff --git a/playbooks/roles/terminal/files/private/Projects/private/.envrc b/playbooks/roles/env_terminal/files/private/Projects/private/.envrc similarity index 100% rename from playbooks/roles/terminal/files/private/Projects/private/.envrc rename to playbooks/roles/env_terminal/files/private/Projects/private/.envrc diff --git a/playbooks/roles/terminal/files/private/Projects/private/.gitconfig b/playbooks/roles/env_terminal/files/private/Projects/private/.gitconfig similarity index 100% rename from playbooks/roles/terminal/files/private/Projects/private/.gitconfig rename to playbooks/roles/env_terminal/files/private/Projects/private/.gitconfig diff --git a/playbooks/roles/terminal/files/private/Projects/private/.npmrc b/playbooks/roles/env_terminal/files/private/Projects/private/.npmrc similarity index 100% rename from playbooks/roles/terminal/files/private/Projects/private/.npmrc rename to playbooks/roles/env_terminal/files/private/Projects/private/.npmrc diff --git a/playbooks/roles/terminal/files/zeronorth/.ssh/config.d/zeronorth-git b/playbooks/roles/env_terminal/files/zeronorth/.ssh/config.d/zeronorth-git similarity index 100% rename from playbooks/roles/terminal/files/zeronorth/.ssh/config.d/zeronorth-git rename to playbooks/roles/env_terminal/files/zeronorth/.ssh/config.d/zeronorth-git diff --git a/playbooks/roles/terminal/files/zeronorth/.ssh/keys/github-zeronorth.pub b/playbooks/roles/env_terminal/files/zeronorth/.ssh/keys/github-zeronorth.pub similarity index 100% rename from playbooks/roles/terminal/files/zeronorth/.ssh/keys/github-zeronorth.pub rename to playbooks/roles/env_terminal/files/zeronorth/.ssh/keys/github-zeronorth.pub diff --git a/playbooks/roles/terminal/files/zeronorth/Projects/zeronorth/.envrc b/playbooks/roles/env_terminal/files/zeronorth/Projects/zeronorth/.envrc similarity index 100% rename from playbooks/roles/terminal/files/zeronorth/Projects/zeronorth/.envrc rename to playbooks/roles/env_terminal/files/zeronorth/Projects/zeronorth/.envrc diff --git a/playbooks/roles/terminal/files/zeronorth/Projects/zeronorth/.gitconfig b/playbooks/roles/env_terminal/files/zeronorth/Projects/zeronorth/.gitconfig similarity index 100% rename from playbooks/roles/terminal/files/zeronorth/Projects/zeronorth/.gitconfig rename to playbooks/roles/env_terminal/files/zeronorth/Projects/zeronorth/.gitconfig diff --git a/playbooks/roles/terminal/files/zeronorth/Projects/zeronorth/.npmrc b/playbooks/roles/env_terminal/files/zeronorth/Projects/zeronorth/.npmrc similarity index 100% rename from playbooks/roles/terminal/files/zeronorth/Projects/zeronorth/.npmrc rename to playbooks/roles/env_terminal/files/zeronorth/Projects/zeronorth/.npmrc diff --git a/playbooks/roles/env_terminal/meta/main.yml b/playbooks/roles/env_terminal/meta/main.yml new file mode 100644 index 0000000..a29b6ce --- /dev/null +++ b/playbooks/roles/env_terminal/meta/main.yml @@ -0,0 +1,11 @@ +--- +dependencies: + - role: base_info + - role: software_git + - role: software_zsh + - role: software_starship + - role: software_tmux + - role: software_ssh + - role: software_nvm + - role: software_nvim + - role: software_atuin diff --git a/playbooks/roles/dev/tasks/config.yml b/playbooks/roles/env_terminal/tasks/config.yml similarity index 64% rename from playbooks/roles/dev/tasks/config.yml rename to playbooks/roles/env_terminal/tasks/config.yml index 97033c1..309b2d5 100644 --- a/playbooks/roles/dev/tasks/config.yml +++ b/playbooks/roles/env_terminal/tasks/config.yml @@ -1,4 +1,17 @@ --- +- name: Copy config {{ context }} + tags: + - config + ansible.builtin.file: + mode: "{{ item.mode }}" + path: "{{ home }}/{{ item.path }}" + state: directory + with_community.general.filetree: + - ../files/{{ context }} + loop_control: + label: "{{ item.path }}" + when: item.state == 'directory' + - name: "Copy templates : {{ context }}" tags: - config @@ -12,7 +25,7 @@ label: "{{ item.path }}" when: item.state == 'file' -- name: "Copy config : {{ context }}" +- name: Copy config {{ context }} tags: - config ansible.builtin.copy: diff --git a/playbooks/roles/env_terminal/tasks/install.yml b/playbooks/roles/env_terminal/tasks/install.yml new file mode 100644 index 0000000..db1b7d0 --- /dev/null +++ b/playbooks/roles/env_terminal/tasks/install.yml @@ -0,0 +1,33 @@ +--- +- name: "Unload vars : {{ context }}" + ansible.builtin.include_vars: ../vars/empty.yml + tags: + - install + +- name: "Load vars : {{ context }}" + ansible.builtin.include_vars: "{{ item }}" + tags: + - install + with_first_found: + - files: + - "{{ ansible_distribution }}-{{ ansible_distribution_release }}.yml" + - "{{ ansible_distribution }}.yml" + - "{{ ansible_os_family }}.yml" + - default.yml + paths: ../vars/{{ context }} + skip: true + +- name: "Install dependencies : {{ context }}" + tags: + - install + when: terminal_pkgs + ansible.builtin.package: + name: "{{ terminal_pkgs }}" + +- name: "Install casks : {{ context }}" + tags: + - install + when: terminal_casks + community.general.homebrew_cask: + name: "{{ terminal_casks }}" + state: installed diff --git a/playbooks/roles/env_terminal/tasks/main.yml b/playbooks/roles/env_terminal/tasks/main.yml new file mode 100644 index 0000000..2d23779 --- /dev/null +++ b/playbooks/roles/env_terminal/tasks/main.yml @@ -0,0 +1,22 @@ +--- +- name: Install context dependencies + ansible.builtin.include_tasks: install.yml + loop: "{{ contexts }}" + loop_control: + loop_var: context + tags: + - config + +- name: Install atuin + tags: + - install + ansible.builtin.include_role: + name: software_atuin + +- name: Configure contexts + ansible.builtin.include_tasks: config.yml + loop: "{{ contexts }}" + loop_control: + loop_var: context + tags: + - config diff --git a/playbooks/roles/terminal/vars/default/default.yml b/playbooks/roles/env_terminal/vars/default/default.yml similarity index 100% rename from playbooks/roles/terminal/vars/default/default.yml rename to playbooks/roles/env_terminal/vars/default/default.yml diff --git a/playbooks/roles/env_terminal/vars/empty.yml b/playbooks/roles/env_terminal/vars/empty.yml new file mode 100644 index 0000000..6d4ac1e --- /dev/null +++ b/playbooks/roles/env_terminal/vars/empty.yml @@ -0,0 +1,4 @@ +--- +terminal_pkgs: [] +terminal_casks: [] +terminal_flatpaks: [] diff --git a/playbooks/roles/env_terminal/vars/zeronorth/default.yml b/playbooks/roles/env_terminal/vars/zeronorth/default.yml new file mode 100644 index 0000000..b08be9d --- /dev/null +++ b/playbooks/roles/env_terminal/vars/zeronorth/default.yml @@ -0,0 +1,5 @@ +--- +terminal_pkgs: + - terraform + - awscli + - copier diff --git a/playbooks/roles/terminal/files/default/.ssh/authorized_keys b/playbooks/roles/server_ssh/files/.ssh/authorized_keys similarity index 100% rename from playbooks/roles/terminal/files/default/.ssh/authorized_keys rename to playbooks/roles/server_ssh/files/.ssh/authorized_keys diff --git a/playbooks/roles/server_ssh/meta/main.yml b/playbooks/roles/server_ssh/meta/main.yml new file mode 100644 index 0000000..ee75b16 --- /dev/null +++ b/playbooks/roles/server_ssh/meta/main.yml @@ -0,0 +1,3 @@ +--- +dependencies: + - role: base_info diff --git a/playbooks/roles/server_ssh/tasks/main.yml b/playbooks/roles/server_ssh/tasks/main.yml new file mode 100644 index 0000000..d8f8cb5 --- /dev/null +++ b/playbooks/roles/server_ssh/tasks/main.yml @@ -0,0 +1,39 @@ +--- +- name: Copy config + tags: + - config + ansible.builtin.file: + mode: "{{ item.mode }}" + path: "{{ home }}/{{ item.path }}" + state: directory + with_community.general.filetree: + - ../files + loop_control: + label: "{{ item.path }}" + when: item.state == 'directory' + +- name: "Copy templates" + tags: + - config + ansible.builtin.template: + src: "{{ item.src }}" + dest: "{{ home }}/{{ item.path | regex_replace('\\.j2$', '') }}" + mode: "{{ item.mode }}" + with_community.general.filetree: + - ../templates + loop_control: + label: "{{ item.path }}" + when: item.state == 'file' + +- name: Copy config + tags: + - config + ansible.builtin.copy: + src: "{{ item.src }}" + dest: "{{ home }}/{{ item.path }}" + mode: "{{ item.mode }}" + with_community.general.filetree: + - ../files + loop_control: + label: "{{ item.path }}" + when: item.state == 'file' diff --git a/playbooks/roles/software/atuin/defaults/main.yml b/playbooks/roles/software/atuin/defaults/main.yml deleted file mode 100644 index 8d4f742..0000000 --- a/playbooks/roles/software/atuin/defaults/main.yml +++ /dev/null @@ -1,14 +0,0 @@ ---- -mirror: "https://github.com/atuinsh/atuin/releases/download/" -version: v18.3.0 -arch_map: - arm64: aarch64 - aarch64: aarch64 -system_map: - Darwin: apple-darwin - Linux: unknown-linux-gnu - -atuin_url: "{{ mirror }}/{{version}}/atuin-{{ arch_map[ansible_architecture] }}-{{ system_map[ansible_system] }}.tar.gz" -download_dir: "/tmp/atuin.tar.gz" -unpack_dir: "/tmp/atuin" -unpack_file: "{{ unpack_dir }}/atuin-{{ arch_map[ansible_architecture] }}-{{ system_map[ansible_system] }}/atuin" diff --git a/playbooks/roles/software/atuin/meta/main.yml b/playbooks/roles/software/atuin/meta/main.yml deleted file mode 100644 index 6ec6c73..0000000 --- a/playbooks/roles/software/atuin/meta/main.yml +++ /dev/null @@ -1,4 +0,0 @@ ---- -dependencies: - - role: info - - role: system diff --git a/playbooks/roles/software/atuin/tasks/main.yml b/playbooks/roles/software/atuin/tasks/main.yml deleted file mode 100644 index 266abbb..0000000 --- a/playbooks/roles/software/atuin/tasks/main.yml +++ /dev/null @@ -1,30 +0,0 @@ -- name: Download atuin - tags: always - ansible.builtin.get_url: - url: "{{ atuin_url }}" - dest: "{{ download_dir }}" - -- name: Create dir - tags: always - ansible.builtin.file: - path: "{{ unpack_dir }}" - state: directory - -- name: Extract foo.tgz into /var/lib/foo - tags: always - ansible.builtin.unarchive: - src: "{{ download_dir }}" - dest: "{{ unpack_dir }}" - -- name: Ensure dir - tags: always - ansible.builtin.file: - path: "{{ home }}/.scripts" - state: directory -- name: Move bin - tags: always - ansible.builtin.copy: - remote_src: true - mode: 755 - src: "{{ unpack_file }}" - dest: "{{ home }}/.scripts/atuin" diff --git a/playbooks/roles/software/starship/defaults/main.yml b/playbooks/roles/software/starship/defaults/main.yml deleted file mode 100644 index a9815d8..0000000 --- a/playbooks/roles/software/starship/defaults/main.yml +++ /dev/null @@ -1,14 +0,0 @@ ---- -mirror: "https://github.com/starship/starship/releases/download/" -version: v1.20.1 -arch_map: - arm64: aarch64 - aarch64: aarch64 -system_map: - Darwin: apple-darwin - Linux: unknown-linux-musl - -download_url: "{{ mirror }}/{{version}}/starship-{{ arch_map[ansible_architecture] }}-{{ system_map[ansible_system] }}.tar.gz" -download_dir: "/tmp/starship.tar.gz" -unpack_dir: "/tmp/starship" -unpack_file: "{{ unpack_dir }}/starship" diff --git a/playbooks/roles/software/starship/meta/main.yml b/playbooks/roles/software/starship/meta/main.yml deleted file mode 100644 index 6ec6c73..0000000 --- a/playbooks/roles/software/starship/meta/main.yml +++ /dev/null @@ -1,4 +0,0 @@ ---- -dependencies: - - role: info - - role: system diff --git a/playbooks/roles/software_atuin/defaults/main.yml b/playbooks/roles/software_atuin/defaults/main.yml new file mode 100644 index 0000000..0ed1f12 --- /dev/null +++ b/playbooks/roles/software_atuin/defaults/main.yml @@ -0,0 +1,14 @@ +--- +software_atuin_mirror: https://github.com/atuinsh/atuin/releases/download/ +software_atuin_version: v18.3.0 +software_atuin_arch_map: + arm64: aarch64 + aarch64: aarch64 +software_atuin_system_map: + Darwin: apple-darwin + Linux: unknown-linux-gnu + +software_atuin_download_url: "{{ software_atuin_mirror }}/{{ software_atuin_version }}/atuin-{{ software_atuin_arch_map[ansible_architecture] }}-{{ software_atuin_system_map[ansible_system] }}.tar.gz" +software_atuin_download_dir: /tmp/atuin.tar.gz +software_atuin_unpack_dir: /tmp/atuin +software_atuin_unpack_file: "{{ software_atuin_unpack_dir }}/atuin-{{ software_atuin_arch_map[ansible_architecture] }}-{{ software_atuin_system_map[ansible_system] }}/atuin" diff --git a/playbooks/roles/terminal/files/default/.config/atuin/config.toml b/playbooks/roles/software_atuin/files/.config/atuin/config.toml similarity index 100% rename from playbooks/roles/terminal/files/default/.config/atuin/config.toml rename to playbooks/roles/software_atuin/files/.config/atuin/config.toml diff --git a/playbooks/roles/software_atuin/meta/main.yml b/playbooks/roles/software_atuin/meta/main.yml new file mode 100644 index 0000000..6243564 --- /dev/null +++ b/playbooks/roles/software_atuin/meta/main.yml @@ -0,0 +1,4 @@ +--- +dependencies: + - role: base_info + - role: base_terminal diff --git a/playbooks/roles/software_atuin/tasks/main.yml b/playbooks/roles/software_atuin/tasks/main.yml new file mode 100644 index 0000000..2981a54 --- /dev/null +++ b/playbooks/roles/software_atuin/tasks/main.yml @@ -0,0 +1,60 @@ +--- +- name: Download atuin + tags: always + ansible.builtin.get_url: + url: "{{ software_atuin_download_url }}" + dest: "{{ software_atuin_download_dir }}" + mode: "0600" + +- name: Create dir + tags: always + ansible.builtin.file: + path: "{{ software_atuin_unpack_dir }}" + mode: "0755" + state: directory + +- name: Unpacking atuin + tags: always + ansible.builtin.unarchive: + src: "{{ software_atuin_download_dir }}" + dest: "{{ software_atuin_unpack_dir }}" + +- name: Ensure dir + tags: always + ansible.builtin.file: + path: "{{ home }}/.scripts" + mode: "0755" + state: directory +- name: Move bin + tags: always + ansible.builtin.copy: + remote_src: true + mode: "0755" + src: "{{ software_atuin_unpack_file }}" + dest: "{{ home }}/.local/bin/atuin" + +- name: Setup config dirctories + tags: + - config + ansible.builtin.file: + mode: "{{ item.mode }}" + path: "{{ home }}/{{ item.path }}" + state: directory + with_community.general.filetree: + - ../files + loop_control: + label: "{{ item.path }}" + when: item.state == 'directory' + +- name: Copy config {{ context }} + tags: + - config + ansible.builtin.copy: + src: "{{ item.src }}" + dest: "{{ home }}/{{ item.path }}" + mode: "{{ item.mode }}" + with_community.general.filetree: + - ../files + loop_control: + label: "{{ item.path }}" + when: item.state == 'file' diff --git a/playbooks/roles/software_docker/meta/main.yml b/playbooks/roles/software_docker/meta/main.yml new file mode 100644 index 0000000..ee75b16 --- /dev/null +++ b/playbooks/roles/software_docker/meta/main.yml @@ -0,0 +1,3 @@ +--- +dependencies: + - role: base_info diff --git a/playbooks/roles/docker/tasks/macos.yml b/playbooks/roles/software_docker/tasks/macos.yml similarity index 100% rename from playbooks/roles/docker/tasks/macos.yml rename to playbooks/roles/software_docker/tasks/macos.yml diff --git a/playbooks/roles/docker/tasks/main.yml b/playbooks/roles/software_docker/tasks/main.yml similarity index 100% rename from playbooks/roles/docker/tasks/main.yml rename to playbooks/roles/software_docker/tasks/main.yml diff --git a/playbooks/roles/docker/tasks/ubuntu.yml b/playbooks/roles/software_docker/tasks/ubuntu.yml similarity index 100% rename from playbooks/roles/docker/tasks/ubuntu.yml rename to playbooks/roles/software_docker/tasks/ubuntu.yml diff --git a/playbooks/roles/terminal/files/default/.scripts/rollout.sh b/playbooks/roles/software_git/files/.local/bin/rollout.sh similarity index 100% rename from playbooks/roles/terminal/files/default/.scripts/rollout.sh rename to playbooks/roles/software_git/files/.local/bin/rollout.sh diff --git a/playbooks/roles/terminal/files/default/.ssh/config.d/github b/playbooks/roles/software_git/files/.ssh/config.d/github similarity index 100% rename from playbooks/roles/terminal/files/default/.ssh/config.d/github rename to playbooks/roles/software_git/files/.ssh/config.d/github diff --git a/playbooks/roles/software_git/meta/main.yml b/playbooks/roles/software_git/meta/main.yml new file mode 100644 index 0000000..ee75b16 --- /dev/null +++ b/playbooks/roles/software_git/meta/main.yml @@ -0,0 +1,3 @@ +--- +dependencies: + - role: base_info diff --git a/playbooks/roles/software_git/tasks/main.yml b/playbooks/roles/software_git/tasks/main.yml new file mode 100644 index 0000000..2bacd4d --- /dev/null +++ b/playbooks/roles/software_git/tasks/main.yml @@ -0,0 +1,47 @@ +--- +- name: Install dependencies + tags: + - install + ansible.builtin.package: + name: + - git + - git-delta + +- name: Copy config + tags: + - config + ansible.builtin.file: + mode: "{{ item.mode }}" + path: "{{ home }}/{{ item.path }}" + state: directory + with_community.general.filetree: + - ../files + loop_control: + label: "{{ item.path }}" + when: item.state == 'directory' + +- name: "Copy templates" + tags: + - config + ansible.builtin.template: + src: "{{ item.src }}" + dest: "{{ home }}/{{ item.path | regex_replace('\\.j2$', '') }}" + mode: "{{ item.mode }}" + with_community.general.filetree: + - ../templates + loop_control: + label: "{{ item.path }}" + when: item.state == 'file' + +- name: Copy config + tags: + - config + ansible.builtin.copy: + src: "{{ item.src }}" + dest: "{{ home }}/{{ item.path }}" + mode: "{{ item.mode }}" + with_community.general.filetree: + - ../files + loop_control: + label: "{{ item.path }}" + when: item.state == 'file' diff --git a/playbooks/roles/terminal/templates/default/.gitconfig.j2 b/playbooks/roles/software_git/templates/.gitconfig.j2 similarity index 100% rename from playbooks/roles/terminal/templates/default/.gitconfig.j2 rename to playbooks/roles/software_git/templates/.gitconfig.j2 diff --git a/playbooks/roles/terminal/files/default/.shellrc/rc.d/01-nvim.sh b/playbooks/roles/software_nvim/files/.shellrc/rc.d/01-nvim.sh similarity index 100% rename from playbooks/roles/terminal/files/default/.shellrc/rc.d/01-nvim.sh rename to playbooks/roles/software_nvim/files/.shellrc/rc.d/01-nvim.sh diff --git a/playbooks/roles/software_nvim/meta/main.yml b/playbooks/roles/software_nvim/meta/main.yml new file mode 100644 index 0000000..6243564 --- /dev/null +++ b/playbooks/roles/software_nvim/meta/main.yml @@ -0,0 +1,4 @@ +--- +dependencies: + - role: base_info + - role: base_terminal diff --git a/playbooks/roles/terminal/tasks/nvim.yml b/playbooks/roles/software_nvim/nvim.yml similarity index 90% rename from playbooks/roles/terminal/tasks/nvim.yml rename to playbooks/roles/software_nvim/nvim.yml index 42bcdb7..5e6b0a6 100644 --- a/playbooks/roles/terminal/tasks/nvim.yml +++ b/playbooks/roles/software_nvim/nvim.yml @@ -16,7 +16,7 @@ - config - nvim register: nviminstall - changed_when: "nviminstall.stdout != ''" + changed_when: nviminstall.stdout != '' ansible.builtin.shell: nvim --headless +q args: executable: /bin/bash diff --git a/playbooks/roles/software_nvim/tasks/main.yml b/playbooks/roles/software_nvim/tasks/main.yml new file mode 100644 index 0000000..4a3714e --- /dev/null +++ b/playbooks/roles/software_nvim/tasks/main.yml @@ -0,0 +1,56 @@ +--- +- name: Install dependencies + tags: + - install + ansible.builtin.package: + name: + - neovim + - git + +- name: Setup config dirctories + tags: + - config + ansible.builtin.file: + mode: "{{ item.mode }}" + path: "{{ home }}/{{ item.path }}" + state: directory + with_community.general.filetree: + - ../files + loop_control: + label: "{{ item.path }}" + when: item.state == 'directory' + +- name: Copy config {{ context }} + tags: + - config + ansible.builtin.copy: + src: "{{ item.src }}" + dest: "{{ home }}/{{ item.path }}" + mode: "{{ item.mode }}" + with_community.general.filetree: + - ../files + loop_control: + label: "{{ item.path }}" + when: item.state == 'file' + +- name: Configure neovim + tags: + - config + - nvim + ansible.builtin.git: + repo: https://github.com/morten-olsen/nvim + dest: "{{ home }}/.config/nvim" + accept_newhostkey: true + clone: true + update: true + force: true + +- name: Prepare neovim + tags: + - config + - nvim + register: nviminstall + changed_when: nviminstall.stdout != '' + ansible.builtin.shell: nvim --headless +q + args: + executable: /bin/bash diff --git a/playbooks/roles/terminal/files/default/.shellrc/rc.d/05-nvm.sh b/playbooks/roles/software_nvm/files/.shellrc/rc.d/05-nvm.sh similarity index 100% rename from playbooks/roles/terminal/files/default/.shellrc/rc.d/05-nvm.sh rename to playbooks/roles/software_nvm/files/.shellrc/rc.d/05-nvm.sh diff --git a/playbooks/roles/software_nvm/meta/main.yml b/playbooks/roles/software_nvm/meta/main.yml new file mode 100644 index 0000000..6243564 --- /dev/null +++ b/playbooks/roles/software_nvm/meta/main.yml @@ -0,0 +1,4 @@ +--- +dependencies: + - role: base_info + - role: base_terminal diff --git a/playbooks/roles/software_nvm/tasks/main.yml b/playbooks/roles/software_nvm/tasks/main.yml new file mode 100644 index 0000000..9c50ac6 --- /dev/null +++ b/playbooks/roles/software_nvm/tasks/main.yml @@ -0,0 +1,51 @@ +--- +- name: Install dependencies + ansible.builtin.package: + name: + - git + +- name: Clone nvm + tags: + - install + ansible.builtin.git: + accept_newhostkey: true + clone: true + force: true + recursive: false + repo: https://github.com/nvm-sh/nvm + dest: "{{ home }}/.nvm" + +- name: Install node and set version + tags: + - config + register: nodeinstall + ansible.builtin.shell: source {{ home }}/.nvm/nvm.sh && nvm install 22 + changed_when: "'is already installed' not in nodeinstall.stderr" + args: + executable: /bin/bash + +- name: Setup config dirctories + tags: + - config + ansible.builtin.file: + mode: "{{ item.mode }}" + path: "{{ home }}/{{ item.path }}" + state: directory + with_community.general.filetree: + - ../files + loop_control: + label: "{{ item.path }}" + when: item.state == 'directory' + +- name: Copy config {{ context }} + tags: + - config + ansible.builtin.copy: + src: "{{ item.src }}" + dest: "{{ home }}/{{ item.path }}" + mode: "{{ item.mode }}" + with_community.general.filetree: + - ../files + loop_control: + label: "{{ item.path }}" + when: item.state == 'file' diff --git a/playbooks/roles/terminal/files/default/.ssh/config b/playbooks/roles/software_ssh/files/.ssh/config similarity index 100% rename from playbooks/roles/terminal/files/default/.ssh/config rename to playbooks/roles/software_ssh/files/.ssh/config diff --git a/playbooks/roles/software_ssh/meta/main.yml b/playbooks/roles/software_ssh/meta/main.yml new file mode 100644 index 0000000..6243564 --- /dev/null +++ b/playbooks/roles/software_ssh/meta/main.yml @@ -0,0 +1,4 @@ +--- +dependencies: + - role: base_info + - role: base_terminal diff --git a/playbooks/roles/software_ssh/tasks/main.yml b/playbooks/roles/software_ssh/tasks/main.yml new file mode 100644 index 0000000..e69de29 diff --git a/playbooks/roles/software_starship/defaults/main.yml b/playbooks/roles/software_starship/defaults/main.yml new file mode 100644 index 0000000..ac499c9 --- /dev/null +++ b/playbooks/roles/software_starship/defaults/main.yml @@ -0,0 +1,14 @@ +--- +software_starship_mirror: "https://github.com/starship/starship/releases/download/" +software_starship_version: v1.20.1 +software_starship_arch_map: + arm64: aarch64 + aarch64: aarch64 +software_starship_system_map: + Darwin: apple-darwin + Linux: unknown-linux-musl + +software_starship_download_url: "{{ software_starship_mirror }}/{{ software_starship_version }}/starship-{{ software_starship_arch_map[ansible_architecture] }}-{{ software_starship_system_map[ansible_system] }}.tar.gz" +software_starship_download_dir: "/tmp/starship.tar.gz" +software_starship_unpack_dir: "/tmp/starship" +software_starship_unpack_file: "{{ software_starship_unpack_dir }}/starship" diff --git a/playbooks/roles/software_starship/meta/main.yml b/playbooks/roles/software_starship/meta/main.yml new file mode 100644 index 0000000..6243564 --- /dev/null +++ b/playbooks/roles/software_starship/meta/main.yml @@ -0,0 +1,4 @@ +--- +dependencies: + - role: base_info + - role: base_terminal diff --git a/playbooks/roles/software/starship/tasks/main.yml b/playbooks/roles/software_starship/tasks/main.yml similarity index 50% rename from playbooks/roles/software/starship/tasks/main.yml rename to playbooks/roles/software_starship/tasks/main.yml index 10c6b93..d83d3b2 100644 --- a/playbooks/roles/software/starship/tasks/main.yml +++ b/playbooks/roles/software_starship/tasks/main.yml @@ -1,30 +1,34 @@ - name: Download starship tags: always ansible.builtin.get_url: - url: "{{ download_url }}" - dest: "{{ download_dir }}" + mode: "0600" + url: "{{ software_starship_download_url }}" + dest: "{{ software_starship_download_dir }}" - name: Create dir tags: always ansible.builtin.file: - path: "{{ unpack_dir }}" + mode: "0755" + path: "{{ software_starship_unpack_dir }}" state: directory - name: Extract starship tags: always ansible.builtin.unarchive: - src: "{{ download_dir }}" - dest: "{{ unpack_dir }}" + src: "{{ software_starship_download_dir }}" + dest: "{{ software_starship_unpack_dir }}" - name: Ensure dir tags: always ansible.builtin.file: + mode: "0755" path: "{{ home }}/.scripts" state: directory + - name: Move bin tags: always ansible.builtin.copy: remote_src: true - mode: 755 - src: "{{ unpack_file }}" - dest: "{{ home }}/.scripts/atuin" + mode: "0755" + src: "{{ software_starship_unpack_file }}" + dest: "{{ home }}/.local/bin/starship" diff --git a/playbooks/roles/terminal/files/default/.tmux.conf b/playbooks/roles/software_tmux/files/.tmux.conf similarity index 100% rename from playbooks/roles/terminal/files/default/.tmux.conf rename to playbooks/roles/software_tmux/files/.tmux.conf diff --git a/playbooks/roles/software_tmux/meta/main.yml b/playbooks/roles/software_tmux/meta/main.yml new file mode 100644 index 0000000..6243564 --- /dev/null +++ b/playbooks/roles/software_tmux/meta/main.yml @@ -0,0 +1,4 @@ +--- +dependencies: + - role: base_info + - role: base_terminal diff --git a/playbooks/roles/software_tmux/tasks/main.yml b/playbooks/roles/software_tmux/tasks/main.yml new file mode 100644 index 0000000..d8f8cb5 --- /dev/null +++ b/playbooks/roles/software_tmux/tasks/main.yml @@ -0,0 +1,39 @@ +--- +- name: Copy config + tags: + - config + ansible.builtin.file: + mode: "{{ item.mode }}" + path: "{{ home }}/{{ item.path }}" + state: directory + with_community.general.filetree: + - ../files + loop_control: + label: "{{ item.path }}" + when: item.state == 'directory' + +- name: "Copy templates" + tags: + - config + ansible.builtin.template: + src: "{{ item.src }}" + dest: "{{ home }}/{{ item.path | regex_replace('\\.j2$', '') }}" + mode: "{{ item.mode }}" + with_community.general.filetree: + - ../templates + loop_control: + label: "{{ item.path }}" + when: item.state == 'file' + +- name: Copy config + tags: + - config + ansible.builtin.copy: + src: "{{ item.src }}" + dest: "{{ home }}/{{ item.path }}" + mode: "{{ item.mode }}" + with_community.general.filetree: + - ../files + loop_control: + label: "{{ item.path }}" + when: item.state == 'file' diff --git a/playbooks/roles/terminal/files/default/.zshrc b/playbooks/roles/software_zsh/files/.zshrc similarity index 100% rename from playbooks/roles/terminal/files/default/.zshrc rename to playbooks/roles/software_zsh/files/.zshrc diff --git a/playbooks/roles/software_zsh/meta/main.yml b/playbooks/roles/software_zsh/meta/main.yml new file mode 100644 index 0000000..6243564 --- /dev/null +++ b/playbooks/roles/software_zsh/meta/main.yml @@ -0,0 +1,4 @@ +--- +dependencies: + - role: base_info + - role: base_terminal diff --git a/playbooks/roles/software_zsh/tasks/main.yml b/playbooks/roles/software_zsh/tasks/main.yml new file mode 100644 index 0000000..9f9fdc9 --- /dev/null +++ b/playbooks/roles/software_zsh/tasks/main.yml @@ -0,0 +1,54 @@ +--- +- name: Install core dependencies + tags: + - install + ansible.builtin.package: + name: + - zsh + +- name: Set shell + become: true + tags: + - config + ansible.builtin.user: + name: "{{ username }}" + shell: /usr/bin/zsh + +- name: Copy config + tags: + - config + ansible.builtin.file: + mode: "{{ item.mode }}" + path: "{{ home }}/{{ item.path }}" + state: directory + with_community.general.filetree: + - ../files + loop_control: + label: "{{ item.path }}" + when: item.state == 'directory' + +- name: "Copy templates" + tags: + - config + ansible.builtin.template: + src: "{{ item.src }}" + dest: "{{ home }}/{{ item.path | regex_replace('\\.j2$', '') }}" + mode: "{{ item.mode }}" + with_community.general.filetree: + - ../templates + loop_control: + label: "{{ item.path }}" + when: item.state == 'file' + +- name: Copy config + tags: + - config + ansible.builtin.copy: + src: "{{ item.src }}" + dest: "{{ home }}/{{ item.path }}" + mode: "{{ item.mode }}" + with_community.general.filetree: + - ../files + loop_control: + label: "{{ item.path }}" + when: item.state == 'file' diff --git a/playbooks/roles/system/meta/main.yml b/playbooks/roles/system/meta/main.yml deleted file mode 100644 index 0a064fc..0000000 --- a/playbooks/roles/system/meta/main.yml +++ /dev/null @@ -1,2 +0,0 @@ -dependencies: - - role: info diff --git a/playbooks/roles/update/tasks/main.yml b/playbooks/roles/tasks_update/tasks/main.yml similarity index 100% rename from playbooks/roles/update/tasks/main.yml rename to playbooks/roles/tasks_update/tasks/main.yml diff --git a/playbooks/roles/terminal/files/default/.shellrc/rc.d/01-env.sh b/playbooks/roles/terminal/files/default/.shellrc/rc.d/01-env.sh deleted file mode 100644 index b20f7ed..0000000 --- a/playbooks/roles/terminal/files/default/.shellrc/rc.d/01-env.sh +++ /dev/null @@ -1 +0,0 @@ -export TMPDIR="${TMPDIR:-/tmp}" diff --git a/playbooks/roles/terminal/files/default/.shellrc/rc.d/01-scripts.sh b/playbooks/roles/terminal/files/default/.shellrc/rc.d/01-scripts.sh deleted file mode 100644 index 3fafb84..0000000 --- a/playbooks/roles/terminal/files/default/.shellrc/rc.d/01-scripts.sh +++ /dev/null @@ -1,2 +0,0 @@ -export PATH="$PATH:$HOME/.scripts" - diff --git a/playbooks/roles/terminal/files/default/.shellrc/rc.d/10-gpg.sh b/playbooks/roles/terminal/files/default/.shellrc/rc.d/10-gpg.sh deleted file mode 100644 index 049cf20..0000000 --- a/playbooks/roles/terminal/files/default/.shellrc/rc.d/10-gpg.sh +++ /dev/null @@ -1,5 +0,0 @@ -export GPG_TTY="$(tty)" -export SSH_AUTH_SOCK=$(gpgconf --list-dirs agent-ssh-socket) -gpgconf --launch gpg-agent -gpg-connect-agent updatestartuptty /bye > /dev/null - diff --git a/playbooks/roles/terminal/meta/main.yml b/playbooks/roles/terminal/meta/main.yml deleted file mode 100644 index 6ec6c73..0000000 --- a/playbooks/roles/terminal/meta/main.yml +++ /dev/null @@ -1,4 +0,0 @@ ---- -dependencies: - - role: info - - role: system diff --git a/playbooks/roles/terminal/tasks/main.yml b/playbooks/roles/terminal/tasks/main.yml deleted file mode 100644 index 68c98a7..0000000 --- a/playbooks/roles/terminal/tasks/main.yml +++ /dev/null @@ -1,55 +0,0 @@ ---- -- name: Install core dependencies - tags: - - install - ansible.builtin.package: - name: - - zsh - -- name: Set shell - become: true - tags: - - config - ansible.builtin.user: - name: "{{ username }}" - shell: /usr/bin/zsh - -- name: Install context dependencies - ansible.builtin.include_tasks: install.yml - loop: "{{ contexts }}" - loop_control: - loop_var: context - tags: - - config - -- name: Install atuin - tags: - - install - include_role: - name: software/atuin - -- name: Install starship - tags: - - install - include_role: - name: software/starship - -- name: Setup node - tags: - - config - - install - include_tasks: "nvm.yml" - -- name: Setup nvim - tags: - - config - - nvim - include_tasks: "nvim.yml" - -- name: Configure contexts - ansible.builtin.include_tasks: config.yml - loop: "{{ contexts }}" - loop_control: - loop_var: context - tags: - - config diff --git a/playbooks/roles/terminal/tasks/nvm.yml b/playbooks/roles/terminal/tasks/nvm.yml deleted file mode 100644 index af3289a..0000000 --- a/playbooks/roles/terminal/tasks/nvm.yml +++ /dev/null @@ -1,19 +0,0 @@ -- name: Clone nvm - tags: - - install - ansible.builtin.git: - accept_newhostkey: true - clone: true - force: true - recursive: false - repo: https://github.com/nvm-sh/nvm - dest: "{{ home }}/.nvm" - -- name: Install node and set version - tags: - - config - register: nodeinstall - ansible.builtin.shell: source {{ home }}/.nvm/nvm.sh && nvm install 22 - changed_when: "'is already installed' not in nodeinstall.stderr" - args: - executable: /bin/bash diff --git a/playbooks/setup.yml b/playbooks/setup.yml index b5e9ab8..3f5da6f 100644 --- a/playbooks/setup.yml +++ b/playbooks/setup.yml @@ -1,7 +1,15 @@ --- -- name: Setup host +- name: Setup desktop hosts: desktops roles: - - role: terminal - - role: desktop - - role: docker + - role: env_terminal + - role: env_develop + - role: server_ssh + - role: env_desktop + +- name: Setup android + hosts: android + roles: + - role: env_terminal + - role: env_develop + - role: server_ssh diff --git a/scripts/setup-local.sh b/scripts/setup-local.sh index 5b07dcf..f66da2d 100755 --- a/scripts/setup-local.sh +++ b/scripts/setup-local.sh @@ -11,7 +11,6 @@ fi echo "Setting up $MACHINE_NAME" ansible-playbook -i inventory.yml playbooks/setup.yml \ - --connection=local \ --extra-vars "ansible_python_interpreter=$(which python)" \ --inventory "$MACHINE_NAME," \ --limit "$MACHINE_NAME" \ diff --git a/scripts/setup-remote.sh b/scripts/setup-remote.sh new file mode 100755 index 0000000..046e63e --- /dev/null +++ b/scripts/setup-remote.sh @@ -0,0 +1,19 @@ +#!/usr/bin/env bash +export ROOT="`dirname "$0"`/.." +MACHINE_NAME="$1"; shift + +. $ROOT/scripts/with-env.sh + +if [ -z "$MACHINE_NAME" ]; then + echo "Usage: $0 " + exit 1 +fi + +echo "Setting up $MACHINE_NAME" +ansible-playbook -i inventory.yml playbooks/setup.yml \ + --connection=local \ + --inventory "$MACHINE_NAME," \ + --limit "$MACHINE_NAME" \ + $@ \ + --ask-become-pass +