diff --git a/ansible/roles/emacs/meta/main.yaml b/ansible/roles/emacs/meta/main.yaml index 361bd97..8e3df65 100644 --- a/ansible/roles/emacs/meta/main.yaml +++ b/ansible/roles/emacs/meta/main.yaml @@ -5,3 +5,5 @@ dependencies: when: 'emacs_flavor == "full"' - role: python when: 'emacs_flavor == "full"' + - role: terraform + when: 'emacs_flavor == "full"' diff --git a/ansible/roles/poudriere/files/poudriere.d/currentznver4-default-framework-pkglist b/ansible/roles/poudriere/files/poudriere.d/currentznver4-default-framework-pkglist index 229d3b5..abfef1a 100644 --- a/ansible/roles/poudriere/files/poudriere.d/currentznver4-default-framework-pkglist +++ b/ansible/roles/poudriere/files/poudriere.d/currentznver4-default-framework-pkglist @@ -32,6 +32,7 @@ graphics/qt5-wayland graphics/vulkan-loader graphics/vulkan-tools graphics/vulkan-validation-layers +hashicorp/terraform-ls lang/python lang/rust-nightly math/gnuplot @@ -97,6 +98,7 @@ sysutils/pstree sysutils/pv sysutils/radeontop sysutils/rust-coreutils +sysutils/terraform sysutils/tmux sysutils/tree sysutils/zrepl diff --git a/ansible/roles/terraform/files/zshrc_terraform b/ansible/roles/terraform/files/zshrc_terraform new file mode 100644 index 0000000..87544d3 --- /dev/null +++ b/ansible/roles/terraform/files/zshrc_terraform @@ -0,0 +1 @@ +alias tf="terraform" diff --git a/ansible/roles/terraform/meta/main.yaml b/ansible/roles/terraform/meta/main.yaml new file mode 100644 index 0000000..0c3aeca --- /dev/null +++ b/ansible/roles/terraform/meta/main.yaml @@ -0,0 +1,4 @@ +dependencies: + - users + - role: build + when: 'os_flavor == "linux"' diff --git a/ansible/roles/terraform/tasks/common.yaml b/ansible/roles/terraform/tasks/common.yaml new file mode 100644 index 0000000..0097c80 --- /dev/null +++ b/ansible/roles/terraform/tasks/common.yaml @@ -0,0 +1,21 @@ +- name: Install packages + package: + name: + - terraform + state: present + +- import_tasks: tasks/freebsd.yaml + when: 'os_flavor == "freebsd"' + +- import_tasks: tasks/linux.yaml + when: 'os_flavor == "linux"' + +- include_tasks: + file: tasks/peruser.yaml + apply: + become: yes + become_user: "{{ initialize_user }}" + when: users is defined + loop: "{{ users | dict2items | community.general.json_query('[?value.initialize==`true`].key') }}" + loop_control: + loop_var: initialize_user diff --git a/ansible/roles/terraform/tasks/freebsd.yaml b/ansible/roles/terraform/tasks/freebsd.yaml new file mode 100644 index 0000000..d971cca --- /dev/null +++ b/ansible/roles/terraform/tasks/freebsd.yaml @@ -0,0 +1,5 @@ +- name: Install packages + package: + name: + - terraform-ls + state: present diff --git a/ansible/roles/terraform/tasks/linux.yaml b/ansible/roles/terraform/tasks/linux.yaml new file mode 100644 index 0000000..59bc877 --- /dev/null +++ b/ansible/roles/terraform/tasks/linux.yaml @@ -0,0 +1,28 @@ +- name: Build aur packages + register: buildaur + become_user: "{{ build_user.name }}" + command: "aurutils-sync --no-view {{ item }}" + args: + creates: "/var/cache/pacman/custom/{{ item }}-*.pkg.tar.*" + loop: + - terraform-ls + +- name: Update cache + when: buildaur.changed + pacman: + name: [] + state: present + update_cache: true + +- name: Install packages + package: + name: + - terraform-ls + state: present +# - name: Enable services +# systemd: +# enabled: yes +# name: "{{ item }}" +# daemon_reload: yes +# loop: +# - foo.service diff --git a/ansible/roles/terraform/tasks/main.yaml b/ansible/roles/terraform/tasks/main.yaml new file mode 100644 index 0000000..6805b9d --- /dev/null +++ b/ansible/roles/terraform/tasks/main.yaml @@ -0,0 +1,2 @@ +- import_tasks: tasks/common.yaml + # when: foo is defined diff --git a/ansible/roles/terraform/tasks/peruser.yaml b/ansible/roles/terraform/tasks/peruser.yaml new file mode 100644 index 0000000..ec07ea5 --- /dev/null +++ b/ansible/roles/terraform/tasks/peruser.yaml @@ -0,0 +1,39 @@ +- include_role: + name: per_user + +# - name: Create directories +# file: +# name: "{{ account_homedir.stdout }}/{{ item }}" +# state: directory +# mode: 0700 +# owner: "{{ account_name.stdout }}" +# group: "{{ group_name.stdout }}" +# loop: +# - ".config/foo" + +# - name: Copy files +# copy: +# src: "files/{{ item.src }}" +# dest: "{{ account_homedir.stdout }}/{{ item.dest }}" +# mode: 0600 +# owner: "{{ account_name.stdout }}" +# group: "{{ group_name.stdout }}" +# loop: +# - src: foo.conf +# dest: .config/foo/foo.conf + +- name: Configure zshrc additional imports + copy: + src: "files/zshrc_{{ item }}" + dest: "{{ account_homedir.stdout }}/.config/ansible_deploy/zshrc/{{ item }}.zsh" + mode: 0600 + owner: "{{ account_name.stdout }}" + group: "{{ group_name.stdout }}" + loop: + - terraform + +- import_tasks: tasks/peruser_freebsd.yaml + when: 'os_flavor == "freebsd"' + +- import_tasks: tasks/peruser_linux.yaml + when: 'os_flavor == "linux"' diff --git a/ansible/roles/terraform/tasks/peruser_freebsd.yaml b/ansible/roles/terraform/tasks/peruser_freebsd.yaml new file mode 100644 index 0000000..e69de29 diff --git a/ansible/roles/terraform/tasks/peruser_linux.yaml b/ansible/roles/terraform/tasks/peruser_linux.yaml new file mode 100644 index 0000000..e69de29