diff options
-rw-r--r-- | deploy/opera_adapter.py | 126 | ||||
-rw-r--r-- | plugins/stor4nfv/roles/stor4nfv/files/configure_vars.sh | 9 | ||||
-rw-r--r-- | plugins/stor4nfv/roles/stor4nfv/tasks/main.yml | 2 | ||||
-rw-r--r-- | plugins/stor4nfv/roles/stor4nfv/tasks/post-install.yml | 13 |
4 files changed, 21 insertions, 129 deletions
diff --git a/deploy/opera_adapter.py b/deploy/opera_adapter.py deleted file mode 100644 index fbf1b662..00000000 --- a/deploy/opera_adapter.py +++ /dev/null @@ -1,126 +0,0 @@ -############################################################################## -# Copyright (c) 2017 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 -############################################################################## - -import os -import sys -import yaml -import re -import subprocess -import traceback - - -def load_file(file): - with open(file) as fd: - try: - return yaml.safe_load(fd) - except: - traceback.print_exc() - return None - - -def dump_file(data, file): - with open(file, 'w') as fd: - try: - return yaml.dump(data, fd, default_flow_style=False) - except: - traceback.print_exc() - return None - - -def sync_openo_config(openo_config, dha, network): - """sync opera/conf/open-o.yml according to DHA and Network file""" - deploy_opts = dha.get('deploy_options') - openo_net = network.get('openo_net') - if deploy_opts['orchestrator']['type'] != 'open-o': - print("orchestrator is not openo") - sys.exit(1) - - openo_config['openo_version'] = deploy_opts['orchestrator']['version'] - openo_config['vnf_type'] = deploy_opts['vnf']['type'] - openo_config['openo_net']['openo_ip'] = openo_net['openo_ip'] - - -def sync_admin_openrc(network, admin_openrc_file): - ssh_opts = "-o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no" - vip = network['public_vip']['ip'] - cmd = 'sshpass -p"root" ssh %s root@%s "cat /opt/admin-openrc.sh"' \ - % (ssh_opts, vip) - ssh = subprocess.Popen(cmd, shell=True, stdout=subprocess.PIPE) - if ssh.stdout is None: - print("fetch openrc fail") - sys.exit(1) - - rcdata = ssh.stdout.readlines() - with open(admin_openrc_file, 'w') as fd: - ip = re.compile("\d{1,3}.\d{1,3}.\d{1,3}.\d{1,3}") - for i in rcdata: - if 'OS_AUTH_URL' in i: - i = re.sub(ip, vip, i) - fd.write(i) - - fd.write('export OS_REGION_NAME=RegionOne') - - -if __name__ == "__main__": - if len(sys.argv) != 3: - print("parameter wrong%d %s" % (len(sys.argv), sys.argv)) - sys.exit(1) - - _, dha_file, network_file = sys.argv - compass_dir = os.getenv('COMPASS_DIR') - - if not compass_dir: - print("env var COMPASS_DIR doesn't exist") - sys.exit(1) - - if not os.path.exists(dha_file): - print("DHA file doesn't exist") - sys.exit(1) - if not os.path.exists(network_file): - print("NETWORK file doesn't exist") - sys.exit(1) - - dha = load_file(dha_file) - network = load_file(network_file) - - if not dha: - print('format error in DHA: %s' % dha_file) - sys.exit(1) - if not network: - print('format error in NETWORK: %s' % network_file) - sys.exit(1) - - work_dir = os.path.join(compass_dir, 'work') - opera_dir = os.path.join(work_dir, 'opera') - conf_dir = os.path.join(opera_dir, 'conf') - openo_config_file = os.path.join(conf_dir, 'open-o.yml') - admin_openrc_file = os.path.join(conf_dir, 'admin-openrc.sh') - - p1 = subprocess.Popen( - "git clone https://gerrit.opnfv.org/gerrit/opera", - cwd=work_dir, shell=True) - p1.communicate() - - if not os.path.exists(openo_config_file): - print('file opera/conf/open-o.yml not found') - sys.exit(1) - if not os.path.exists(admin_openrc_file): - print('file opera/conf/admin-openrc.sh not found') - sys.exit(1) - - openo_config = load_file(openo_config_file) - sync_openo_config(openo_config, dha, network) - dump_file(openo_config, openo_config_file) - sync_admin_openrc(network, admin_openrc_file) - - p2 = subprocess.Popen("./opera_launch.sh", cwd=opera_dir, shell=True) - p2.communicate() - if p2.returncode != 0: - print('./opera_launch.sh fail') - sys.exit(1) diff --git a/plugins/stor4nfv/roles/stor4nfv/files/configure_vars.sh b/plugins/stor4nfv/roles/stor4nfv/files/configure_vars.sh index 112d9c84..89432135 100644 --- a/plugins/stor4nfv/roles/stor4nfv/files/configure_vars.sh +++ b/plugins/stor4nfv/roles/stor4nfv/files/configure_vars.sh @@ -49,3 +49,12 @@ sed -i 's/^opensds_auth_strategy.*/opensds_auth_strategy: noauth/g' group_vars/a 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/tasks/main.yml b/plugins/stor4nfv/roles/stor4nfv/tasks/main.yml index 7bc8ec06..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: stor4nfv +- include: stor4nfv.yml when: - ansible_distribution == 'Ubuntu' - stor4nfv is defined and stor4nfv == "Enable" diff --git a/plugins/stor4nfv/roles/stor4nfv/tasks/post-install.yml b/plugins/stor4nfv/roles/stor4nfv/tasks/post-install.yml index 017f377e..501d3baa 100644 --- a/plugins/stor4nfv/roles/stor4nfv/tasks/post-install.yml +++ b/plugins/stor4nfv/roles/stor4nfv/tasks/post-install.yml @@ -48,13 +48,22 @@ ignore_errors: "true" register: osdsctl_exists -- name: create opensds default profile +- 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"}' + 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 |