diff --git a/.ansible-lint b/.ansible-lint new file mode 100644 index 0000000..0aa2fa0 --- /dev/null +++ b/.ansible-lint @@ -0,0 +1,2 @@ +--- +project_dir: .ansible diff --git a/.ansible/README.md b/.ansible/README.md index b4b87b7..90af31f 100644 --- a/.ansible/README.md +++ b/.ansible/README.md @@ -20,6 +20,7 @@ Run the setup playbook: ```bash pipenv sync +pipenv run ansible-galaxy install -r requirements.yml pipenv run ansible-playbook -i inventory/hosts playbooks/setup-linux.yml -K ``` diff --git a/.ansible/playbooks/setup-linux.yml b/.ansible/playbooks/setup-linux.yml index 8d08631..0f8d9c7 100644 --- a/.ansible/playbooks/setup-linux.yml +++ b/.ansible/playbooks/setup-linux.yml @@ -17,43 +17,43 @@ tasks: - name: Import apt upgrade tasks ansible.builtin.import_tasks: tasks/apt-upgrade.yml - when: apt.upgrade | default(true) | bool + when: apt is defined and (apt.upgrade | default(true) | bool) become: true tags: [apt, upgrade] - name: Import apt install tasks ansible.builtin.import_tasks: tasks/apt-install.yml - when: apt.install is defined and (apt.install | length > 0) + when: apt is defined and apt.install is defined and (apt.install | length > 0) become: true tags: [apt, install] - name: Import CUDA Toolkit installation tasks ansible.builtin.import_tasks: tasks/cuda-toolkit.yml - when: nvidia.cuda_toolkit | default(false) | bool + when: nvidia is defined and (nvidia.cuda_toolkit | default(false) | bool) become: true tags: [nvidia, cuda] - name: Import VS Code installation tasks ansible.builtin.import_tasks: tasks/apt-release-code.yml - when: (apt.releases.code | default(false)) if apt.releases is defined else false + when: apt is defined and apt.releases is defined and (apt.releases.code | default(false)) become: true tags: [apt, code, vscode] - name: Import Brave installation tasks ansible.builtin.import_tasks: tasks/apt-release-brave.yml - when: (apt.releases.brave | default(false)) if apt.releases is defined else false + when: apt is defined and apt.releases is defined and (apt.releases.brave | default(false)) become: true tags: [apt, brave] - name: Import Proton VPN installation tasks ansible.builtin.import_tasks: tasks/apt-release-protonvpn.yml - when: (apt.releases.protonvpn | default(false)) if apt.releases is defined else false + when: apt is defined and apt.releases is defined and (apt.releases.protonvpn | default(false)) become: true tags: [apt, protonvpn, vpn] - name: Import eget installation tasks ansible.builtin.import_tasks: tasks/eget.yml - when: eget | default(false) | bool + when: eget is defined and (eget | default(false) | bool) tags: [eget, upgrade, install] - name: Import dotfiles symlink tasks @@ -63,5 +63,11 @@ - name: Import deno installation tasks ansible.builtin.import_tasks: tasks/deno.yml - when: deno | default(false) | bool + when: deno is defined and (deno | default(false) | bool) tags: [deno, install] + + - name: Import snap install tasks + ansible.builtin.import_tasks: tasks/snap-install.yml + when: snap is defined and snap.install is defined and (snap.install | length > 0) + become: true + tags: [snap, install] diff --git a/.ansible/playbooks/tasks/snap-install.yml b/.ansible/playbooks/tasks/snap-install.yml new file mode 100644 index 0000000..6d04295 --- /dev/null +++ b/.ansible/playbooks/tasks/snap-install.yml @@ -0,0 +1,8 @@ +--- +- name: Install snap packages + community.general.snap: + name: '{{ item.name | default(item) }}' + classic: '{{ item.classic | default(omit) }}' + state: present + loop: '{{ snap.install }}' + when: snap.install is defined diff --git a/.ansible/requirements.yml b/.ansible/requirements.yml new file mode 100644 index 0000000..afc836d --- /dev/null +++ b/.ansible/requirements.yml @@ -0,0 +1,3 @@ +--- +collections: + - name: community.general diff --git a/.ansible/variables-example.yml b/.ansible/variables-example.yml index 434f2f2..b38d142 100644 --- a/.ansible/variables-example.yml +++ b/.ansible/variables-example.yml @@ -147,3 +147,11 @@ eget_packages: nvidia: cuda_toolkit: true cuda_toolkit_package: cuda-toolkit-13-1 + +snap: + install: + - name: aws-cli + classic: true + - name: sublime-text + classic: true + - name: telegram-desktop