summaryrefslogtreecommitdiffstats
path: root/tools
diff options
context:
space:
mode:
authorMichal Zegan <m.zegan@samsung.com>2019-08-22 14:53:46 +0200
committerMichal Zegan <m.zegan@samsung.com>2019-09-04 11:24:52 +0200
commit10fef61184e957c6397f2354666698f68a0926dd (patch)
tree9dfa9facb8b933bf45b19af86eeac40eeab965e3 /tools
parent8944150190575aaa2925b68fad0678719d2baffe (diff)
Add onap installation role
This role generates offline installer parameters and inventory, downloads offline installer sw package, and initiates onap installation, waiting for it to finish. Change-Id: I5c79d9732b8d77f57278f5009f4e5089377fc2cf Issue-ID: OOM-2042 Signed-off-by: Michal Zegan <m.zegan@samsung.com>
Diffstat (limited to 'tools')
-rw-r--r--tools/cicdansible/roles/install/defaults/main.yml3
-rw-r--r--tools/cicdansible/roles/install/tasks/download_resources.yml6
-rw-r--r--tools/cicdansible/roles/install/tasks/install.yml48
-rw-r--r--tools/cicdansible/roles/install/tasks/main.yml1
-rw-r--r--tools/cicdansible/roles/install/templates/inventory.yml.j236
5 files changed, 94 insertions, 0 deletions
diff --git a/tools/cicdansible/roles/install/defaults/main.yml b/tools/cicdansible/roles/install/defaults/main.yml
new file mode 100644
index 00000000..b21e6323
--- /dev/null
+++ b/tools/cicdansible/roles/install/defaults/main.yml
@@ -0,0 +1,3 @@
+---
+installer_deploy_path: "{{ ansible_user_dir }}/installer"
+install_timeout: 10600
diff --git a/tools/cicdansible/roles/install/tasks/download_resources.yml b/tools/cicdansible/roles/install/tasks/download_resources.yml
new file mode 100644
index 00000000..7f042596
--- /dev/null
+++ b/tools/cicdansible/roles/install/tasks/download_resources.yml
@@ -0,0 +1,6 @@
+#Download resources/scripts to controller.
+- name: "Download software resources"
+ fetch:
+ src: "{{ resources_dir }}/{{ resources_sw_filename }}"
+ flat: yes
+ dest: "resources/"
diff --git a/tools/cicdansible/roles/install/tasks/install.yml b/tools/cicdansible/roles/install/tasks/install.yml
new file mode 100644
index 00000000..35df7976
--- /dev/null
+++ b/tools/cicdansible/roles/install/tasks/install.yml
@@ -0,0 +1,48 @@
+#Onap installation tasks
+#Copy ssh private key used for resource server access
+- name: "Copy resource server access key"
+ copy:
+ src: "{{ hostvars[groups['resources'][0]].ansible_private_key_file }}"
+ dest: "{{ ansible_user_dir }}/.ssh/res.pem"
+ mode: 0600
+#Unarchive resources.
+- name: "Ensure {{ installer_deploy_path }} directory exists"
+ file:
+ path: "{{ installer_deploy_path }}"
+ state: directory
+- name: "Extract sw resources"
+ unarchive:
+ src: "resources/{{ hostvars[groups['resources'][0]].resources_sw_filename }}"
+ dest: "{{ installer_deploy_path }}"
+#Generate ansible inventory and extra vars.
+- name: "Generate ansible inventory for installer"
+ template:
+ src: inventory.yml.j2
+ dest: "{{ installer_deploy_path }}/ansible/inventory/hosts.yml"
+- name: "generate application specific config overrides"
+ copy:
+ content: "{{ application_config | b64decode }}"
+ dest: "{{ installer_deploy_path }}/ansible/application/application_overrides.yml"
+# This generates a file with locations of resource files in resource host, we
+# do it only to allow manually running offline installer without
+# typing them by hand. We cannot use
+# inventory template because it will be overridden
+# by application_configuration.yml.
+- name: Generate resource location file
+ copy:
+ content: |
+ resources_dir: {{ resources_dir }}
+ resources_filename: {{ resources_filename }}
+ aux_resources_filename: {{ aux_resources_filename }}
+ app_data_path: /opt/onap/resources
+ dest: "{{ installer_deploy_path }}/ansible/application/resources.yml"
+#Run script.
+- name: "Execute installation"
+ shell:
+ ./run_playbook.sh
+ -e @application/application_configuration.yml -e @application/application_overrides.yml
+ -e @application/resources.yml -i inventory/hosts.yml site.yml
+ args:
+ chdir: "{{ installer_deploy_path }}/ansible"
+ async: "{{ install_timeout }}"
+ when: install_app
diff --git a/tools/cicdansible/roles/install/tasks/main.yml b/tools/cicdansible/roles/install/tasks/main.yml
new file mode 100644
index 00000000..04ac4c3d
--- /dev/null
+++ b/tools/cicdansible/roles/install/tasks/main.yml
@@ -0,0 +1 @@
+- include_tasks: "{{ mode }}.yml"
diff --git a/tools/cicdansible/roles/install/templates/inventory.yml.j2 b/tools/cicdansible/roles/install/templates/inventory.yml.j2
new file mode 100644
index 00000000..36bf3bd3
--- /dev/null
+++ b/tools/cicdansible/roles/install/templates/inventory.yml.j2
@@ -0,0 +1,36 @@
+all:
+ vars:
+ ansible_ssh_private_key_file: /root/.ssh/id_rsa
+ ansible_ssh_common_args: "-o StrictHostKeyChecking=no"
+ children:
+ resources:
+ vars:
+ ansible_ssh_private_key_file: /root/.ssh/res.pem
+ ansible_user: "{{ hostvars[groups['resources'][0]].ansible_user }}"
+ ansible_become: "{{ hostvars[groups['resources'][0]].ansible_become }}"
+ hosts:
+ resource_host:
+ ansible_host: {{ resource_host }}
+ infrastructure:
+ hosts:
+ infra_host:
+ ansible_host: infra
+ cluster_ip: {{ hostvars['infra'].ansible_default_ipv4.address }}
+ kubernetes:
+ children:
+ kubernetes-node:
+ hosts:
+{% for h in groups['nodes'] %}
+ {{ h }}:
+ ansible_host: "{{ hostvars[h].ansible_default_ipv4.address }}"
+ cluster_ip: "{{ hostvars[h].ansible_default_ipv4.address }}"
+{% endfor %}
+ kubernetes-control-plane:
+ hosts:
+ infra_host
+ kubernetes-etcd:
+ hosts:
+ infra_host
+ nfs-server:
+ hosts:
+ node0