aboutsummaryrefslogtreecommitdiffstats
path: root/plugins
diff options
context:
space:
mode:
Diffstat (limited to 'plugins')
-rw-r--r--plugins/barometer/roles/grafana/files/install_grafana.sh2
-rwxr-xr-xplugins/odl_cluster/roles/setup-odl/files/odl_pkg.sh9
-rwxr-xr-xplugins/odl_cluster/roles/setup-odl/tasks/control-agents-1.yml2
-rwxr-xr-xplugins/odl_cluster/roles/setup-odl/tasks/odl-pre.yml3
-rwxr-xr-xplugins/odl_cluster/roles/setup-odl/vars/main.yml6
-rwxr-xr-xplugins/odl_sfc/roles/setup-odl-sfc/files/odl_pkg.sh9
-rw-r--r--plugins/odl_sfc/roles/setup-odl-sfc/tasks/control-tacker-1.yml6
-rwxr-xr-xplugins/odl_sfc/roles/setup-odl-sfc/vars/main.yml6
-rw-r--r--plugins/onap/roles/tasks/Ubuntu.yml117
-rw-r--r--plugins/onap/roles/tasks/main.yml11
-rw-r--r--plugins/onap/roles/templates/exports.j21
-rw-r--r--plugins/onap/roles/vars/main.yml13
-rw-r--r--plugins/opencontrail/plugin.desc43
-rw-r--r--plugins/opencontrail/roles/install-k8s-opencontrail/files/bms-instances.yaml32
-rw-r--r--plugins/opencontrail/roles/install-k8s-opencontrail/files/kvm-instances.yaml32
-rw-r--r--plugins/opencontrail/roles/install-k8s-opencontrail/files/mirrors.repo32
-rw-r--r--plugins/opencontrail/roles/install-k8s-opencontrail/files/mirrors_aarch64.repo22
-rw-r--r--plugins/opencontrail/roles/install-k8s-opencontrail/tasks/main.yml92
-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.sh28
-rw-r--r--plugins/stor4nfv/roles/os-stor4nfv/tasks/main.yml13
-rw-r--r--plugins/stor4nfv/roles/os-stor4nfv/tasks/opensds.yml72
-rw-r--r--plugins/stor4nfv/roles/os-stor4nfv/tasks/post-install.yml143
-rw-r--r--plugins/stor4nfv/roles/os-stor4nfv/tasks/stor4nfv.yml14
-rw-r--r--plugins/stor4nfv/roles/stor4nfv/files/configure_vars.sh23
-rw-r--r--plugins/stor4nfv/roles/stor4nfv/files/install_ansible.sh2
-rw-r--r--plugins/stor4nfv/roles/stor4nfv/tasks/main.yml2
-rw-r--r--plugins/stor4nfv/roles/stor4nfv/tasks/opensds.yml14
-rw-r--r--plugins/stor4nfv/roles/stor4nfv/tasks/post-install.yml69
-rw-r--r--plugins/stor4nfv/roles/stor4nfv/tasks/stor4nfv.yml12
-rw-r--r--plugins/stor4nfv/roles/stor4nfv/templates/post-install.yml.j220
32 files changed, 845 insertions, 27 deletions
diff --git a/plugins/barometer/roles/grafana/files/install_grafana.sh b/plugins/barometer/roles/grafana/files/install_grafana.sh
index 0b9f4ec5..43d9a588 100644
--- a/plugins/barometer/roles/grafana/files/install_grafana.sh
+++ b/plugins/barometer/roles/grafana/files/install_grafana.sh
@@ -13,7 +13,7 @@
# See the License for the specific language governing permissions and
# limitations under the License.
-echo "deb https://packagecloud.io/grafana/stable/debian/ wheezy main" | tee /etc/apt/sources.list.d/grafana.list
+echo "deb https://packagecloud.io/grafana/stable/debian/ stretch main" | tee /etc/apt/sources.list.d/grafana.list
curl https://packagecloud.io/gpg.key | apt-key add -
diff --git a/plugins/odl_cluster/roles/setup-odl/files/odl_pkg.sh b/plugins/odl_cluster/roles/setup-odl/files/odl_pkg.sh
index 55639907..a99b1af5 100755
--- a/plugins/odl_cluster/roles/setup-odl/files/odl_pkg.sh
+++ b/plugins/odl_cluster/roles/setup-odl/files/odl_pkg.sh
@@ -1,3 +1,12 @@
+##############################################################################
+# 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
+##############################################################################
+
#!/bin/bash
rm -rf /home/networking
diff --git a/plugins/odl_cluster/roles/setup-odl/tasks/control-agents-1.yml b/plugins/odl_cluster/roles/setup-odl/tasks/control-agents-1.yml
index 13b4c571..ecc67d29 100755
--- a/plugins/odl_cluster/roles/setup-odl/tasks/control-agents-1.yml
+++ b/plugins/odl_cluster/roles/setup-odl/tasks/control-agents-1.yml
@@ -33,6 +33,8 @@
- name: Stop the Open vSwitch service and clear existing OVSDB
shell: >
service {{ service_ovs_name }} stop ;
+ sleep 3;
rm -rf /var/log/openvswitch/* ;
rm -rf /etc/openvswitch/conf.db ;
+ sleep 3;
service {{ service_ovs_name }} start ;
diff --git a/plugins/odl_cluster/roles/setup-odl/tasks/odl-pre.yml b/plugins/odl_cluster/roles/setup-odl/tasks/odl-pre.yml
index 64631663..21f0e86b 100755
--- a/plugins/odl_cluster/roles/setup-odl/tasks/odl-pre.yml
+++ b/plugins/odl_cluster/roles/setup-odl/tasks/odl-pre.yml
@@ -35,9 +35,8 @@
{% set _ = compu_l2_list.append(l2_mapping) %}
{% set _ = compu_l3_list.append(l3_mapping) %}
{% endfor %}
- {% set pub_l3_mapping = pub_l3_mapping[0].replace(pub_intf[0], compu_pub_intf) %}
{% set _ = compu_l2_list.append(pub_l2_mapping[0]) %}
- {% set _ = compu_l3_list.append(pub_l3_mapping) %}
+ {% set _ = compu_l3_list.append(pub_l3_mapping[0]) %}
public_bridge: "{{ pub_bridge[0] }}"
contr_public_intf: "{{ pub_intf[0] }}"
contr_l2_mappings: "{{ ','.join(contr_l2_list) }}"
diff --git a/plugins/odl_cluster/roles/setup-odl/vars/main.yml b/plugins/odl_cluster/roles/setup-odl/vars/main.yml
index 05ad98f5..c4723e9c 100755
--- a/plugins/odl_cluster/roles/setup-odl/vars/main.yml
+++ b/plugins/odl_cluster/roles/setup-odl/vars/main.yml
@@ -9,8 +9,10 @@
---
openstack_passwd_file: /etc/openstack_deploy/user_secrets.yml
-os_ver: 16.0.5
-os_name: pike
+# yamllint disable rule:line-length
+os_ver: "{{ lookup('yamlfile', '/opt/openstack-ansible/inventory/group_vars/all/all.yml key=openstack_release') }}"
+# yamllint enable rule:line-length
+os_name: queens
odl_username: admin
diff --git a/plugins/odl_sfc/roles/setup-odl-sfc/files/odl_pkg.sh b/plugins/odl_sfc/roles/setup-odl-sfc/files/odl_pkg.sh
index d93da3fd..69f5cd63 100755
--- a/plugins/odl_sfc/roles/setup-odl-sfc/files/odl_pkg.sh
+++ b/plugins/odl_sfc/roles/setup-odl-sfc/files/odl_pkg.sh
@@ -1,3 +1,12 @@
+##############################################################################
+# 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
+##############################################################################
+
#!/bin/bash
rm -rf /home/networking
diff --git a/plugins/odl_sfc/roles/setup-odl-sfc/tasks/control-tacker-1.yml b/plugins/odl_sfc/roles/setup-odl-sfc/tasks/control-tacker-1.yml
index 8fd1109f..f63edeaa 100644
--- a/plugins/odl_sfc/roles/setup-odl-sfc/tasks/control-tacker-1.yml
+++ b/plugins/odl_sfc/roles/setup-odl-sfc/tasks/control-tacker-1.yml
@@ -5,3 +5,9 @@
name: networking-sfc
virtualenv: /openstack/venvs/tacker-{{ os_ver }}
when: odl_sfc == "Enable"
+
+- name: stop the other two tacker servers
+ service:
+ name: tacker-server
+ state: stopped
+ when: inventory_hostname != groups['tacker_all'][0]
diff --git a/plugins/odl_sfc/roles/setup-odl-sfc/vars/main.yml b/plugins/odl_sfc/roles/setup-odl-sfc/vars/main.yml
index 014fc5b8..bc870277 100755
--- a/plugins/odl_sfc/roles/setup-odl-sfc/vars/main.yml
+++ b/plugins/odl_sfc/roles/setup-odl-sfc/vars/main.yml
@@ -9,8 +9,10 @@
---
openstack_passwd_file: /etc/openstack_deploy/user_secrets.yml
-os_ver: 16.0.5
-os_name: pike
+# yamllint disable rule:line-length
+os_ver: "{{ lookup('yamlfile', '/opt/openstack-ansible/inventory/group_vars/all/all.yml key=openstack_release') }}"
+# yamllint enable rule:line-length
+os_name: queens
odl_username: admin
odl_password: admin
diff --git a/plugins/onap/roles/tasks/Ubuntu.yml b/plugins/onap/roles/tasks/Ubuntu.yml
new file mode 100644
index 00000000..a51e5f17
--- /dev/null
+++ b/plugins/onap/roles/tasks/Ubuntu.yml
@@ -0,0 +1,117 @@
+---
+- name: download helm
+ get_url:
+ url: "{{ helm_url }}"
+ dest: /tmp/helm.tar.gz
+ when: inventory_hostname == groups['kube_master'][0]
+ run_once: true
+
+- name: prepare helm
+ shell:
+ tar -zxf /tmp/helm.tar.gz -C /tmp;
+ mv /tmp/linux-amd64/helm /usr/local/bin/helm
+ when: inventory_hostname == groups['kube_master'][0]
+ run_once: true
+
+- name: install tiller
+ shell: >
+ kubectl create serviceaccount --namespace kube-system tiller;
+ kubectl create clusterrolebinding tiller-cluster-rule
+ --clusterrole=cluster-admin
+ --serviceaccount=kube-system:tiller;
+ helm init --service-account tiller
+ when: inventory_hostname == groups['kube_master'][0]
+ run_once: true
+
+- name: git clone oom
+ git:
+ repo: "{{ oom_repo }}"
+ dest: "{{ oom_dest }}"
+ version: "{{ oom_version }}"
+ when: inventory_hostname == groups['kube_master'][0]
+ run_once: true
+
+- name: prepare local repo
+ shell:
+ nohup /bin/sh -c "helm serve &"
+ while true; do curl -s 127.0.0.1:8879 > /dev/null; if [ $? -eq 0 ]; then break; fi; done
+ helm repo add local http://127.0.0.1:8879
+ when: inventory_hostname == groups['kube_master'][0]
+ run_once: true
+
+- name: add helm plugin
+ shell:
+ cp -rf "{{ oom_dest }}/kubernetes/helm/plugins" ~/.helm/
+ when: inventory_hostname == groups['kube_master'][0]
+ run_once: true
+
+- name: make
+ shell:
+ make all
+ args:
+ chdir: "{{ oom_dest }}/kubernetes"
+ when: inventory_hostname == groups['kube_master'][0]
+
+- name: install nfs master
+ apt:
+ pkg: "nfs-kernel-server"
+ state: "present"
+ update_cache: "yes"
+ when: inventory_hostname == groups['kube_master'][0]
+
+- name: create /dockerdata-nfs
+ file:
+ path: /dockerdata-nfs
+ owner: nobody
+ group: nogroup
+ state: directory
+ mode: 0777
+ when: inventory_hostname == groups['kube_master'][0]
+
+- name: install nfs slave
+ apt:
+ pkg: "nfs-common"
+ state: "present"
+ update_cache: "yes"
+ when: inventory_hostname != groups['kube_master'][0]
+
+- name: create /dockerdata-nfs
+ file:
+ path: /dockerdata-nfs
+ state: directory
+ when: inventory_hostname != groups['kube_master'][0]
+
+- name: render /etc/exports
+ template:
+ src: exports.j2
+ dest: /etc/exports
+ when: inventory_hostname == groups['kube_master'][0]
+
+- name: restart nfs service
+ shell:
+ exportfs -a;
+ systemctl restart nfs-kernel-server
+ when: inventory_hostname == groups['kube_master'][0]
+
+- name: register master hostname
+ debug:
+ msg: "{{ ip_settings[groups['kube_master'][0]]['external']['ip'] }}"
+ register: master_ip
+
+- name:
+ shell:
+ mount {{ master_ip.msg }}:/dockerdata-nfs /dockerdata-nfs/
+ when: inventory_hostname != groups['kube_master'][0]
+
+# yamllint disable rule:line-length
+- name: add mount info
+ lineinfile:
+ path: /etc/fstab
+ line: "{{ master_ip.msg }}:/dockerdata-nfs /dockerdata-nfs nfs auto,nofail,noatime,nolock,intr,tcp,actimeo=1800 0 0"
+ when: inventory_hostname != groups['kube_master'][0]
+# yamllint enable rule:line-length
+
+- name: deploy onap
+ shell:
+ helm deploy dev local/onap --namespace onap
+ when: inventory_hostname == groups['kube_master'][0]
diff --git a/plugins/onap/roles/tasks/main.yml b/plugins/onap/roles/tasks/main.yml
new file mode 100644
index 00000000..c9e80427
--- /dev/null
+++ b/plugins/onap/roles/tasks/main.yml
@@ -0,0 +1,11 @@
+#############################################################################
+# Copyright (c) 2019 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: "{{ ansible_distribution }}.yml"
+ when: onap is defined and onap == "Enable"
diff --git a/plugins/onap/roles/templates/exports.j2 b/plugins/onap/roles/templates/exports.j2
new file mode 100644
index 00000000..8f5a3f65
--- /dev/null
+++ b/plugins/onap/roles/templates/exports.j2
@@ -0,0 +1 @@
+/dockerdata-nfs{% for host in groups.all %}{% if host != groups.kube_master[0] %} {{ ip_settings[host]['external']['ip'] }}(rw,sync,no_root_squash,no_subtree_check){% endif %}{% endfor %}
diff --git a/plugins/onap/roles/vars/main.yml b/plugins/onap/roles/vars/main.yml
new file mode 100644
index 00000000..83b591a5
--- /dev/null
+++ b/plugins/onap/roles/vars/main.yml
@@ -0,0 +1,13 @@
+#############################################################################
+# Copyright (c) 2019 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
+##############################################################################
+---
+helm_url: https://storage.googleapis.com/kubernetes-helm/helm-v2.9.1-linux-amd64.tar.gz
+oom_repo: https://gerrit.onap.org/r/oom
+oom_dest: /home/oom
+oom_version: casablanca
diff --git a/plugins/opencontrail/plugin.desc b/plugins/opencontrail/plugin.desc
new file mode 100644
index 00000000..82ccd5ee
--- /dev/null
+++ b/plugins/opencontrail/plugin.desc
@@ -0,0 +1,43 @@
+# Plugin for opencontrail service for Compass4nfv.
+# opencontrail provides a sdn network for k8s.
+#
+# More details can be found in the development document.
+# ##############################################################
+---
+plugin:
+ # plugin name,it is also as the switch to enable/disable plugin in scenario
+ # files
+ name: opencontrail
+
+ description: provide a sdn solution for k8s
+
+ maintainers:
+
+ # host os type: centos
+ os_version: centos
+
+ # true: this plugin is deployed separately on a new node
+ # false: this plugin is deployed on controller or compute node
+ independent_hosts: false
+
+ # artifact: package download url for this plugin
+ artifacts:
+ url:
+
+ # orchestration
+ # A plugin can have mutiple components, each component may need to be
+ # installed on different inventory or have its own configuration.
+ # due to Compass4nfv currently only supports ansible, so each component
+ # of the installation and configuration script need to be use ansible.
+ # cm : congfiguration management tool : only ansible support
+ # role: each component corresponds to ansible script that locates in the same
+ # directory as plugin.desc.
+ # phrase:
+ # inventory:
+ orchestration:
+ cm: ansible
+ roles:
+ - role: opencontrail
+ phrase: post_k8s
+ inventory:
+ - localhost
diff --git a/plugins/opencontrail/roles/install-k8s-opencontrail/files/bms-instances.yaml b/plugins/opencontrail/roles/install-k8s-opencontrail/files/bms-instances.yaml
new file mode 100644
index 00000000..7fb70374
--- /dev/null
+++ b/plugins/opencontrail/roles/install-k8s-opencontrail/files/bms-instances.yaml
@@ -0,0 +1,32 @@
+---
+provider_config:
+ bms:
+ ssh_pwd: root
+ ssh_user: root
+ ssh_public_key: /root/.ssh/id_rsa.pub
+ ssh_private_key: /root/.ssh/id_rsa
+ domainsuffix: local
+instances:
+ bms1:
+ provider: bms
+ roles:
+ config_database:
+ config:
+ control:
+ analytics_database:
+ analytics:
+ webui:
+ k8s_master:
+ kubemanager:
+ ip: 192.16.1.211
+ bms2:
+ provider: bms
+ roles:
+ k8s_node:
+ vrouter:
+ ip: 192.16.1.212
+
+contrail_configuration:
+ CONTAINER_REGISTRY: opencontrailnightly
+ CONTRAIL_VERSION: latest
+ KUBERNETES_CLUSTER_PROJECT: {}
diff --git a/plugins/opencontrail/roles/install-k8s-opencontrail/files/kvm-instances.yaml b/plugins/opencontrail/roles/install-k8s-opencontrail/files/kvm-instances.yaml
new file mode 100644
index 00000000..b2f9e6dd
--- /dev/null
+++ b/plugins/opencontrail/roles/install-k8s-opencontrail/files/kvm-instances.yaml
@@ -0,0 +1,32 @@
+---
+provider_config:
+ kvm:
+ ssh_pwd: root
+ ssh_user: root
+ ssh_public_key: /root/.ssh/id_rsa.pub
+ ssh_private_key: /root/.ssh/id_rsa
+ domainsuffix: local
+instances:
+ kvm1:
+ provider: kvm
+ roles:
+ config_database:
+ config:
+ control:
+ analytics_database:
+ analytics:
+ webui:
+ k8s_master:
+ kubemanager:
+ ip: 10.1.0.50
+ kvm2:
+ provider: kvm
+ roles:
+ k8s_node:
+ vrouter:
+ ip: 10.1.0.51
+
+contrail_configuration:
+ CONTAINER_REGISTRY: opencontrailnightly
+ CONTRAIL_VERSION: latest
+ KUBERNETES_CLUSTER_PROJECT: {}
diff --git a/plugins/opencontrail/roles/install-k8s-opencontrail/files/mirrors.repo b/plugins/opencontrail/roles/install-k8s-opencontrail/files/mirrors.repo
new file mode 100644
index 00000000..4900db69
--- /dev/null
+++ b/plugins/opencontrail/roles/install-k8s-opencontrail/files/mirrors.repo
@@ -0,0 +1,32 @@
+[base]
+name=CentOS-$releasever - Base
+mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=os&infra=$infra
+#baseurl=http://mirror.centos.org/centos/$releasever/os/$basearch/
+gpgcheck=1
+gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7
+
+#released updates
+[updates]
+name=CentOS-$releasever - Updates
+mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=updates&infra=$infra
+#baseurl=http://mirror.centos.org/centos/$releasever/updates/$basearch/
+gpgcheck=1
+gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7
+
+#additional packages that may be useful
+[extras]
+name=CentOS-$releasever - Extras
+mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=extras&infra=$infra
+#baseurl=http://mirror.centos.org/centos/$releasever/extras/$basearch/
+gpgcheck=1
+gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7
+
+#additional packages that extend functionality of existing packages
+[centosplus]
+name=CentOS-$releasever - Plus
+mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=centosplus&infra=$infra
+#baseurl=http://mirror.centos.org/centos/$releasever/centosplus/$basearch/
+gpgcheck=1
+enabled=0
+gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7
+
diff --git a/plugins/opencontrail/roles/install-k8s-opencontrail/files/mirrors_aarch64.repo b/plugins/opencontrail/roles/install-k8s-opencontrail/files/mirrors_aarch64.repo
new file mode 100644
index 00000000..1d622d3c
--- /dev/null
+++ b/plugins/opencontrail/roles/install-k8s-opencontrail/files/mirrors_aarch64.repo
@@ -0,0 +1,22 @@
+[base]
+name=CentOS-$releasever - Base
+baseurl=http://mirror.centos.org/altarch/$releasever/os/$basearch/
+gpgcheck=1
+gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7
+ file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7-aarch64
+
+#released updates
+[updates]
+name=CentOS-$releasever - Updates
+baseurl=http://mirror.centos.org/altarch/$releasever/updates/$basearch/
+gpgcheck=1
+gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7
+ file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7-aarch64
+
+#additional packages that may be useful
+[extras]
+name=CentOS-$releasever - Extras
+baseurl=http://mirror.centos.org/altarch/$releasever/extras/$basearch/
+gpgcheck=1
+gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7
+ file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7-aarch64
diff --git a/plugins/opencontrail/roles/install-k8s-opencontrail/tasks/main.yml b/plugins/opencontrail/roles/install-k8s-opencontrail/tasks/main.yml
new file mode 100644
index 00000000..712ebfa7
--- /dev/null
+++ b/plugins/opencontrail/roles/install-k8s-opencontrail/tasks/main.yml
@@ -0,0 +1,92 @@
+##############################################################################
+# 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
+##############################################################################
+---
+- name: clean local repo conf
+ file:
+ path: /etc/yum.repos.d
+ state: absent
+ run_once: "True"
+ when: ansible_os_family == 'RedHat'
+
+- name: create local repo conf dir
+ file:
+ path: /etc/yum.repos.d
+ state: directory
+ run_once: "True"
+ when: ansible_os_family == 'RedHat'
+
+- name: configure local mirror repo
+ copy:
+ src: "{{ item }}"
+ dest: /etc/yum.repos.d/mirrors.repo
+ with_first_found:
+ - mirrors_{{ ansible_architecture }}.repo
+ - mirrors.repo
+ run_once: "True"
+ when: ansible_os_family == 'RedHat'
+
+- name: clean local pip conf to use official pip repo
+ file:
+ path: /root/.pip/pip.conf
+ state: absent
+ run_once: "True"
+
+- name: install dependency for ansible update
+ yum:
+ name: "{{ item }}"
+ state: latest
+ with_items:
+ - git
+ - libffi-devel
+ - openssl-devel
+ - python-devel
+ run_once: "True"
+ when: ansible_os_family == 'RedHat'
+
+- name: update python packages
+ pip:
+ name: "{{ item }}"
+ state: latest
+ with_items:
+ - netaddr
+ - jinja2
+
+- name: git clone contrail-ansible-deployer repo
+ shell: |
+ rm -rf /opt/contrail-ansible-deployer
+ git clone https://github.com/Juniper/contrail-ansible-deployer.git \
+ /opt/contrail-ansible-deployer
+
+- name: copy overrided variables
+ copy:
+ src: "{{ item }}"
+ dest: /opt/contrail-ansible-deployer/config/instances.yaml
+ with_first_found:
+ - kvm-instances.yaml
+
+- name: do not restart network
+ shell: |
+ cd /opt/contrail-ansible-deployer
+ sed -i '9, 13d' playbooks/roles/configure_instances/tasks/RedHat.yml
+
+- name: run config playbook
+ shell: |
+ cd /opt/contrail-ansible-deployer
+ ansible-playbook -i inventory/ playbooks/configure_instances.yml \
+ -b -v 2>&1 | tee config-contrail.log
+ tags:
+ - ansible
+
+- name: run install playbook
+ shell: |
+ cd /opt/contrail-ansible-deployer
+ ansible-playbook -e orchestrator=kubernetes -i inventory/ playbooks/install_contrail.yml \
+ -b -v 2>&1 | tee install-contrail.log
+ tags:
+ - ansible
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..a081c0bd
--- /dev/null
+++ b/plugins/stor4nfv/roles/os-stor4nfv/files/os_configure_vars.sh
@@ -0,0 +1,28 @@
+#!/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
+
+# etcd_host
+sed -i 's/^etcd_host.*/etcd_host: '"$2"'/g' group_vars/osdsdb.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..dbaa8d6b
--- /dev/null
+++ b/plugins/stor4nfv/roles/os-stor4nfv/tasks/main.yml
@@ -0,0 +1,13 @@
+# #############################################################################
+# 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: stor4nfv.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..fd9756a4
--- /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 }} {{ internal_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..d441f420
--- /dev/null
+++ b/plugins/stor4nfv/roles/os-stor4nfv/tasks/post-install.yml
@@ -0,0 +1,143 @@
+# #############################################################################
+# 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
+ register: opensds_exists
+ when:
+ - inventory_hostname in groups['ceph_adm']
+
+- 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:
+ - inventory_hostname in groups['ceph_adm']
+
+- name: modify osdsdock endpoint
+ remote_user: root
+ shell:
+ _raw_params: |
+ function _modify_osdsdock_endpoint {
+ local ip_addr=$((lxc-info -n $(lxc-ls --line | grep ceph-mon) -iH)|grep "10.1")
+ if [ ! -z "${ip_addr}" ]; then
+ sed -i 's/api_endpoint = localhost:50050/api_endpoint = '"$ip_addr"':50050/g' \
+ /etc/opensds/opensds.conf
+ fi
+ }
+ _modify_osdsdock_endpoint
+ args:
+ executable: /bin/bash
+ become: true
+ when:
+ - inventory_hostname in groups['ceph_adm']
+
+- 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:
+ - inventory_hostname in groups['ceph_adm']
+
+- name: copy osdsdock executable to ceph-mon container
+ remote_user: root
+ shell: |
+ cd /opt;
+ tar -C opensds-hotpot-linux-amd64 -c . | lxc-attach -n \
+ $(lxc-ls --line | grep ceph-mon) -- /bin/sh -c "tar -C /opt/ -vx; chmod 1777 /opt;"
+ when:
+ - inventory_hostname in groups['ceph_adm']
+
+- name: copy opensds conf files to ceph-mon container
+ remote_user: root
+ shell: |
+ cd /etc;
+ tar -C opensds -c . | lxc-attach -n \
+ $(lxc-ls --line | grep ceph-mon) -- /bin/sh -c "tar -C /tmp/ -vx; chmod 1777 /tmp;"
+ when:
+ - inventory_hostname in groups['ceph_adm']
+
+- name: ensure opensds driver exists
+ stat:
+ path: /tmp/driver
+ register: opensds_driver_exists
+ when:
+ - inventory_hostname in groups['ceph-mon']
+ - groups['ceph_adm'][0] in inventory_hostname
+
+- name: copy opensds conf
+ remote_user: root
+ shell: |
+ mkdir -p /etc/opensds;
+ cp /tmp/opensds.conf /etc/opensds;
+ cp /tmp/policy.json /etc/opensds;
+ cp -r /tmp/driver /etc/opensds;
+ when:
+ - inventory_hostname in groups['ceph-mon']
+ - groups['ceph_adm'][0] in inventory_hostname
+
+- name: create ceph pool
+ remote_user: root
+ shell: |
+ ceph osd pool create rbd 24 && ceph osd pool set rbd size 1
+ when:
+ - inventory_hostname in groups['ceph-mon']
+ - groups['ceph_adm'][0] in inventory_hostname
+
+- name: ensure osdsdock exists
+ stat:
+ path: /opt/bin/osdsdock
+ register: opensds_exists
+ when:
+ - inventory_hostname in groups['ceph-mon']
+ - groups['ceph_adm'][0] in inventory_hostname
+
+- name: start osdsdock daemon
+ remote_user: root
+ shell: |
+ cd /opt && ./bin/osdsdock -daemon
+ when:
+ - inventory_hostname in groups['ceph-mon']
+ - groups['ceph_adm'][0] in inventory_hostname
+
+- name: ensure osdsctl exists
+ stat:
+ path: /opt/opensds-hotpot-linux-amd64/bin/osdsctl
+ register: osdsctl_exists
+ when:
+ - inventory_hostname in groups['ceph_adm']
+
+- 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"}'
+ when:
+ - inventory_hostname in groups['ceph_adm']
+ ignore_errors: "true"
diff --git a/plugins/stor4nfv/roles/os-stor4nfv/tasks/stor4nfv.yml b/plugins/stor4nfv/roles/os-stor4nfv/tasks/stor4nfv.yml
new file mode 100644
index 00000000..05ada67a
--- /dev/null
+++ b/plugins/stor4nfv/roles/os-stor4nfv/tasks/stor4nfv.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
+ when:
+ - inventory_hostname in groups['ceph_adm']
+
+- include: post-install.yml
diff --git a/plugins/stor4nfv/roles/stor4nfv/files/configure_vars.sh b/plugins/stor4nfv/roles/stor4nfv/files/configure_vars.sh
index a4fe44ea..89432135 100644
--- a/plugins/stor4nfv/roles/stor4nfv/files/configure_vars.sh
+++ b/plugins/stor4nfv/roles/stor4nfv/files/configure_vars.sh
@@ -10,10 +10,6 @@
cd $HOME/gopath/src/github.com/stor4nfv/stor4nfv/ci/ansible
-sed -i 's/^opensds_release.*/opensds_release: v0.1.5/g' group_vars/common.yml
-
-sed -i 's/^nbp_release.*/nbp_release: v0.1.0/g' group_vars/common.yml
-
sed -i 's/^container_enabled.*/container_enabled: false/g' group_vars/common.yml
sed -i 's/^nbp_plugin_type.*/nbp_plugin_type: csi/g' group_vars/common.yml
@@ -34,7 +30,9 @@ sed -i 's|^cluster_network.*|cluster_network: '"$2"'|g' group_vars/ceph/all.yml
sed -i 's/^monitor_interface.*/monitor_interface: eth0/g' group_vars/ceph/all.yml
-sed -i 's/^devices:.*/devices: [\/dev\/loop0, \/dev\/loop1, \/dev\/loop2]/g' group_vars/ceph/osds.yml
+sed -i 's/^devices:.*/devices: [\/dev\/loop0, \/dev\/loop1, \/dev\/loop2]/g' group_vars/ceph/all.yml
+
+sed -i '/dev\/sda/s/^/#/g' group_vars/ceph/all.yml
sed -i 's/^osd_scenario.*/osd_scenario: collocated/g' group_vars/ceph/osds.yml
@@ -45,3 +43,18 @@ sed -i 's/^etcd_host.*/etcd_host: 127.0.0.1/g' group_vars/osdsdb.yml
sed -i 's/^etcd_port.*/etcd_port: 62379/g' group_vars/osdsdb.yml
sed -i 's/^etcd_peer_port.*/etcd_peer_port: 62380/g' group_vars/osdsdb.yml
+
+sed -i 's/^opensds_auth_strategy.*/opensds_auth_strategy: noauth/g' group_vars/auth.yml
+
+sed -i '/check_ansible_version/a \ ignore_errors: yes\' roles/common/tasks/main.yml
+
+sed -i '/- dashboard-installer/s/^/#/g' site.yml
+
+# comment csi create pods in Stor4nfv
+sed -i '/kubectl create/s/^/#/g' roles/nbp-installer/scenarios/csi.yml
+
+sed -i 's/^opensds_endpoint.*/opensds_endpoint: http:\/\/'"$1"':50040/g' group_vars/common.yml
+
+sed -i '/and service_ceph_osd_status.rc == 0/s/^/#/g' roles/osdsdock/scenarios/ceph.yml
+sed -i '/and service_ceph_osd_status.rc == 0/a \ when: service_ceph_mon_status.rc == 0\' \
+ roles/osdsdock/scenarios/ceph.yml
diff --git a/plugins/stor4nfv/roles/stor4nfv/files/install_ansible.sh b/plugins/stor4nfv/roles/stor4nfv/files/install_ansible.sh
index b4a3a30a..d921d4e2 100644
--- a/plugins/stor4nfv/roles/stor4nfv/files/install_ansible.sh
+++ b/plugins/stor4nfv/roles/stor4nfv/files/install_ansible.sh
@@ -8,7 +8,7 @@
# http://www.apache.org/licenses/LICENSE-2.0
# #############################################################################
-add-apt-repository ppa:ansible/ansible
+add-apt-repository ppa:ansible/ansible-2.4
apt-get update
apt-get install -y ansible
diff --git a/plugins/stor4nfv/roles/stor4nfv/tasks/main.yml b/plugins/stor4nfv/roles/stor4nfv/tasks/main.yml
index 353282f9..dbaa8d6b 100644
--- a/plugins/stor4nfv/roles/stor4nfv/tasks/main.yml
+++ b/plugins/stor4nfv/roles/stor4nfv/tasks/main.yml
@@ -7,7 +7,7 @@
# http://www.apache.org/licenses/LICENSE-2.0
# #############################################################################
---
-- include: opensds.yml
+- include: stor4nfv.yml
when:
- ansible_distribution == 'Ubuntu'
- stor4nfv is defined and stor4nfv == "Enable"
diff --git a/plugins/stor4nfv/roles/stor4nfv/tasks/opensds.yml b/plugins/stor4nfv/roles/stor4nfv/tasks/opensds.yml
index 7866e808..e84ce0aa 100644
--- a/plugins/stor4nfv/roles/stor4nfv/tasks/opensds.yml
+++ b/plugins/stor4nfv/roles/stor4nfv/tasks/opensds.yml
@@ -15,6 +15,7 @@
with_items:
- make
- gcc
+ - gawk
- name: copy install_ansible script
remote_user: root
@@ -26,12 +27,6 @@
- name: install ansible
command: su -s /bin/sh -c "/opt/install_ansible.sh"
-- name: install ceph-ansible code
- remote_user: root
- shell: |
- cd /opt;
- git clone https://github.com/ceph/ceph-ansible.git
-
- name: fetch stor4nfv source code
remote_user: root
shell: |
@@ -75,10 +70,3 @@
shell: |
cd $HOME/gopath/src/github.com/stor4nfv/stor4nfv/ci/ansible;
ansible-playbook site.yml -i local.hosts | tee /var/log/stor4nfv.log
- register: stor4nfv_result
-
-- name: export opensds endpoint
- remote_user: root
- shell: |
- export OPENSDS_ENDPOINT=http://127.0.0.1:50040
- when: stor4nfv_result|succeeded
diff --git a/plugins/stor4nfv/roles/stor4nfv/tasks/post-install.yml b/plugins/stor4nfv/roles/stor4nfv/tasks/post-install.yml
new file mode 100644
index 00000000..501d3baa
--- /dev/null
+++ b/plugins/stor4nfv/roles/stor4nfv/tasks/post-install.yml
@@ -0,0 +1,69 @@
+# #############################################################################
+# 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: define image architecture
+ set_fact:
+ imgarch: "{{ 'arm64' if ansible_architecture == 'aarch64' else 'amd64' }}"
+
+- name: ensure ceph-ansible dir exists
+ stat:
+ path: /opt/ceph-ansible
+ ignore_errors: "true"
+ register: ceph_ansible_exists
+
+- name: copy post-install.yml to /opt/ceph-ansible
+ remote_user: root
+ template:
+ src: post-install.yml.j2
+ dest: /opt/ceph-ansible/post-install.yml
+ when:
+ - ceph_ansible_exists.stat.exists is defined and ceph_ansible_exists.stat.exists
+
+- name: run post-install playbook
+ shell: ansible-playbook post-install.yml -i ceph.hosts
+ become: true
+ args:
+ chdir: /opt/ceph-ansible
+ ignore_errors: "true"
+ when:
+ - ceph_ansible_exists.stat.exists is defined and ceph_ansible_exists.stat.exists
+
+- name: remove post-install.yml
+ file:
+ path: /opt/ceph-ansible/post-install.yml
+ state: absent
+ when:
+ - ceph_ansible_exists.stat.exists is defined and ceph_ansible_exists.stat.exists
+
+- name: ensure osdsctl exists
+ stat:
+ path: /opt/opensds-hotpot-linux-{{ imgarch }}/bin/osdsctl
+ ignore_errors: "true"
+ register: osdsctl_exists
+
+- name: ensure opensds csi directory exists
+ stat:
+ path: /opt/opensds-sushi-linux-{{ imgarch }}
+ ignore_errors: "true"
+ register: csi_dir_exists
+
+- name: create opensds default profile, create csi pods
+ remote_user: root
+ shell: |
+ cp /opt/opensds-hotpot-linux-{{ imgarch }}/bin/osdsctl /usr/local/bin;
+ export OPENSDS_ENDPOINT=http://{{ public_vip.ip }}:50040;
+ export OPENSDS_AUTH_STRATEGY=noauth;
+ osdsctl profile create '{"name": "default", "description": "default policy"}';
+ cd /opt/opensds-sushi-linux-{{ imgarch }};
+ kubectl create -f csi/deploy/kubernetes
+ ignore_errors: "true"
+ when:
+ - osdsctl_exists.stat.exists is defined and osdsctl_exists.stat.exists
+ - csi_dir_exists.stat.exists is defined and csi_dir_exists.stat.exists
diff --git a/plugins/stor4nfv/roles/stor4nfv/tasks/stor4nfv.yml b/plugins/stor4nfv/roles/stor4nfv/tasks/stor4nfv.yml
new file mode 100644
index 00000000..57bae793
--- /dev/null
+++ b/plugins/stor4nfv/roles/stor4nfv/tasks/stor4nfv.yml
@@ -0,0 +1,12 @@
+# #############################################################################
+# 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
diff --git a/plugins/stor4nfv/roles/stor4nfv/templates/post-install.yml.j2 b/plugins/stor4nfv/roles/stor4nfv/templates/post-install.yml.j2
new file mode 100644
index 00000000..662abc34
--- /dev/null
+++ b/plugins/stor4nfv/roles/stor4nfv/templates/post-install.yml.j2
@@ -0,0 +1,20 @@
+# #############################################################################
+# 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
+# #############################################################################
+---
+
+- hosts:
+ - mons
+ - osds
+ - mgrs
+
+ tasks:
+ - name: run modprobe rbd
+ remote_user: root
+ command: modprobe rbd
+ ignore_errors: "true"