diff options
Diffstat (limited to 'ci/ansible/roles/nbp-installer')
-rw-r--r-- | ci/ansible/roles/nbp-installer/scenarios/csi.yml | 44 | ||||
-rw-r--r-- | ci/ansible/roles/nbp-installer/scenarios/flexvolume.yml | 16 | ||||
-rw-r--r-- | ci/ansible/roles/nbp-installer/scenarios/release.yml | 38 | ||||
-rw-r--r-- | ci/ansible/roles/nbp-installer/scenarios/repository.yml | 79 | ||||
-rw-r--r-- | ci/ansible/roles/nbp-installer/tasks/main.yml | 41 |
5 files changed, 215 insertions, 3 deletions
diff --git a/ci/ansible/roles/nbp-installer/scenarios/csi.yml b/ci/ansible/roles/nbp-installer/scenarios/csi.yml index e69de29..93fff88 100644 --- a/ci/ansible/roles/nbp-installer/scenarios/csi.yml +++ b/ci/ansible/roles/nbp-installer/scenarios/csi.yml @@ -0,0 +1,44 @@ +# Copyright (c) 2018 Huawei Technologies Co., Ltd. All Rights Reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +--- +- name: Configure opensds endpoint IP in opensds csi plugin + lineinfile: + dest: "{{ nbp_work_dir }}/csi/deploy/kubernetes/csi-configmap-opensdsplugin.yaml" + regexp: '^ opensdsendpoint' + line: ' opensdsendpoint: {{ opensds_endpoint }}' + backup: yes + +- name: Configure opensds auth strategy in opensds csi plugin + lineinfile: + dest: "{{ nbp_work_dir }}/csi/deploy/kubernetes/csi-configmap-opensdsplugin.yaml" + regexp: '^ opensdsauthstrategy' + line: ' opensdsauthstrategy: {{ opensds_auth_strategy }}' + backup: yes + +- name: Configure keystone os auth url in opensds csi plugin + lineinfile: + dest: "{{ nbp_work_dir }}/csi/deploy/kubernetes/csi-configmap-opensdsplugin.yaml" + regexp: '^ osauthurl' + line: ' osauthurl: {{ keystone_os_auth_url }}' + backup: yes + when: opensds_auth_strategy == "keystone" + +- name: Prepare and deploy opensds csi plugin + shell: | + . /etc/profile + kubectl create -f deploy/kubernetes + args: + chdir: "{{ nbp_work_dir }}/csi" + ignore_errors: yes diff --git a/ci/ansible/roles/nbp-installer/scenarios/flexvolume.yml b/ci/ansible/roles/nbp-installer/scenarios/flexvolume.yml index 0bba93b..52ec16d 100644 --- a/ci/ansible/roles/nbp-installer/scenarios/flexvolume.yml +++ b/ci/ansible/roles/nbp-installer/scenarios/flexvolume.yml @@ -1,3 +1,17 @@ +# Copyright (c) 2018 Huawei Technologies Co., Ltd. All Rights Reserved.
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
---
- name: Create flexvolume plugin directory if not existed
file:
@@ -7,5 +21,5 @@ - name: Copy opensds flexvolume plugin binary file into flexvolume plugin dir
copy:
- src: "{{ nbp_dir }}/flexvolume/opensds"
+ src: "{{ nbp_work_dir }}/flexvolume/opensds"
dest: "{{ flexvolume_plugin_dir }}/opensds"
diff --git a/ci/ansible/roles/nbp-installer/scenarios/release.yml b/ci/ansible/roles/nbp-installer/scenarios/release.yml new file mode 100644 index 0000000..89429d7 --- /dev/null +++ b/ci/ansible/roles/nbp-installer/scenarios/release.yml @@ -0,0 +1,38 @@ +# Copyright (c) 2018 Huawei Technologies Co., Ltd. All Rights Reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +--- +- name: check for nbp release files existed + stat: + path: "{{ nbp_tarball_dir }}" + ignore_errors: yes + register: nbpreleasesexisted + +- name: download and extract the nbp release tarball if not exists + unarchive: + src={{ nbp_download_url }} + dest=/tmp/ + when: + - nbpreleasesexisted.stat.exists is undefined or nbpreleasesexisted.stat.exists == false + +- name: change the mode of all binary files in nbp release + file: + path: "{{ nbp_tarball_dir }}/flexvolume" + mode: 0755 + recurse: yes + +- name: copy nbp tarball into nbp work directory + copy: + src: "{{ nbp_tarball_dir }}/" + dest: "{{ nbp_work_dir }}" diff --git a/ci/ansible/roles/nbp-installer/scenarios/repository.yml b/ci/ansible/roles/nbp-installer/scenarios/repository.yml new file mode 100644 index 0000000..fb8059b --- /dev/null +++ b/ci/ansible/roles/nbp-installer/scenarios/repository.yml @@ -0,0 +1,79 @@ +# Copyright (c) 2018 Huawei Technologies Co., Ltd. All Rights Reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +--- +- set_fact: + go_path: "{{ lookup('env', 'GOPATH') }}" + +- name: check go_path + shell: "{{ item }}" + with_items: + - echo "The environment variable GOPATH must be set and cannot be an empty string!" + - /bin/false + when: go_path == "" + +- name: check for nbp source code existed + stat: + path: "{{ go_path }}/src/github.com/opensds/nbp" + ignore_errors: yes + register: nbpexisted + +- name: download nbp source code if not exists + git: + repo: "{{ nbp_remote_url }}" + dest: "{{ go_path }}/src/github.com/opensds/nbp" + version: "{{ nbp_repo_branch }}" + when: + - nbpexisted.stat.exists is undefined or nbpexisted.stat.exists == false + +- name: build nbp binary file + shell: make + environment: + GOPATH: "{{ go_path }}" + args: + chdir: "{{ go_path }}/src/github.com/opensds/nbp" + +- name: create nbp install directory if it doesn't exist + file: + path: "{{ item }}" + state: directory + mode: 0755 + with_items: + - "{{ nbp_work_dir }}/csi" + - "{{ nbp_work_dir }}/flexvolume" + - "{{ nbp_work_dir }}/provisioner" + +- name: copy nbp csi deploy scripts into nbp work directory + copy: + src: "{{ item }}" + dest: "{{ nbp_work_dir }}/csi/" + directory_mode: yes + with_items: + - "{{ go_path }}/src/github.com/opensds/nbp/csi/server/deploy" + - "{{ go_path }}/src/github.com/opensds/nbp/csi/server/examples" + +- name: copy nbp flexvolume binary file into nbp work directory + copy: + src: "{{ go_path }}/src/github.com/opensds/nbp/.output/flexvolume.server.opensds" + dest: "{{ nbp_work_dir }}/flexvolume/opensds" + mode: 0755 + +- name: copy nbp provisioner deploy scripts into nbp work directory + copy: + src: "{{ item }}" + dest: "{{ nbp_work_dir }}/provisioner/" + directory_mode: yes + with_items: + - "{{ go_path }}/src/github.com/opensds/nbp/opensds-provisioner/deploy" + - "{{ go_path }}/src/github.com/opensds/nbp/opensds-provisioner/examples" diff --git a/ci/ansible/roles/nbp-installer/tasks/main.yml b/ci/ansible/roles/nbp-installer/tasks/main.yml index 58057f1..dd13195 100644 --- a/ci/ansible/roles/nbp-installer/tasks/main.yml +++ b/ci/ansible/roles/nbp-installer/tasks/main.yml @@ -1,8 +1,45 @@ +# Copyright (c) 2018 Huawei Technologies Co., Ltd. All Rights Reserved.
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
---
-- name: include scenarios/flexvolume.yml
+- name: install open-iscsi external packages
+ apt:
+ name: "{{ item }}"
+ state: present
+ with_items:
+ - open-iscsi
+
+- name: create nbp work directory if it doesn't exist
+ file:
+ path: "{{ item }}"
+ state: directory
+ mode: 0755
+ with_items:
+ - "{{ nbp_work_dir }}"
+
+- name: include scenarios/repository.yml when installing from repository
+ include: scenarios/repository.yml
+ when: install_from == "repository"
+
+- name: include scenarios/release.yml when installing from release
+ include: scenarios/release.yml
+ when: install_from == "release"
+
+- name: include scenarios/flexvolume.yml when nbp plugin type is flexvolume
include: scenarios/flexvolume.yml
when: nbp_plugin_type == "flexvolume"
-- name: include scenarios/csi.yml
+- name: include scenarios/csi.yml when nbp plugin type is csi
include: scenarios/csi.yml
when: nbp_plugin_type == "csi"
|