aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorHarry Huang <huangxiangyu5@huawei.com>2018-08-23 07:00:31 +0000
committerGerrit Code Review <gerrit@opnfv.org>2018-08-23 07:00:31 +0000
commit6d6562461a5faae955dedb1c365cb4b21a60d516 (patch)
tree244a531cbe47589088d97f3df789483201277077
parent77cee7bf8e6c5e3780dc049e4d57d06036c9ddb5 (diff)
parentdd141c87e0c5ca38b727760d70fa2956d83d03b2 (diff)
Merge "[stor4nfv] Add os-stor4nfv role for OpenStack deploy"
-rw-r--r--deploy/adapters/ansible/openstack/HA-ansible-multinodes.yml6
-rw-r--r--deploy/conf/vm_environment/os-nosdn-stor4nfv-ha.yml45
-rw-r--r--deploy/conf/vm_environment/os-nosdn-stor4nfv-noha.yml28
-rw-r--r--plugins/stor4nfv/plugin.desc4
-rw-r--r--plugins/stor4nfv/roles/os-stor4nfv/files/install_ansible.sh18
-rw-r--r--plugins/stor4nfv/roles/os-stor4nfv/files/os_configure_vars.sh25
-rw-r--r--plugins/stor4nfv/roles/os-stor4nfv/tasks/main.yml14
-rw-r--r--plugins/stor4nfv/roles/os-stor4nfv/tasks/opensds.yml72
-rw-r--r--plugins/stor4nfv/roles/os-stor4nfv/tasks/post-install.yml78
9 files changed, 290 insertions, 0 deletions
diff --git a/deploy/adapters/ansible/openstack/HA-ansible-multinodes.yml b/deploy/adapters/ansible/openstack/HA-ansible-multinodes.yml
index c14f958e..1d4ec9ef 100644
--- a/deploy/adapters/ansible/openstack/HA-ansible-multinodes.yml
+++ b/deploy/adapters/ansible/openstack/HA-ansible-multinodes.yml
@@ -120,3 +120,9 @@
remote_user: root
roles:
- moon
+
+- hosts:
+ - ceph_adm
+ remote_user: root
+ roles:
+ - os-stor4nfv
diff --git a/deploy/conf/vm_environment/os-nosdn-stor4nfv-ha.yml b/deploy/conf/vm_environment/os-nosdn-stor4nfv-ha.yml
new file mode 100644
index 00000000..1ef4bdd9
--- /dev/null
+++ b/deploy/conf/vm_environment/os-nosdn-stor4nfv-ha.yml
@@ -0,0 +1,45 @@
+##############################################################################
+# Copyright (c) 2016 HUAWEI TECHNOLOGIES CO.,LTD and others.
+#
+# All rights reserved. This program and the accompanying materials
+# are made available under the terms of the Apache License, Version 2.0
+# which accompanies this distribution, and is available at
+# http://www.apache.org/licenses/LICENSE-2.0
+##############################################################################
+
+---
+TYPE: virtual
+FLAVOR: cluster
+
+plugins:
+ - stor4nfv: "Enable"
+
+hosts:
+ - name: host1
+ roles:
+ - controller
+ - ha
+ - ceph-adm
+ - ceph-mon
+
+ - name: host2
+ roles:
+ - controller
+ - ha
+ - ceph-mon
+
+ - name: host3
+ roles:
+ - controller
+ - ha
+ - ceph-mon
+
+ - name: host4
+ roles:
+ - compute
+ - ceph-osd
+
+ - name: host5
+ roles:
+ - compute
+ - ceph-osd
diff --git a/deploy/conf/vm_environment/os-nosdn-stor4nfv-noha.yml b/deploy/conf/vm_environment/os-nosdn-stor4nfv-noha.yml
new file mode 100644
index 00000000..e03a4d4d
--- /dev/null
+++ b/deploy/conf/vm_environment/os-nosdn-stor4nfv-noha.yml
@@ -0,0 +1,28 @@
+##############################################################################
+# Copyright (c) 2016 HUAWEI TECHNOLOGIES CO.,LTD and others.
+#
+# All rights reserved. This program and the accompanying materials
+# are made available under the terms of the Apache License, Version 2.0
+# which accompanies this distribution, and is available at
+# http://www.apache.org/licenses/LICENSE-2.0
+##############################################################################
+
+---
+TYPE: virtual
+FLAVOR: cluster
+
+plugins:
+ - stor4nfv: "Enable"
+
+hosts:
+ - name: host1
+ roles:
+ - controller
+ - ha
+ - ceph-adm
+ - ceph-mon
+
+ - name: host2
+ roles:
+ - compute
+ - ceph-osd
diff --git a/plugins/stor4nfv/plugin.desc b/plugins/stor4nfv/plugin.desc
index ae589a60..e0a1e690 100644
--- a/plugins/stor4nfv/plugin.desc
+++ b/plugins/stor4nfv/plugin.desc
@@ -43,3 +43,7 @@ plugin:
phrase: post_k8s
inventory:
- localhost
+ - role: os-stor4nfv
+ phrase: post_openstack
+ inventory:
+ - localhost
diff --git a/plugins/stor4nfv/roles/os-stor4nfv/files/install_ansible.sh b/plugins/stor4nfv/roles/os-stor4nfv/files/install_ansible.sh
new file mode 100644
index 00000000..d921d4e2
--- /dev/null
+++ b/plugins/stor4nfv/roles/os-stor4nfv/files/install_ansible.sh
@@ -0,0 +1,18 @@
+#!/bin/bash
+# #############################################################################
+# Copyright (c) 2018 Intel Corp.
+#
+# All rights reserved. This program and the accompanying materials
+# are made available under the terms of the Apache License, Version 2.0
+# which accompanies this distribution, and is available at
+# http://www.apache.org/licenses/LICENSE-2.0
+# #############################################################################
+
+add-apt-repository ppa:ansible/ansible-2.4
+
+apt-get update
+apt-get install -y ansible
+sleep 5
+
+ansible --version
+
diff --git a/plugins/stor4nfv/roles/os-stor4nfv/files/os_configure_vars.sh b/plugins/stor4nfv/roles/os-stor4nfv/files/os_configure_vars.sh
new file mode 100644
index 00000000..7d497598
--- /dev/null
+++ b/plugins/stor4nfv/roles/os-stor4nfv/files/os_configure_vars.sh
@@ -0,0 +1,25 @@
+#!/bin/bash
+# #############################################################################
+# Copyright (c) 2018 Intel Corp.
+#
+# All rights reserved. This program and the accompanying materials
+# are made available under the terms of the Apache License, Version 2.0
+# which accompanies this distribution, and is available at
+# http://www.apache.org/licenses/LICENSE-2.0
+# #############################################################################
+
+cd $HOME/gopath/src/github.com/os-stor4nfv/stor4nfv/ci/ansible
+
+sed -i '/- osdsdock/s/^/#/g' site.yml
+
+sed -i '/- dashboard-installer/s/^/#/g' site.yml
+
+sed -i '/- nbp-installer/s/^/#/g' site.yml
+
+sed -i '/check_ansible_version/a \ ignore_errors: yes\' roles/common/tasks/main.yml
+
+# auth
+sed -i 's/^opensds_auth_strategy.*/opensds_auth_strategy: noauth/g' group_vars/auth.yml
+
+# opensds_endpoint
+sed -i 's/^opensds_endpoint.*/opensds_endpoint: http:\/\/'"$1"':50040/g' group_vars/common.yml
diff --git a/plugins/stor4nfv/roles/os-stor4nfv/tasks/main.yml b/plugins/stor4nfv/roles/os-stor4nfv/tasks/main.yml
new file mode 100644
index 00000000..060c9cf1
--- /dev/null
+++ b/plugins/stor4nfv/roles/os-stor4nfv/tasks/main.yml
@@ -0,0 +1,14 @@
+# #############################################################################
+# Copyright (c) 2018 Intel Corp.
+#
+# All rights reserved. This program and the accompanying materials
+# are made available under the terms of the Apache License, Version 2.0
+# which accompanies this distribution, and is available at
+# http://www.apache.org/licenses/LICENSE-2.0
+# #############################################################################
+---
+- include: opensds.yml
+- include: post-install.yml
+ when:
+ - ansible_distribution == 'Ubuntu'
+ - stor4nfv is defined and stor4nfv == "Enable"
diff --git a/plugins/stor4nfv/roles/os-stor4nfv/tasks/opensds.yml b/plugins/stor4nfv/roles/os-stor4nfv/tasks/opensds.yml
new file mode 100644
index 00000000..2d0f05cc
--- /dev/null
+++ b/plugins/stor4nfv/roles/os-stor4nfv/tasks/opensds.yml
@@ -0,0 +1,72 @@
+# #############################################################################
+# Copyright (c) 2018 Intel Corp.
+#
+# All rights reserved. This program and the accompanying materials
+# are made available under the terms of the Apache License, Version 2.0
+# which accompanies this distribution, and is available at
+# http://www.apache.org/licenses/LICENSE-2.0
+# #############################################################################
+---
+
+- name: install prerequisites package
+ apt:
+ name: "{{ item }}"
+ state: present
+ with_items:
+ - git
+ - gawk
+ - curl
+ - wget
+ - software-properties-common
+
+- name: copy install_ansible script
+ remote_user: root
+ copy:
+ src: install_ansible.sh
+ dest: /opt/install_ansible.sh
+ mode: 0777
+
+- name: install ansible
+ command: su -s /bin/sh -c "/opt/install_ansible.sh"
+ ignore_errors: "true"
+
+- name: disable cinder
+ remote_user: root
+ shell: |
+ lxc-stop -n $(lxc-ls --line | grep cinder_api)
+ lxc-stop -n $(lxc-ls --line | grep cinder_scheduler)
+ ignore_errors: "true"
+
+- name: modify haproxy.cfg and restart haproxy
+ remote_user: root
+ shell: |
+ sed -i \
+ '/frontend cinder_api-front/,/host1_cinder_api_container/ s/^/#/' /etc/haproxy/haproxy.cfg
+ systemctl restart haproxy
+ ignore_errors: "true"
+
+- name: fetch stor4nfv source code
+ remote_user: root
+ shell: |
+ mkdir -p $HOME/gopath/src/github.com/os-stor4nfv && cd $HOME/gopath/src/github.com/os-stor4nfv;
+ rm -rf stor4nfv;
+ git clone https://gerrit.opnfv.org/gerrit/stor4nfv.git
+
+- name: copy os_configure_vars script
+ remote_user: root
+ copy:
+ src: os_configure_vars.sh
+ dest: /opt/os_configure_vars.sh
+ mode: 0777
+
+- name: configure variables for opensds
+ remote_user: root
+ shell: |
+ cd /opt;
+ ./os_configure_vars.sh {{ public_vip.ip }}
+
+- name: run playbook
+ remote_user: root
+ shell: |
+ cd $HOME/gopath/src/github.com/os-stor4nfv/stor4nfv/ci/ansible;
+ ansible-playbook site.yml -i local.hosts | tee /var/log/os-stor4nfv.log
diff --git a/plugins/stor4nfv/roles/os-stor4nfv/tasks/post-install.yml b/plugins/stor4nfv/roles/os-stor4nfv/tasks/post-install.yml
new file mode 100644
index 00000000..c549566a
--- /dev/null
+++ b/plugins/stor4nfv/roles/os-stor4nfv/tasks/post-install.yml
@@ -0,0 +1,78 @@
+# #############################################################################
+# Copyright (c) 2018 Intel Corp.
+#
+# All rights reserved. This program and the accompanying materials
+# are made available under the terms of the Apache License, Version 2.0
+# which accompanies this distribution, and is available at
+# http://www.apache.org/licenses/LICENSE-2.0
+# #############################################################################
+---
+
+- name: ensure opensds.conf exists
+ stat:
+ path: /etc/opensds/opensds.conf
+ ignore_errors: "true"
+ register: opensds_exists
+
+- name: configure ceph.yaml, opensds.conf
+ remote_user: root
+ shell: |
+ cd /root/gopath/src/github.com/os-stor4nfv/stor4nfv/ci/ansible
+ cp group_vars/ceph/ceph.yaml /etc/opensds/driver/
+
+ sed -i 's/^ enabled_backends.*/ enabled_backends: ceph/g' /etc/opensds/opensds.conf
+
+ sudo cat >> /etc/opensds/opensds.conf << OPENSDS_GLOABL_CONFIG_DOC
+
+ [ceph]
+ name = ceph
+ description = Ceph Test
+ driver_name = ceph
+ config_path = /etc/opensds/driver/ceph.yaml
+ OPENSDS_GLOABL_CONFIG_DOC
+ when:
+ - opensds_exists.stat.exists
+
+- name: copy ceph.conf from ceph-mon container
+ remote_user: root
+ shell: |
+ mkdir -p /etc/ceph
+ cp /proc/$(lxc-info -n $(lxc-ls --line | grep ceph-mon) -p -H)/root/etc/ceph/ceph.conf \
+ /etc/ceph/ceph.conf
+ when:
+ - opensds_exists.stat.exists
+
+- name: ensure osdsdock exists
+ stat:
+ path: /opt/opensds-hotpot-linux-amd64/bin/osdsdock
+ ignore_errors: "true"
+ register: osdsdock_exists
+
+- name: start osdsdock daemon
+ remote_user: root
+ shell: |
+ /opt/opensds-hotpot-linux-amd64/bin/osdsdock -daemon
+ ignore_errors: "true"
+ when:
+ - osdsdock_exists.stat.exists
+
+- name: ensure osdsctl exists
+ stat:
+ path: /opt/opensds-hotpot-linux-amd64/bin/osdsctl
+ ignore_errors: "true"
+ register: osdsctl_exists
+
+- name: run cinder-compatible-api, create opensds default profile
+ remote_user: root
+ shell: |
+ cd $HOME/gopath/src/github.com/os-stor4nfv/stor4nfv/ci/ansible;
+ export OPENSDS_ENDPOINT=http://{{ public_vip.ip }}:50040;
+ export CINDER_ENDPOINT=http://{{ internal_vip.ip }}:8776/v3;
+ chmod +x ../bin/cindercompatibleapi;
+ ( ( nohup ../bin/cindercompatibleapi > /var/log/cindercompatibleapi.log 2>&1 ) & );
+ cp /opt/opensds-hotpot-linux-amd64/bin/osdsctl /usr/local/bin;
+ export OPENSDS_AUTH_STRATEGY=noauth;
+ osdsctl profile create '{"name": "default", "description": "default policy"}'
+ ignore_errors: "true"
+ when:
+ - osdsctl_exists.stat.exists