diff options
Diffstat (limited to 'xci/installer/osh/playbooks/roles')
9 files changed, 439 insertions, 0 deletions
diff --git a/xci/installer/osh/playbooks/roles/install-osh-mini/tasks/main.yml b/xci/installer/osh/playbooks/roles/install-osh-mini/tasks/main.yml new file mode 100644 index 00000000..e3fa2ddf --- /dev/null +++ b/xci/installer/osh/playbooks/roles/install-osh-mini/tasks/main.yml @@ -0,0 +1,118 @@ +--- +- set_fact: + container_distro_name: "opensuse" + container_distro_version: "15" + cacheable: yes + when: osh_distro == 'opensuse' + tags: + - skip_ansible_lint + +- set_fact: + container_distro_name: "ubuntu" + container_distro_version: "xenial" + cacheable: yes + when: osh_distro == 'ubuntu' + tags: + - skip_ansible_lint + +- name: Setup Clients + command: ./tools/deployment/common/setup-client.sh + changed_when: false + args: + chdir: /root/repos/openstack-helm + +- name: Deploy the ingress controller + command: ./tools/deployment/component/common/ingress.sh + changed_when: false + args: + chdir: /root/repos/openstack-helm + +- name: Deploy MariaDB + command: ./tools/deployment/component/common/mariadb.sh + changed_when: false + args: + chdir: /root/repos/openstack-helm + +- name: Deploy memcached + command: ./tools/deployment/component/common/memcached.sh + changed_when: false + args: + chdir: /root/repos/openstack-helm + +- name: Deploy RabbitMQ + command: ./tools/deployment/component/common/rabbitmq.sh + changed_when: false + args: + chdir: /root/repos/openstack-helm + +- name: Update nfs-provisioner helm-chart + shell: helm dependency update nfs-provisioner + args: + chdir: /root/repos/openstack-helm-infra + executable: /bin/bash + tags: + - skip_ansible_lint + +- name: Deploy nfs-provisioner + command: ./tools/deployment/component/nfs-provisioner/nfs-provisioner.sh + changed_when: false + args: + chdir: /root/repos/openstack-helm + +- name: Deploy Keystone + command: ./tools/deployment/component/keystone/keystone.sh + changed_when: false + args: + chdir: /root/repos/openstack-helm + +- name: Deploy Heat + command: ./tools/deployment/component/heat/heat.sh + changed_when: false + args: + chdir: /root/repos/openstack-helm + +- name: Deploy Glance + command: ./tools/deployment/component/glance/glance.sh + changed_when: false + args: + chdir: /root/repos/openstack-helm + +- name: Deploy OpenvSwitch + command: ./tools/deployment/component/compute-kit/openvswitch.sh + changed_when: false + args: + chdir: /root/repos/openstack-helm + +- name: Deploy Libvirt + command: ./tools/deployment/component/compute-kit/libvirt.sh + changed_when: false + args: + chdir: /root/repos/openstack-helm + +- name: Deploy Compute Kit (Nova and Neutron) + command: ./tools/deployment/component/compute-kit/compute-kit.sh + changed_when: false + args: + chdir: /root/repos/openstack-helm + +- name: Copy script to the worker node + command: "scp -o \"StrictHostKeyChecking no\" tools/deployment/developer/ceph/170-setup-gateway.sh root@192.168.122.4:170-setup-gateway.sh" + changed_when: false + args: + chdir: /root/repos/openstack-helm + +- name: Setup the gateway to the public network at worker node + command: /root/170-setup-gateway.sh + changed_when: false + delegate_to: 192.168.122.4 + +- name: Add a route from opnfv to worker node for the public network + command: ip route add 172.24.4.0/24 via 192.168.122.4 + changed_when: false + +# Deployment validation +- name: Exercise the cloud + command: ./tools/deployment/developer/common/900-use-it.sh + changed_when: false + args: + chdir: /root/repos/openstack-helm diff --git a/xci/installer/osh/playbooks/roles/install-osh-noha/tasks/main.yml b/xci/installer/osh/playbooks/roles/install-osh-noha/tasks/main.yml new file mode 100644 index 00000000..231572c9 --- /dev/null +++ b/xci/installer/osh/playbooks/roles/install-osh-noha/tasks/main.yml @@ -0,0 +1,109 @@ +- name: Setup Clients + command: ./tools/deployment/multinode/010-setup-client.sh + changed_when: false + args: + chdir: /root/repos/openstack-helm + +- name: Deploy the ingress controller + command: ./tools/deployment/multinode/020-ingress.sh + changed_when: false + args: + chdir: /root/repos/openstack-helm + +- name: Deploy Ceph + command: ./tools/deployment/multinode/030-ceph.sh + changed_when: false + args: + chdir: /root/repos/openstack-helm + +- name: Activate the openstack namespace to be able to use Ceph + command: ./tools/deployment/multinode/040-ceph-ns-activate.sh + changed_when: false + args: + chdir: /root/repos/openstack-helm + +- name: Deploy MariaDB + command: ./tools/deployment/multinode/050-mariadb.sh + changed_when: false + args: + chdir: /root/repos/openstack-helm + +- name: Deploy RabbitMQ + command: ./tools/deployment/multinode/060-rabbitmq.sh + changed_when: false + args: + chdir: /root/repos/openstack-helm + +- name: Deploy memcached + command: ./tools/deployment/multinode/070-memcached.sh + changed_when: false + args: + chdir: /root/repos/openstack-helm + +- name: Deploy Keystone + command: ./tools/deployment/multinode/080-keystone.sh + changed_when: false + args: + chdir: /root/repos/openstack-helm + +- name: Deploy Horizon + command: ./tools/deployment/multinode/085-horizon.sh + changed_when: false + args: + chdir: /root/repos/openstack-helm + +- name: Deploy Rados Gateway for object store + command: ./tools/deployment/multinode/090-ceph-radosgateway.sh + changed_when: false + args: + chdir: /root/repos/openstack-helm + +- name: Deploy Glance + command: ./tools/deployment/multinode/100-glance.sh + changed_when: false + args: + chdir: /root/repos/openstack-helm + +- name: Deploy Cinder + command: ./tools/deployment/multinode/110-cinder.sh + changed_when: false + args: + chdir: /root/repos/openstack-helm + +- name: Deploy OpenvSwitch + command: ./tools/deployment/multinode/120-openvswitch.sh + changed_when: false + args: + chdir: /root/repos/openstack-helm + +- name: Deploy Libvirt + command: ./tools/deployment/multinode/130-libvirt.sh + changed_when: false + args: + chdir: /root/repos/openstack-helm + +- name: Deploy Compute Kit (Nova and Neutron) + command: ./tools/deployment/multinode/140-compute-kit.sh + changed_when: false + args: + chdir: /root/repos/openstack-helm + +- name: Deploy Heat + command: ./tools/deployment/multinode/150-heat.sh + changed_when: false + args: + chdir: /root/repos/openstack-helm + +- name: Deploy Barbican + command: ./tools/deployment/multinode/160-barbican.sh + changed_when: false + args: + chdir: /root/repos/openstack-helm + +# Deployment validation +- name: Deploy tempest + command: ./tools/deployment/multinode/900-tempest.sh + changed_when: false + args: + chdir: /root/repos/openstack-helm + diff --git a/xci/installer/osh/playbooks/roles/prepare-kube-nodes-osh/tasks/main.yml b/xci/installer/osh/playbooks/roles/prepare-kube-nodes-osh/tasks/main.yml new file mode 100644 index 00000000..5a70f971 --- /dev/null +++ b/xci/installer/osh/playbooks/roles/prepare-kube-nodes-osh/tasks/main.yml @@ -0,0 +1,11 @@ +- name: Install packages in kubernetes nodes + package: + name: "{{ packages }}" + state: present + changed_when: false + vars: + packages: + - ceph-common + - rbd-nbd + - apparmor + - nfs-common diff --git a/xci/installer/osh/playbooks/roles/prepare-opnfvhost-osh/files/helm-serve.service b/xci/installer/osh/playbooks/roles/prepare-opnfvhost-osh/files/helm-serve.service new file mode 100644 index 00000000..c3988d6f --- /dev/null +++ b/xci/installer/osh/playbooks/roles/prepare-opnfvhost-osh/files/helm-serve.service @@ -0,0 +1,11 @@ +[Unit] +Description=Helm Server +After=network.target + +[Service] +User=root +Restart=always +ExecStart=/usr/bin/helm serve + +[Install] +WantedBy=multi-user.target diff --git a/xci/installer/osh/playbooks/roles/prepare-opnfvhost-osh/tasks/main.yml b/xci/installer/osh/playbooks/roles/prepare-opnfvhost-osh/tasks/main.yml new file mode 100644 index 00000000..7e2a52ab --- /dev/null +++ b/xci/installer/osh/playbooks/roles/prepare-opnfvhost-osh/tasks/main.yml @@ -0,0 +1,141 @@ +- name: Set kubernetes service account permissions + command: "kubectl create clusterrolebinding add-on-cluster-admin --clusterrole=cluster-admin --serviceaccount=kube-system:default" + changed_when: false + +- name: Set kubernetes node labels + shell: "for x in `kubectl get nodes --show-labels | grep 'node-role.kubernetes.io/node=true' | awk '{print $1}'`; do kubectl label nodes $x {{ item }}; done" + args: + executable: /bin/bash + changed_when: false + with_items: + - openstack-control-plane=enabled + - openstack-compute-node=enabled + - openstack-helm-node-class=primary + - openvswitch=enabled + - linuxbridge=enabled + - ceph-mon=enabled + - ceph-osd=enabled + - ceph-mds=enabled + - ceph-mgr=enabled + - ceph-rgw=enabled + +- name: Create directories + file: + path: /root/{{ item }} + state: directory + with_items: + ['repos','tmp', '.helm/repository/local'] + +- name: Rename bifrost clouds file to get it out of precedence + command: "mv .config/openstack/clouds.yaml .config/openstack/clouds.yaml.bifrost" + changed_when: false + +- name: Clone openstack-helm + git: + repo: "{{ osh_git_url }}" + dest: /root/repos/openstack-helm + version: "{{ osh_version }}" + update: true + force: true + register: git_clone + until: git_clone is success + retries: 2 + delay: 5 + +- name: Fix dns nameserver for openstack installation (mini flavor) + lineinfile: + path: /root/repos/openstack-helm/tools/gate/files/heat-public-net-deployment.yaml + regexp: '10\.96\.0\.10' + line: " - 10.233.0.3" + +- name: Fix dns nameserver for openstack installation (noha flavor) + lineinfile: + path: /root/repos/openstack-helm/tempest/values.yaml + regexp: 'dns_servers' + line: " dns_servers: 10.233.0.3" + +- name: Clone openstack-helm-infra + git: + repo: "{{ osh_infra_git_url }}" + dest: /root/repos/openstack-helm-infra + version: "{{ osh_infra_version }}" + update: true + force: true + register: git_clone + until: git_clone is success + retries: 2 + delay: 5 + +- name: Get helm + get_url: + url: "{{ osh_helm_binary_url }}/helm-{{ osh_helm_binary_version }}-linux-amd64.tar.gz" + dest: tmp + +- name: Uncompress helm package + command: "tar zxvf tmp/helm-{{ osh_helm_binary_version }}-linux-amd64.tar.gz --strip-components=1 -C tmp/" + changed_when: false + tags: + - skip_ansible_lint + +- name: Put helm in system binaries + copy: + src: tmp/helm + dest: /usr/bin/helm + remote_src: yes + mode: 0755 + +- name: Create helm-serve service file + copy: + src: helm-serve.service + dest: "/etc/systemd/system/helm-serve.service" + mode: 0640 + +- name: Start helm-serve service + service: + name: helm-serve + state: started + enabled: yes + +- name: Wait for helm-serve service to start + wait_for: + port: 8879 + host: 127.0.0.1 + +- name: Install pyhelm + pip: + name: pyhelm + +- name: Init helm + command: "helm init" + changed_when: false + +- name: Remove stable (external) service from helm + command: "helm repo remove stable" + changed_when: false + +- name: Add local repositories service to helm + command: "helm repo add local http://localhost:8879/charts" + changed_when: false + +- name: Make charts from infra + make: + chdir: /root/repos/openstack-helm-infra + target: "{{ item }}" + with_items: + - helm-toolkit + - ingress + - mariadb + - rabbitmq + - memcached + - ceph-mon + - ceph-osd + - ceph-client + - ceph-provisioners + - ceph-rgw + - openvswitch + - libvirt + +- name: Install packages + package: + name: "{{ required_packages }}" + state: present diff --git a/xci/installer/osh/playbooks/roles/prepare-opnfvhost-osh/vars/main.yml b/xci/installer/osh/playbooks/roles/prepare-opnfvhost-osh/vars/main.yml new file mode 100644 index 00000000..53188bdb --- /dev/null +++ b/xci/installer/osh/playbooks/roles/prepare-opnfvhost-osh/vars/main.yml @@ -0,0 +1,7 @@ +--- +required_packages: +- patch +- ipcalc +- jq +- nmap +- bc diff --git a/xci/installer/osh/playbooks/roles/prepare-osh/tasks/main.yml b/xci/installer/osh/playbooks/roles/prepare-osh/tasks/main.yml new file mode 100644 index 00000000..d9718ea4 --- /dev/null +++ b/xci/installer/osh/playbooks/roles/prepare-osh/tasks/main.yml @@ -0,0 +1,32 @@ +- name: Write new resolv.conf file + template: + src: resolv.conf.j2 + dest: /etc/resolv.conf + +- name: Make resolv.conf immutable + shell: "chattr +i /etc/resolv.conf" + changed_when: false + args: + executable: /bin/bash + tags: + - skip_ansible_lint + +#TODO Fetch the value from a file generated by k8s deployer +- name: Get kube service addresses + shell: "grep -r 'kube_service_addresses:' /root/releng-xci/.cache/repos/kubespray/opnfv_inventory/group_vars/k8s-cluster.yml | awk '{print $2}'" + changed_when: false + args: + executable: /bin/bash + register: kube_service_addresses + tags: + - skip_ansible_lint + +#This rule allows openstack client in OPNFV VM to reach openstack +- name: Update routing table with kube service addresses + shell: "ip route add {{ kube_service_addresses.stdout }} via 192.168.122.3 dev br-vlan onlink" + changed_when: false + args: + executable: /bin/bash + tags: + - skip_ansible_lint + diff --git a/xci/installer/osh/playbooks/roles/prepare-osh/templates/resolv.conf.j2 b/xci/installer/osh/playbooks/roles/prepare-osh/templates/resolv.conf.j2 new file mode 100644 index 00000000..ae706e02 --- /dev/null +++ b/xci/installer/osh/playbooks/roles/prepare-osh/templates/resolv.conf.j2 @@ -0,0 +1,4 @@ +{{ dns_var }} +{% for nameserver in external_dns_nameservers %} +nameserver {{ nameserver }} +{% endfor %} diff --git a/xci/installer/osh/playbooks/roles/prepare-osh/vars/main.yml b/xci/installer/osh/playbooks/roles/prepare-osh/vars/main.yml new file mode 100644 index 00000000..abb0d6eb --- /dev/null +++ b/xci/installer/osh/playbooks/roles/prepare-osh/vars/main.yml @@ -0,0 +1,6 @@ +kube_dns_ip: "10.233.0.3" +external_dns_nameservers: +- '{{kube_dns_ip}}' +- '192.168.122.1' +dns_var: "search svc.cluster.local cluster.local" + |