diff --git a/all.yml b/all.yml index 285dcc1..298a518 100755 --- a/all.yml +++ b/all.yml @@ -126,4 +126,10 @@ tags: vault_ssh_keys - name: test role: test - tags: test \ No newline at end of file + tags: test + - name: fix_router + role: fix_router + tags: fix_router + - name: disable-wakers + role: disable-wakers + tags: disable-wakers diff --git a/hosts_roles.yml b/hosts_roles.yml index 3b9c5af..194ac90 100755 --- a/hosts_roles.yml +++ b/hosts_roles.yml @@ -161,7 +161,10 @@ datacenter: asus.home.lan: vars: ansible_python_interpreter: /usr/bin/python3 - ansible_ssh_user: jd + ansible_ssh_user: ansible + ansible_ssh_pass: q + ansible_become_password: q + ansible_become_user: root vms: children: debian13: diff --git a/roles/fix_router/defaults/main.yml b/roles/fix_router/defaults/main.yml index 8077631..f54b982 100644 --- a/roles/fix_router/defaults/main.yml +++ b/roles/fix_router/defaults/main.yml @@ -1,3 +1,9 @@ -#SPDX-License-Identifier: MIT-0 ---- -# defaults file for roles/fix_router +vault_version: "2.1.0" +vault_install_dir: "/usr/local/bin" +vault_download_dir: "/tmp" +vault_archive: "vault_{{ vault_version }}_linux_arm64.zip" +vault_binary: "{{ vault_install_dir }}/vault" +vault_url: >- + https://releases.hashicorp.com/vault/{{ vault_version }}/{{ vault_archive }} +vault_checksums_url: >- + https://releases.hashicorp.com/vault/{{ vault_version }}/vault_{{ vault_version }}_SHA256SUMS \ No newline at end of file diff --git a/roles/fix_router/tasks/main.yml b/roles/fix_router/tasks/main.yml index f5c2440..e914f52 100644 --- a/roles/fix_router/tasks/main.yml +++ b/roles/fix_router/tasks/main.yml @@ -8,40 +8,51 @@ - gpg - wget - haproxy + - ca-certificates + - unzip state: present update_cache: true - - name: Download HashiCorp GPG key + - name: Download Vault {{ vault_version }} ARM64 ansible.builtin.get_url: - url: https://apt.releases.hashicorp.com/gpg - dest: /tmp/hashicorp.asc - mode: '0644' + url: "{{ vault_url }}" + dest: "{{ vault_download_dir }}/{{ vault_archive }}" + mode: "0644" - - name: Convert HashiCorp GPG key to keyring format + - name: Create Vault extraction directory + ansible.builtin.file: + path: "{{ vault_download_dir }}/vault-{{ vault_version }}" + state: directory + mode: "0755" + + + - name: Extract Vault + ansible.builtin.unarchive: + src: "{{ vault_download_dir }}/{{ vault_archive }}" + dest: "{{ vault_download_dir }}/vault-{{ vault_version }}" + remote_src: true + creates: "{{ vault_download_dir }}/vault-{{ vault_version }}/vault" + + - name: Install Vault binary + ansible.builtin.copy: + src: "{{ vault_download_dir }}/vault-{{ vault_version }}/vault" + dest: "{{ vault_binary }}" + remote_src: true + owner: root + group: root + mode: "0755" + + - name: Verify Vault installation ansible.builtin.command: - cmd: > - gpg --dearmor - -o /usr/share/keyrings/hashicorp-archive-keyring.gpg - /tmp/hashicorp.asc - args: - creates: /usr/share/keyrings/hashicorp-archive-keyring.gpg + cmd: "{{ vault_binary }} version" + register: vault_version_output + changed_when: false + + - name: Display installed Vault version + ansible.builtin.debug: + var: vault_version_output.stdout - - name: Add HashiCorp APT repository - ansible.builtin.apt_repository: - repo: > - deb [arch={{ ansible_architecture == 'x86_64' | ternary('amd64', ansible_architecture) }} - signed-by=/usr/share/keyrings/hashicorp-archive-keyring.gpg] - https://apt.releases.hashicorp.com - {{ ansible_distribution_release }} - main - filename: hashicorp - state: present - - name: Install Vault - ansible.builtin.apt: - name: vault - state: present - update_cache: true - name: Create service for vault agent ansible.builtin.copy: @@ -80,7 +91,7 @@ dest: /opt/vault/scripts/unseal.sh content: | #!/usr/bin/env bash - export VAULT_ADDR="http://127.0.0.1:8200" + export VAULT_ADDR="http://192.168.77.1:8200" SEALED=$(vault status -format=json | jq -r .sealed) if [ "$SEALED" = "true" ]; then @@ -97,6 +108,36 @@ group: vault mode: '0700' + - name: Install Vault systemd service + ansible.builtin.copy: + dest: /etc/systemd/system/vault.service + owner: root + group: root + mode: "0644" + content: | + [Unit] + Description=HashiCorp Vault + Documentation=https://developer.hashicorp.com/vault/docs + Requires=network-online.target + After=network-online.target + + [Service] + User=vault + Group=vault + + ExecStart=/usr/local/bin/vault server -config=/etc/vault.d/vault.hcl + ExecReload=/bin/kill --signal HUP $MAINPID + + KillMode=process + KillSignal=SIGINT + Restart=on-failure + RestartSec=5 + + LimitNOFILE=65536 + + [Install] + WantedBy=multi-user.target + - name: Create service ansible.builtin.copy: dest: /etc/systemd/system/vault-unseal.service @@ -126,10 +167,11 @@ mode: '0644' - name: Enable and start services - ansible.builtin.systemd: + ansible.builtin.systemd_service: name: "{{ item }}" - enabled: yes + enabled: true state: started + daemon_reload: true loop: - vault - vault-unseal