b70b2bdfe12bbbaf839f2efdea1ec26859811ed3
[releng/builder.git] / packer / provision / devstack-pre-pip.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               - python-pip
19               - crudini
20             state: present
21           become: true
22         - name: Install non-baseline requirements
23           yum:
24             name:
25               - deltarpm
26               - python
27               - python-crypto
28               - python-devel
29               - python-lxml
30               - python-setuptools
31               - libxml2-devel
32               - libxslt-devel
33               - libffi-devel
34               - openssl-devel
35               - "@development"
36             state: present
37           become: true
38         - name: check if net link setup exists
39           stat:
40             path: /etc/udev/rules.d/80-net-setup-link.rules
41           register: rules_file_exists
42         - name: Update net link setup
43           file:
44             src: /dev/null
45             dest: /etc/udev/rules.d/80-net-setup-link.rules
46             state: link
47             force: yes
48           become: true
49           when: rules_file_exists.stat.exists == 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: 'name={{item}} state=present'
69           with_items:
70             - "{{ sed_output.stdout_lines }}"
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     - name: 'Cleanup devstack directory'
130       block:
131         - name: "Removing /tmp/devstack"
132           file:
133             path: /tmp/devstack
134             state: absent
135           become: true