| # Fetch local user rather than relying on (deprecated) ansible_user |
| - name: Get the username running the deploy |
| local_action: command whoami |
| register: username_on_the_host |
| tags: |
| - establish_ssh_keys |
| - skip_ansible_lint |
| |
| # SSH Key access from the current machine to the target node is required for the |
| # synchronize action to work. |
| - name: Ensure User SSH Keys |
| local_action: user name='{{ username_on_the_host.stdout }}' generate_ssh_key=yes ssh_key_bits=2048 |
| tags: |
| - establish_ssh_keys |
| |
| - name: Ensure Key Authorized on Target Head Node |
| authorized_key: |
| user: '{{ansible_ssh_user}}' |
| key: "{{lookup('file', '~/.ssh/id_rsa.pub')}}" |
| tags: |
| - establish_ssh_keys |
| |
| - name: Ensure MAAS Ansible Config Directory |
| become: yes |
| file: |
| path=/etc/maas/ansible |
| owner=maas |
| group=maas |
| state=directory |
| mode="0755" |
| |
| - name: Ensure Ansible Roles |
| become: yes |
| synchronize: |
| src: "{{ item }}" |
| dest: /etc/maas/ansible |
| with_items: |
| - roles |
| - library |
| |
| - name: Ensure Role Permissions and Modes |
| become: yes |
| file: |
| path: /etc/maas/ansible/roles |
| owner: maas |
| group: maas |
| mode: u=rwX,g=rX,o=rX |
| state: directory |
| recurse: true |
| |
| - name: Ensure Ansible Provisioning Script |
| become: yes |
| copy: |
| dest=/etc/maas/ansible/{{ item }} |
| src=files/{{ item }} |
| owner=maas |
| group=maas |
| mode="0755" |
| with_items: |
| - do-ansible |
| - do-switch |
| |
| - name: Ensure Provisioning Log Directory |
| become: yes |
| file: |
| path=/etc/maas/ansible/logs |
| state=directory |
| owner=maas |
| group=maas |
| mode="0755" |
| |
| - name: Capture MAAS API Key |
| become: yes |
| command: maas-region-admin apikey --username={{ maas.user }} |
| register: apikey |
| changed_when: false |
| |
| - name: Ensure Compute and Switch Node Playbooks |
| become: yes |
| template: |
| src={{ item }}.j2 |
| dest=/etc/maas/ansible/{{ item }} |
| owner=maas |
| group=maas |
| mode="0644" |
| with_items: |
| - compute-node.yml |
| - switch-node.yml |
| |
| - name: Ensure Compute and Switch Variable Directory |
| become: yes |
| file: |
| path=/etc/maas/ansible/vars |
| owner=maas |
| group=maas |
| mode="0755" |
| state=directory |
| |
| - name: Ensure Compute and Switch Node Variables |
| become: yes |
| template: |
| src=templates/compute-node-vars.yml.j2 |
| dest=/etc/maas/ansible/vars/compute-node-vars.yml |
| owner=maas |
| group=maas |
| mode="0644" |
| |
| - name: Ensure Connect Switch Ansible Playbook |
| become: yes |
| copy: |
| dest=/etc/maas/ansible/{{ item }} |
| src=files/{{ item }} |
| owner=maas |
| group=maas |
| mode="0644" |
| with_items: |
| - connect-switch.yml |
| |
| - name: Ensure Dynamic Inventory Script |
| become: yes |
| template: |
| src=templates/pod-inventory |
| dest=/etc/maas/ansible/pod-inventory |
| owner=maas |
| group=maas |
| mode="0755" |
| |
| - name: Copy CORD Utility Scripts |
| become: yes |
| copy: |
| src=files/commands/{{ item }} |
| dest=/usr/local/bin/{{ item }} |
| owner=root |
| group=root |
| mode="0755" |
| with_items: |
| - cord |
| - cord-harvest |
| - cord-prov |
| - cord-switch |
| - cord-generate |
| - cord-registry |
| |
| - name: Ensure SSH Key Storage |
| become: yes |
| file: |
| path: /etc/maas/.ssh |
| mode: "0755" |
| owner: maas |
| group: maas |
| state: directory |
| |
| - name: Copy SSH Key Pair for POD |
| become: yes |
| copy: |
| src: /etc/maas/.ssh/{{item}} |
| dest: /etc/maas/.ssh/{{item}} |
| owner: maas |
| group: maas |
| mode: "0644" |
| with_items: |
| - cord_rsa |
| - cord_rsa.pub |