--- - hosts: all tasks: - name: Enable ssh to overcloud nodes from jumphost shell: "cat /home/stack/jumphost_id_rsa.pub | ssh -T {{ SSH_OPTIONS }} heat-admin@{{ item.value }} 'cat >> ~/.ssh/authorized_keys'" with_dict: "{{ overcloud_nodes }}" become: yes become_user: stack - name: Configure external network shell: "{{ overcloudrc }} && {{ item }}" with_items: "{{ external_network_cmds }}" when: vim == 'openstack' - name: Configure gluon networks shell: "{{ overcloudrc }} && {{ item }}" when: gluon with_items: - openstack network create gluon-network --share --provider-network-type vxlan - openstack subnet create gluon-subnet --no-gateway --no-dhcp --network GluonNetwork --subnet-range 0.0.0.0/1 - name: Find admin project id shell: "{{ overcloudrc }} && openstack project list | grep admin | awk '{print $2}'" register: os_project_id - name: Ensure rc files owned by stack file: path: "/home/stack/{{ item }}" state: file owner: stack group: stack mode: 0644 become: yes with_items: "{{ overcloudrc_files }}" - name: Inject OS_PROJECT_ID and OS_TENANT_NAME into overcloudrc lineinfile: line: "{{ item }}" path: /home/stack/overcloudrc become: yes become_user: stack with_items: - "export OS_PROJECT_ID={{ os_project_id.stdout }}" - "export OS_TENANT_NAME=admin" - name: Install Docker yum: name: docker state: present when: yardstick or dovetail become: yes - systemd: name: docker state: started enabled: yes when: yardstick or dovetail become: yes - name: Pull yardstick docker image docker_image: name: opnfv/yardstick when: yardstick become: yes - name: Pull dovetail docker image docker_image: name: opnfv/dovetail when: dovetail become: yes - name: Register SDN VIP shell: "{{ stackrc }} && neutron port-list | grep control_virtual_ip | grep -Eo '([0-9]+\\.){3}[0-9]+'" register: sdn_vip become: yes become_user: stack when: sdn != false - name: Write SDN controller VIP to overcloudrc lineinfile: line: "export SDN_CONTROLLER_IP={{ sdn_vip.stdout }}" regexp: 'SDN_CONTROLLER_IP' path: "/home/stack/{{ item }}" when: sdn != false become: yes become_user: stack with_items: "{{ overcloudrc_files }}" - name: Write SDN WEB and REST PORT to overcloudrc lineinfile: line: "export {{ item[0] }}=8081" regexp: "{{ item[0] }}" path: "/home/stack/{{ item[1] }}" when: sdn != false become: yes become_user: stack with_nested: - [ 'SDN_CONTROLLER_WEBPORT', 'SDN_CONTROLLER_RESTCONFPORT' ] - "{{ overcloudrc_files }}" - name: Grab Heat Environment variables shell: "{{ stackrc }} && openstack stack environment show overcloud -f json" register: heat_env become: yes become_user: stack - name: Write SDN controller password to overcloudrc for ODL lineinfile: line: "export SDN_CONTROLLER_PASSWORD={{(heat_env.stdout|from_json)['parameter_defaults']['OpenDaylightPassword']}}" regexp: 'SDN_CONTROLLER_PASSWORD' path: "/home/stack/{{ item }}" when: sdn == 'opendaylight' become: yes become_user: stack with_items: "{{ overcloudrc_files }}" - name: Register OS Region shell: "{{ overcloudrc }} && openstack endpoint list -c Region -f json" register: region when: vim == 'openstack' - name: Write Region into overcloudrc lineinfile: line: "export OS_REGION_NAME={{(region.stdout|from_json)[1]['Region']}}" regexp: 'OS_REGION_NAME' path: "/home/stack/{{ item }}" become: yes become_user: stack with_items: "{{ overcloudrc_files }}" when: vim == 'openstack' - name: Create congress datasources shell: "{{ overcloudrc }} && openstack congress datasource create {{ item }}" become: yes become_user: stack when: congress with_items: "{{ congress_datasources }}" ignore_errors: yes - name: Configure Calipso block: - name: Install pip3 yum: name: python34-pip state: present - name: Install Calipso dependencies pip: name: "{{ item }}" executable: pip3 with_items: - docker - pymongo - name: Create Calipso user user: name: calipso createhome: yes - name: Remove old docker package: name: "{{ item }}" state: absent with_items: - docker - docker-common - docker-selinux - docker-engine - name: Add Docker CE repo shell: yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo - name: Install Docker CE package: name: docker-ce state: latest - name: Start Docker service: name: docker state: started enabled: yes - name: Install Calipso command: > python3 /root/calipso-installer.py --command start-all --copy q --hostname {{ calipso_ip }} --dbport 37017 --webport 81 --apiport 8001 --rabbitmport 15673 --home /root become: yes when: calipso