Merge nbp installation into opensds ansible script
[stor4nfv.git] / ci / ansible / roles / osdsdock / scenarios / cinder_standalone.yml
1 ---\r
2 - name: install python-pip\r
3   apt:\r
4     name: python-pip\r
5 \r
6 - name: install lvm2\r
7   apt:\r
8     name: lvm2\r
9 \r
10 - name: install thin-provisioning-tools\r
11   apt:\r
12     name: thin-provisioning-tools\r
13 \r
14 - name: install docker-compose\r
15   pip:\r
16     name: docker-compose\r
17 \r
18 - name: copy opensds cinder backend file if specify cinder backend\r
19   copy:\r
20     src: ../../../group_vars/cinder/cinder.yaml\r
21     dest: "{{ cinder_config_path }}"\r
22 \r
23 - name: create directory to save source code and volume group file\r
24   file:\r
25     path: "{{ cinder_data_dir }}"\r
26     state: directory\r
27     recurse: yes\r
28 \r
29 - name: create volume group in thin mode\r
30   shell:\r
31     _raw_params: |\r
32       function _create_lvm_volume_group {\r
33           local vg=$1\r
34           local size=$2\r
35 \r
36           local backing_file={{ cinder_data_dir }}/${vg}.img\r
37           if ! sudo vgs $vg; then\r
38               # Only create if the file doesn't already exists\r
39               [[ -f $backing_file ]] || truncate -s $size $backing_file\r
40               local vg_dev\r
41               vg_dev=`sudo losetup -f --show $backing_file`\r
42 \r
43               # Only create volume group if it doesn't already exist\r
44               if ! sudo vgs $vg; then\r
45                   sudo vgcreate $vg $vg_dev\r
46               fi\r
47           fi\r
48       }\r
49       modprobe dm_thin_pool\r
50       _create_lvm_volume_group {{ cinder_volume_group }} 10G\r
51   args:\r
52     executable: /bin/bash\r
53   become: true\r
54 \r
55 - name: check for python-cinderclient source code existed\r
56   stat:\r
57     path: "{{ cinder_data_dir }}/python-cinderclient"\r
58   ignore_errors: yes\r
59   register: cinderclient_existed\r
60 \r
61 - name: download python-cinderclient source code\r
62   git:\r
63     repo: https://github.com/openstack/python-cinderclient.git\r
64     dest: "{{ cinder_data_dir }}/python-cinderclient"\r
65   when:\r
66     - cinderclient_existed.stat.exists is undefined or cinderclient_existed.stat.exists == false\r
67 \r
68 # Tested successfully in this version `ab0185bfc6e8797a35a2274c2a5ee03afb03dd60`\r
69 # git checkout -b ab0185bfc6e8797a35a2274c2a5ee03afb03dd60\r
70 - name: pip install cinderclinet\r
71   shell: |\r
72     pip install -e .\r
73   become: true\r
74   args:\r
75     chdir: "{{ cinder_data_dir }}/python-cinderclient"\r
76 \r
77 - name: check for python-brick-cinderclient-ext source code existed\r
78   stat:\r
79     path: "{{ cinder_data_dir }}/python-brick-cinderclient-ext"\r
80   ignore_errors: yes\r
81   register: brick_existed\r
82 \r
83 - name: download python-brick-cinderclient-ext source code\r
84   git:\r
85     repo: https://github.com/openstack/python-brick-cinderclient-ext.git\r
86     dest: "{{ cinder_data_dir }}/python-brick-cinderclient-ext"\r
87   when:\r
88     - brick_existed.stat.exists is undefined or brick_existed.stat.exists == false\r
89 \r
90 # Tested successfully in this version `a281e67bf9c12521ea5433f86cec913854826a33`\r
91 # git checkout -b a281e67bf9c12521ea5433f86cec913854826a33\r
92 - name: pip install python-brick-cinderclient-ext\r
93   shell: |\r
94     pip install -e .\r
95   become: true\r
96   args:\r
97     chdir: "{{ cinder_data_dir }}/python-brick-cinderclient-ext"\r
98 \r
99 \r
100 - name: check for cinder source code existed\r
101   stat:\r
102     path: "{{ cinder_data_dir }}/cinder"\r
103   ignore_errors: yes\r
104   register: cinder_existed\r
105 \r
106 - name: download cinder source code\r
107   git:\r
108     repo: https://github.com/openstack/cinder.git\r
109     dest: "{{ cinder_data_dir }}/cinder"\r
110   when:\r
111     - cinder_existed.stat.exists is undefined or cinder_existed.stat.exists == false\r
112 \r
113 # Tested successfully in this version `7bbc95344d3961d0bf059252723fa40b33d4b3fe`\r
114 # git checkout -b 7bbc95344d3961d0bf059252723fa40b33d4b3fe\r
115 - name: update blockbox configuration\r
116   shell: |\r
117     sed -i "s/PLATFORM ?= debian:stretch/PLATFORM ?= {{ cinder_container_platform }}/g" Makefile\r
118     sed -i "s/TAG ?= debian-cinder:latest/TAG ?= {{ cinder_image_tag }}:latest/g" Makefile\r
119 \r
120     sed -i "s/image: debian-cinder/image: {{ cinder_image_tag }}/g" docker-compose.yml\r
121     sed -i "s/image: lvm-debian-cinder/image: lvm-{{ cinder_image_tag }}/g" docker-compose.yml\r
122 \r
123     sed -i "s/volume_group = cinder-volumes /volume_group = {{ cinder_volume_group }}/g" etc/cinder.conf\r
124   become: true\r
125   args:\r
126     chdir: "{{ cinder_data_dir }}/cinder/contrib/block-box"\r
127 \r
128 - name: make blockbox\r
129   shell: make blockbox\r
130   become: true\r
131   args:\r
132     chdir: "{{ cinder_data_dir }}/cinder/contrib/block-box"\r
133 \r
134 - name: start cinder-standalone service\r
135   shell: docker-compose up -d\r
136   become: true\r
137   args:\r
138     chdir: "{{ cinder_data_dir }}/cinder/contrib/block-box"\r
139 \r
140 - name: wait for cinder service to start normally\r
141   wait_for:\r
142     host: 127.0.0.1\r
143     port: 8776\r
144     delay: 2\r
145     timeout: 120\r