summaryrefslogtreecommitdiffstats
path: root/lib/ansible/playbooks/post_deploy_undercloud.yml
blob: 8cdfedfe5ed4fbc558fa619ad7706049f0d5e847 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
---
- 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