c0e1cd358d3fcf54204cfc977229d3875c6e81e0
[apex.git] / lib / ansible / playbooks / configure_undercloud.yml
1 ---
2 - hosts: all
3   tasks:
4     - name: Generate SSH key for stack if missing
5       shell: test -e ~/.ssh/id_rsa || ssh-keygen -t rsa -N "" -f ~/.ssh/id_rsa
6     - name: Fix ssh key for stack
7       shell: restorecon -r /home/stack
8       become: yes
9     - file:
10         path: /home/stack/nics
11         state: directory
12         owner: stack
13         group: stack
14         mode: 0775
15     - copy:
16         src: /root/.ssh/id_rsa.pub
17         dest: /home/stack/jumphost_id_rsa.pub
18         owner: stack
19         group: stack
20         mode: 0644
21     - copy:
22         src: "{{ apex_temp_dir }}/{{ item }}.yaml"
23         dest: "/home/stack/nics/{{ item }}.yaml"
24         owner: stack
25         group: stack
26         mode: 0644
27       with_items:
28         - controller
29         - compute
30     - lineinfile:
31         path: /etc/sudoers
32         regexp: 'Defaults\s*requiretty'
33         state: absent
34       become: yes
35     - name: openstack-configs undercloud
36       shell: openstack-config --set undercloud.conf DEFAULT {{ item }}
37       with_items: "{{ undercloud_config }}"
38     - name: openstack-configs ironic
39       shell: openstack-config --set /etc/ironic/ironic.conf {{ item }}
40       become: yes
41       with_items: "{{ ironic_config }}"
42     - name: openstack-configs undercloud aarch64
43       shell: openstack-config --set undercloud.conf DEFAULT ipxe_enabled false
44       when: aarch64
45     - lineinfile:
46         path: /usr/lib/python2.7/site-packages/ironic/common/pxe_utils.py
47         regexp: '_link_ip_address_pxe_configs'
48         line: '        _link_mac_pxe_configs(task)'
49       when: aarch64
50     - block:
51         - name: undercloud install
52           shell: openstack undercloud install &> apex-undercloud-install.log
53           become: yes
54           become_user: stack
55       rescue:
56         - name: undercloud install retry
57           shell: openstack undercloud install >> apex-undercloud-install.log 2>&1
58           become: yes
59           become_user: stack
60       always:
61         - name: fetch undercloud log
62           fetch:
63             src: /home/stack/apex-undercloud-install.log
64             dest: "{{ apex_temp_dir }}/"
65             flat: yes
66     - name: openstack-configs nova
67       shell: openstack-config --set /etc/nova/nova.conf DEFAULT {{ item }}
68       become: yes
69       with_items: "{{ nova_config }}"
70     - name: restart nova services
71       service:
72         name: "{{ item }}"
73         state: restarted
74         enabled: yes
75       with_items:
76         - openstack-nova-conductor
77         - openstack-nova-compute
78         - openstack-nova-api
79         - openstack-nova-scheduler
80     - name: openstack-configs neutron
81       shell: openstack-config --set /etc/neutron/neutron.conf DEFAULT {{ item }}
82       become: yes
83       with_items: "{{ neutron_config }}"
84     - name: restart neutron services
85       service:
86         name: "{{ item }}"
87         state: restarted
88         enabled: yes
89       with_items:
90         - neutron-server
91         - neutron-dhcp-agent
92     - name: configure external network vlan ifcfg
93       template:
94         src: external_vlan_ifcfg.yml.j2
95         dest: "/etc/sysconfig/network-scripts/ifcfg-vlan{{ external_network.vlan }}"
96         owner: root
97         group: root
98         mode: 0644
99       become: yes
100       when:
101         - external_network.vlan != "native"
102         - external_network.enabled
103     - name: bring up vlan ifcfg
104       shell: "ifup vlan{{ external_network.vlan }}"
105       become: yes
106       when:
107         - external_network.vlan != "native"
108         - external_network.enabled
109     - name: assign IP to native eth2
110       shell: ip a a {{ external_network.ip }}/{{ external_network.prefix }} dev eth2
111       become: yes
112       when:
113         - external_network.vlan == "native"
114         - external_network.enabled
115         - not aarch64
116     - name: bring up eth2
117       shell: ip link set up dev eth2
118       when:
119         - external_network.vlan == "native"
120         - external_network.enabled
121         - not aarch64
122       become: yes
123     - name: assign IP to native eth0 if aarch64
124       shell: ip a a {{ external_network.ip }}/{{ external_network.prefix }} dev eth0
125       become: yes
126       when:
127         - external_network.vlan == "native"
128         - external_network.enabled
129         - aarch64
130     - name: bring up eth0 if aarch64
131       shell: ip link set up dev eth0
132       when:
133         - external_network.vlan == "native"
134         - external_network.enabled
135         - aarch64
136       become: yes
137     - name: fetch storage environment file
138       fetch:
139         src: /usr/share/openstack-tripleo-heat-templates/environments/storage-environment.yaml
140         dest: "{{ apex_temp_dir }}/"
141         flat: yes
142
143 - include: undercloud_aarch64.yml
144   when: aarch64