Updates and additions to handle aarch64
[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         owner: 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     - name: undercloud install
51       shell: openstack undercloud install &> apex-undercloud-install.log
52       become: yes
53       become_user: stack
54     - name: openstack-configs nova
55       shell: openstack-config --set /etc/nova/nova.conf DEFAULT {{ item }}
56       become: yes
57       with_items: "{{ nova_config }}"
58     - name: restart nova services
59       service:
60         name: "{{ item }}"
61         state: restarted
62         enabled: yes
63       with_items:
64         - openstack-nova-conductor
65         - openstack-nova-compute
66         - openstack-nova-api
67         - openstack-nova-scheduler
68     - name: openstack-configs neutron
69       shell: openstack-config --set /etc/neutron/neutron.conf DEFAULT {{ item }}
70       become: yes
71       with_items: "{{ neutron_config }}"
72     - name: restart neutron services
73       service:
74         name: "{{ item }}"
75         state: restarted
76         enabled: yes
77       with_items:
78         - neutron-server
79         - neutron-dhcp-agent
80     - name: configure external network vlan ifcfg
81       template:
82         src: external_vlan_ifcfg.yml.j2
83         dest: "/etc/sysconfig/network-scripts/ifcfg-vlan{{ external_network.vlan }}"
84         owner: root
85         group: root
86         mode: 0644
87       become: yes
88       when:
89         - external_network.vlan != "native"
90         - external_network.enabled
91     - name: bring up vlan ifcfg
92       shell: "ifup vlan{{ external_network.vlan }}"
93       become: yes
94       when:
95         - external_network.vlan != "native"
96         - external_network.enabled
97     - name: assign IP to native eth2
98       shell: ip a a {{ external_network.ip }}/{{ external_network.prefix }} dev eth2
99       become: yes
100       when:
101         - external_network.vlan == "native"
102         - external_network.enabled
103         - not aarch64
104     - name: bring up eth2
105       shell: ip link set up dev eth2
106       when:
107         - external_network.vlan == "native"
108         - external_network.enabled
109         - not aarch64
110       become: yes
111     - name: assign IP to native eth0 if aarch64
112       shell: ip a a {{ external_network.ip }}/{{ external_network.prefix }} dev eth0
113       become: yes
114       when:
115         - external_network.vlan == "native"
116         - external_network.enabled
117         - aarch64
118     - name: bring up eth0 if aarch64
119       shell: ip link set up dev eth0
120       when:
121         - external_network.vlan == "native"
122         - external_network.enabled
123         - aarch64
124       become: yes
125     - name: fetch storage environment file
126       fetch:
127         src: /usr/share/openstack-tripleo-heat-templates/environments/storage-environment.yaml
128         dest: "{{ apex_temp_dir }}/"
129         flat: yes
130
131 - include: undercloud_aarch64.yml
132   when: aarch64