David K. Bainbridge | 317e7d7 | 2016-05-11 08:31:44 -0700 | [diff] [blame] | 1 | --- |
David K. Bainbridge | 8db2f30 | 2016-05-19 23:41:13 -0700 | [diff] [blame] | 2 | - name: Verify Manditory Variables |
| 3 | fail: msg="Variable '{{ item }}' is not defined" |
| 4 | when: item not in hostvars[inventory_hostname] |
| 5 | with_items: |
| 6 | - fabric_ip |
| 7 | tags: |
| 8 | - interface_config |
| 9 | |
David K. Bainbridge | 317e7d7 | 2016-05-11 08:31:44 -0700 | [diff] [blame] | 10 | - name: Applications |
| 11 | become: yes |
alshabib | 54cdbb2 | 2016-06-03 16:37:01 -0700 | [diff] [blame] | 12 | apt: name={{ item }} state=latest force=yes |
David K. Bainbridge | 317e7d7 | 2016-05-11 08:31:44 -0700 | [diff] [blame] | 13 | with_items: |
alshabib | 54cdbb2 | 2016-06-03 16:37:01 -0700 | [diff] [blame] | 14 | - build-essential |
David K. Bainbridge | e9f284d | 2016-05-18 14:13:43 -0700 | [diff] [blame] | 15 | - git |
| 16 | - python-pip |
alshabib | 54cdbb2 | 2016-06-03 16:37:01 -0700 | [diff] [blame] | 17 | - ifenslave-2.6 |
David K. Bainbridge | 9d1e02d | 2016-06-22 09:22:16 -0700 | [diff] [blame] | 18 | - bridge-utils |
David K. Bainbridge | 73217f3 | 2016-07-14 22:25:08 -0700 | [diff] [blame] | 19 | - ethtool |
David K. Bainbridge | cadefd4 | 2016-07-22 16:29:24 -0700 | [diff] [blame^] | 20 | - minicom |
| 21 | - curl |
| 22 | - jq |
David K. Bainbridge | e9f284d | 2016-05-18 14:13:43 -0700 | [diff] [blame] | 23 | |
David K. Bainbridge | 589a08f | 2016-06-15 18:14:18 -0700 | [diff] [blame] | 24 | - name: Ensure Docker Insecure Repository |
| 25 | become: yes |
| 26 | lineinfile: |
| 27 | dest: /etc/default/docker |
| 28 | line: 'DOCKER_OPTS="$DOCKER_OPTS --insecure-registry docker-registry:5000"' |
| 29 | insertafter: '^DOCKER_OPTS' |
| 30 | register: docker_config |
| 31 | |
| 32 | - name: Docker Restart |
| 33 | become: yes |
| 34 | service: |
| 35 | name=docker |
| 36 | state=restarted |
| 37 | when: docker_config.changed |
| 38 | |
David K. Bainbridge | e9f284d | 2016-05-18 14:13:43 -0700 | [diff] [blame] | 39 | - name: Ensure Docker Ansible Support |
| 40 | become: yes |
| 41 | pip: |
| 42 | name=docker-py |
| 43 | version=0.3.1 |
David K. Bainbridge | 317e7d7 | 2016-05-11 08:31:44 -0700 | [diff] [blame] | 44 | |
| 45 | - name: Set Default Password |
| 46 | become: yes |
| 47 | user: |
David K. Bainbridge | b541504 | 2016-05-13 17:06:10 -0700 | [diff] [blame] | 48 | name={{ ansible_user }} |
David K. Bainbridge | 317e7d7 | 2016-05-11 08:31:44 -0700 | [diff] [blame] | 49 | password="$6$TjhJuOgh8xp.v$z/4GwFbn5koVmkD6Ex9wY7bgP7L3uP2ujZkZSs1HNdzQdz9YclbnZH9GvqMC/M1iwC0MceL05.13HoFz/bai0/" |
David K. Bainbridge | 2a80422 | 2016-05-16 12:36:32 -0700 | [diff] [blame] | 50 | when: '"{{ ansible_user }}" == "ubuntu"' |
David K. Bainbridge | 317e7d7 | 2016-05-11 08:31:44 -0700 | [diff] [blame] | 51 | |
David K. Bainbridge | 39d0c78 | 2016-05-11 13:27:57 -0700 | [diff] [blame] | 52 | - name: Authorize SSH Key |
| 53 | become: yes |
| 54 | authorized_key: |
| 55 | key="{{ pub_ssh_key }}" |
David K. Bainbridge | b541504 | 2016-05-13 17:06:10 -0700 | [diff] [blame] | 56 | user={{ ansible_user }} |
David K. Bainbridge | 39d0c78 | 2016-05-11 13:27:57 -0700 | [diff] [blame] | 57 | state=present |
| 58 | |
| 59 | - name: Verify Private SSH Key |
| 60 | become: yes |
| 61 | stat: |
David K. Bainbridge | b541504 | 2016-05-13 17:06:10 -0700 | [diff] [blame] | 62 | path=/home/{{ ansible_user }}/.ssh/id_rsa |
David K. Bainbridge | 39d0c78 | 2016-05-11 13:27:57 -0700 | [diff] [blame] | 63 | register: private_key |
| 64 | |
David K. Bainbridge | b541504 | 2016-05-13 17:06:10 -0700 | [diff] [blame] | 65 | - name: Ensure SSH Key |
Andy Bavier | ceab230 | 2016-07-07 09:04:07 -0400 | [diff] [blame] | 66 | become: no |
David K. Bainbridge | 39d0c78 | 2016-05-11 13:27:57 -0700 | [diff] [blame] | 67 | copy: |
| 68 | src=files/{{ item }} |
Andy Bavier | ceab230 | 2016-07-07 09:04:07 -0400 | [diff] [blame] | 69 | dest={{ ansible_env['PWD'] }}/.ssh/{{ item }} |
David K. Bainbridge | b541504 | 2016-05-13 17:06:10 -0700 | [diff] [blame] | 70 | owner={{ ansible_user }} |
David K. Bainbridge | 39d0c78 | 2016-05-11 13:27:57 -0700 | [diff] [blame] | 71 | mode=0600 |
| 72 | with_items: |
| 73 | - id_rsa |
| 74 | - id_rsa.pub |
David K. Bainbridge | 81bda33 | 2016-06-14 22:58:41 -0700 | [diff] [blame] | 75 | - config |
David K. Bainbridge | 39d0c78 | 2016-05-11 13:27:57 -0700 | [diff] [blame] | 76 | |
| 77 | - name: Ensure CORD SUDO |
| 78 | become: yes |
| 79 | copy: |
| 80 | src=files/99-cord-sudoers |
| 81 | dest=/etc/sudoers.d/99-cord-sudoers |
| 82 | owner=root |
| 83 | group=root |
| 84 | mode=0600 |
| 85 | |
alshabib | e16ef4c | 2016-05-27 17:13:23 -0700 | [diff] [blame] | 86 | - name: Verify Mellanox 40Gb NIC |
| 87 | shell: /usr/bin/lspci | grep "Ethernet controller" | grep -c ConnectX-3 || true |
| 88 | register: mlx_nic_present |
David K. Bainbridge | 0820cab | 2016-06-02 17:43:32 -0700 | [diff] [blame] | 89 | changed_when: False |
alshabib | e16ef4c | 2016-05-27 17:13:23 -0700 | [diff] [blame] | 90 | |
| 91 | - name: Verify Intel 40Gb NIC |
| 92 | shell: /usr/bin/lspci | grep "Ethernet controller" | grep -c "XL710 for 40GbE QSFP+" || true |
| 93 | register: intel_nic_present |
David K. Bainbridge | 0820cab | 2016-06-02 17:43:32 -0700 | [diff] [blame] | 94 | changed_when: False |
alshabib | e16ef4c | 2016-05-27 17:13:23 -0700 | [diff] [blame] | 95 | |
David K. Bainbridge | 317e7d7 | 2016-05-11 08:31:44 -0700 | [diff] [blame] | 96 | - name: Verify i40e Driver |
| 97 | command: modinfo --field=version i40e |
| 98 | register: i40e_version |
David K. Bainbridge | 10a8b98 | 2016-06-28 10:43:44 -0700 | [diff] [blame] | 99 | when: intel_nic_present.stdout != "0" |
David K. Bainbridge | 317e7d7 | 2016-05-11 08:31:44 -0700 | [diff] [blame] | 100 | changed_when: False |
David K. Bainbridge | b541504 | 2016-05-13 17:06:10 -0700 | [diff] [blame] | 101 | failed_when: False |
David K. Bainbridge | 4ec841c | 2016-05-11 22:10:15 -0700 | [diff] [blame] | 102 | tags: |
| 103 | - interface_config |
David K. Bainbridge | 317e7d7 | 2016-05-11 08:31:44 -0700 | [diff] [blame] | 104 | |
alshabib | e16ef4c | 2016-05-27 17:13:23 -0700 | [diff] [blame] | 105 | - name: Verify mlx4 Driver |
| 106 | command: modinfo --field=version mlx4_core |
| 107 | register: mlx4_version |
David K. Bainbridge | 10a8b98 | 2016-06-28 10:43:44 -0700 | [diff] [blame] | 108 | when: mlx_nic_present.stdout != "0" |
alshabib | e16ef4c | 2016-05-27 17:13:23 -0700 | [diff] [blame] | 109 | changed_when: False |
| 110 | failed_when: False |
| 111 | tags: |
| 112 | - interface_config |
| 113 | |
| 114 | - name: Update mlx4 Driver |
| 115 | include: tasks/mlx4_driver.yml |
David K. Bainbridge | 10a8b98 | 2016-06-28 10:43:44 -0700 | [diff] [blame] | 116 | when: mlx_nic_present.stdout != "0" and mlx4_version.stdout != '3.1-1.0.4' |
alshabib | e16ef4c | 2016-05-27 17:13:23 -0700 | [diff] [blame] | 117 | tags: |
| 118 | - interface_config |
| 119 | |
David K. Bainbridge | 317e7d7 | 2016-05-11 08:31:44 -0700 | [diff] [blame] | 120 | - name: Update i40e Driver |
| 121 | include: tasks/i40e_driver.yml |
David K. Bainbridge | 10a8b98 | 2016-06-28 10:43:44 -0700 | [diff] [blame] | 122 | when: intel_nic_present.stdout != "0" and i40e_version.stdout != '1.4.25' |
David K. Bainbridge | 4ec841c | 2016-05-11 22:10:15 -0700 | [diff] [blame] | 123 | tags: |
| 124 | - interface_config |
David K. Bainbridge | 317e7d7 | 2016-05-11 08:31:44 -0700 | [diff] [blame] | 125 | |
| 126 | - name: Consistent Interface Naming |
| 127 | become: yes |
David K. Bainbridge | 9d1e02d | 2016-06-22 09:22:16 -0700 | [diff] [blame] | 128 | script: files/rename_ifaces.sh "{{ compute_node.interfaces.fabric }}" "{{ compute_node.addresses.fabric }}" "{{ compute_node.interfaces.external }}" "{{ compute_node.addresses.external }}" "{{ compute_node.interfaces.management }}" "{{ compute_node.addresses.management }}" |
David K. Bainbridge | 317e7d7 | 2016-05-11 08:31:44 -0700 | [diff] [blame] | 129 | register: ifaces_changed |
David K. Bainbridge | 8db2f30 | 2016-05-19 23:41:13 -0700 | [diff] [blame] | 130 | changed_when: ifaces_changed.stdout.find("true") != -1 |
David K. Bainbridge | 4ec841c | 2016-05-11 22:10:15 -0700 | [diff] [blame] | 131 | tags: |
| 132 | - interface_config |
David K. Bainbridge | 317e7d7 | 2016-05-11 08:31:44 -0700 | [diff] [blame] | 133 | |
alshabib | 54cdbb2 | 2016-06-03 16:37:01 -0700 | [diff] [blame] | 134 | - name: Load modules at boot |
| 135 | become: yes |
| 136 | lineinfile: |
| 137 | dest: /etc/modules |
| 138 | line: "{{ item }}" |
| 139 | with_items: |
| 140 | - lp |
| 141 | - loop |
| 142 | - rtc |
| 143 | - bonding |
| 144 | |
David K. Bainbridge | 317e7d7 | 2016-05-11 08:31:44 -0700 | [diff] [blame] | 145 | - name: Reboot Required |
| 146 | become: yes |
| 147 | command: /sbin/reboot |
David K. Bainbridge | 8db2f30 | 2016-05-19 23:41:13 -0700 | [diff] [blame] | 148 | async: 0 |
David K. Bainbridge | b5e232a | 2016-05-17 13:55:24 -0700 | [diff] [blame] | 149 | poll: 0 |
| 150 | ignore_errors: true |
David K. Bainbridge | df0f7e0 | 2016-05-20 09:18:28 -0700 | [diff] [blame] | 151 | when: ifaces_changed.stdout.find("true") != -1 |
David K. Bainbridge | 4ec841c | 2016-05-11 22:10:15 -0700 | [diff] [blame] | 152 | tags: |
| 153 | - interface_config |
David K. Bainbridge | cd4caeb | 2016-05-23 14:58:12 -0700 | [diff] [blame] | 154 | - reboot |
David K. Bainbridge | b5e232a | 2016-05-17 13:55:24 -0700 | [diff] [blame] | 155 | |
David K. Bainbridge | 9d1e02d | 2016-06-22 09:22:16 -0700 | [diff] [blame] | 156 | - name: Ensure Port Defined |
| 157 | set_fact: |
| 158 | ansible_ssh_port: 22 |
| 159 | when: ansible_ssh_port is not defined |
| 160 | |
David K. Bainbridge | b5e232a | 2016-05-17 13:55:24 -0700 | [diff] [blame] | 161 | - name: Wait For Restart |
David K. Bainbridge | 9d1e02d | 2016-06-22 09:22:16 -0700 | [diff] [blame] | 162 | local_action: wait_for port={{ ansible_ssh_port }} host={{ inventory_hostname }} search_regex=OpenSSH delay=30 timeout=600 connect_timeout=15 |
David K. Bainbridge | 22d5f3c | 2016-05-20 09:21:56 -0700 | [diff] [blame] | 163 | when: ifaces_changed.stdout.find("true") != -1 |
David K. Bainbridge | ed10154 | 2016-05-18 20:26:15 -0700 | [diff] [blame] | 164 | tags: |
| 165 | - interface_config |
David K. Bainbridge | cd4caeb | 2016-05-23 14:58:12 -0700 | [diff] [blame] | 166 | - reboot |