Chore: Update common-packer to latest v0.14.0
[releng/builder.git] / packer / provision / devstack-pre-pip-centos.yaml
1 ---
2 - import_playbook: ../common-packer/provision/baseline.yaml
3
4 - hosts: all
5   become_user: root
6   become_method: sudo
7
8   pre_tasks:
9     - include_role: name=lfit.system-update
10
11   tasks:
12     - name: "Install devstack dependencies"
13       block:
14         - name: Install xpath dependencies
15           yum:
16             name:
17               - perl-XML-XPath
18               - crudini
19             state: present
20           become: true
21         - name: Install non-baseline requirements
22           yum:
23             name:
24               - libxml2-devel
25               - libxslt-devel
26               - libffi-devel
27               - openssl-devel
28               - "@development"
29             state: present
30           become: true
31         - name: check if net link setup exists
32           stat:
33             path: /etc/udev/rules.d/80-net-setup-link.rules
34           register: rules_file_exists
35         - name: Update net link setup
36           file:
37             src: /dev/null
38             dest: /etc/udev/rules.d/80-net-setup-link.rules
39             state: link
40             force: yes
41           become: true
42           when: rules_file_exists.stat.exists == true
43         - name: Install RDMA (InfiniBand/iWARP/RoCE) requirements
44           yum:
45             name:
46               - libibverbs
47               - libmlx5
48             state: present
49           become: true
50     - name: "Pre-Install yum and pip packages"
51       block:
52         - name: Create /tmp/devstack directory
53           file:
54             path: /tmp/devstack
55             state: directory
56             mode: 0755
57         - name: Fetch openstack devstack-dev repo
58           git:
59             repo: https://github.com/openstack-dev/devstack.git
60             dest: /tmp/devstack
61             version: "{{ os_branch }}"
62         - name: "Read openstack devstack dependencies"
63           shell: "sed -e 's/#.*//' /tmp/devstack/files/rpms/general"
64           register: sed_output
65           args:
66             warn: False
67         - name: "Install non-baseline requirements for {{ os_branch }}"
68           yum:
69             name: "{{ sed_output.stdout_lines }}"
70             state: present
71           become: true
72         - name: git clone openstack core projects
73           git: repo='https://github.com/openstack/{{ item }}.git'
74             dest='/tmp/devstack/{{ item }}'
75             version='{{ os_branch }}'
76           with_items:
77             - requirements
78             - keystone
79             - glance
80             - cinder
81             - neutron
82             - nova
83             - horizon
84         - name: Install pip dependencies
85           shell: |
86             cd "{{ item }}"
87             git branch -a
88             cd ..
89             pwd
90             pip install -c requirements/upper-constraints.txt -e "{{ item }}"
91             pip install -c requirements/upper-constraints.txt -r "{{ item }}/test-requirements.txt"
92             # ignore non-zero return code
93             exit 0
94           args:
95             chdir: /tmp/devstack
96             warn: False
97           with_items:
98             - requirements
99             - keystone
100             - glance
101             - cinder
102             - neutron
103             - nova
104             - horizon
105           become: true
106
107     - name: "Install openvswitch from relevant openstack branch"
108       block:
109         - name: "Install CentOS openstack release {{ rdo_branch }}"
110           yum:
111             name: "centos-release-openstack-{{ rdo_branch }}"
112             state: present
113           become: true
114         - name: "Install openvswitch 2.8.2 for stable/queens"
115           yum:
116             name: openvswitch-2.8.2-1.el7
117             state: present
118             disable_gpg_check: yes
119           when: rdo_branch == 'queens'
120           become: true
121         - name: "Install openvswitch latest for stable/rocky"
122           yum:
123             name: openvswitch
124             state: present
125             disable_gpg_check: yes
126           when: rdo_branch == 'rocky'
127           become: true
128
129     # Workaround for git deps conflict on rocky
130     - name: Swap to git
131       block:
132         - name: Gather rpm package facts
133           package_facts:
134             manager: auto
135         - name: Replace git2u with git
136           command: yum replace -y git2u --replace-with git
137           when: ansible_facts.packages['git2u'] is defined
138       become: true
139
140     - name: "Cleanup devstack directory"
141       block:
142         - name: "Removing /tmp/devstack"
143           file:
144             path: /tmp/devstack
145             state: absent
146           become: true