930b7bc96500d92d31fb4061e319f875df8d9fc8
[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: Install RDMA (InfiniBand/iWARP/RoCE) requirements
51           yum:
52             name:
53               - libibverbs
54               - libmlx5
55             state: present
56           become: true
57     - name: 'Pre-Install yum and pip packages'
58       block:
59         - name: Create /tmp/devstack directory
60           file:
61             path: /tmp/devstack
62             state: directory
63             mode: 0755
64         - name: Fetch openstack devstack-dev repo
65           git:
66             repo: https://github.com/openstack-dev/devstack.git
67             dest: /tmp/devstack
68             version: '{{ os_branch }}'
69         - name: "Read openstack devstack dependencies"
70           shell: "sed -e 's/#.*//' /tmp/devstack/files/rpms/general"
71           register: sed_output
72           args:
73             warn: False
74         - name: "Install non-baseline requirements for {{ os_branch }}"
75           yum:
76             name: "{{ sed_output.stdout_lines }}"
77             state: present
78           become: true
79         - name: git clone openstack core projects
80           git: repo='https://github.com/openstack/{{ item }}.git'
81                dest='/tmp/devstack/{{ item }}'
82                version='{{ os_branch }}'
83           with_items:
84             - requirements
85             - keystone
86             - glance
87             - cinder
88             - neutron
89             - nova
90             - horizon
91         - name: Install pip dependencies
92           shell: |
93             cd "{{ item }}"
94             git branch -a
95             cd ..
96             pwd
97             pip install -c requirements/upper-constraints.txt -e "{{ item }}"
98             pip install -c requirements/upper-constraints.txt -r "{{ item }}/test-requirements.txt"
99             # ignore non-zero return code
100             exit 0
101           args:
102             chdir: /tmp/devstack
103             warn: False
104           with_items:
105             - requirements
106             - keystone
107             - glance
108             - cinder
109             - neutron
110             - nova
111             - horizon
112           become: true
113
114     - name: 'Install openvswitch from relevant openstack branch'
115       block:
116         - name: 'Install CentOS openstack release {{ rdo_branch }}'
117           yum:
118             name: 'centos-release-openstack-{{ rdo_branch }}'
119             state: present
120           become: true
121         - name: 'Install openvswitch 2.8.2 for stable/queens'
122           yum:
123             name: openvswitch-2.8.2-1.el7
124             state: present
125             disable_gpg_check: yes
126           when: rdo_branch == 'queens'
127           become: true
128         - name: 'Install openvswitch latest for stable/rocky'
129           yum:
130             name: openvswitch
131             state: present
132             disable_gpg_check: yes
133           when: rdo_branch == 'rocky'
134           become: true
135
136     - name: 'Cleanup devstack directory'
137       block:
138         - name: "Removing /tmp/devstack"
139           file:
140             path: /tmp/devstack
141             state: absent
142           become: true