--- # Copyright 2017, Rackspace US, Inc. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in witing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. - name: Setup deploy host hosts: deploy_hosts gather_facts: "{{ gather_facts | default(true) }}" environment: "{{ deployment_environment_variables | default({}) }}" tags: - deploy-osa tasks: - name: Gather variables for each operating system include_vars: "{{ item }}" with_first_found: - "{{ playbook_dir }}/vars/{{ ansible_distribution | lower }}-{{ ansible_distribution_version | lower }}.yml" - "{{ playbook_dir }}/vars/{{ ansible_distribution | lower }}-{{ ansible_distribution_major_version | lower }}.yml" - "{{ playbook_dir }}/vars/{{ ansible_os_family | lower }}-{{ ansible_distribution_major_version | lower }}.yml" - "{{ playbook_dir }}/vars/{{ ansible_distribution | lower }}.yml" - "{{ playbook_dir }}/vars/{{ ansible_os_family | lower }}.yml" tags: - always # Example read-write git checkout from github - name: Get OSA git: repo: "{{ osa_repo | default('https://opendev.org/openstack/openstack-ansible') }}" dest: /opt/openstack-ansible version: "{{ osa_branch | default('master') }}" when: - pre_config_osa | default(true) | bool - clone_osa | default(true) | bool - name: Create OSA configuration directory file: path: "/etc/openstack_deploy" state: directory owner: "root" group: "root" mode: "0755" when: - pre_config_osa | default(true) | bool - name: Create OSA group_vars directory file: path: "/etc/openstack_deploy/group_vars" state: directory owner: "root" group: "root" mode: "0755" when: - pre_config_osa | default(true) | bool - name: Copy default config files and directories shell: >- rsync -av --include='*.yml' --include='*/' --exclude='*' /opt/openstack-ansible/etc/openstack_deploy/ /etc/openstack_deploy/ args: executable: /bin/bash chdir: /opt/openstack-ansible when: - pre_config_osa | default(true) | bool - name: Drop osa config template: src: "osa/openstack_user_config.yml" dest: /etc/openstack_deploy/openstack_user_config.yml mode: "0644" owner: root group: root when: - pre_config_osa | default(true) | bool - name: Drop osa user variables template: src: "osa/user_mnaio_variables.yml" dest: /etc/openstack_deploy/user_mnaio_variables.yml mode: "0644" owner: root group: root when: - pre_config_osa | default(true) | bool - name: Drop config to disable serial throttle settings template: src: "osa/user_unserial_variables.yml" dest: /etc/openstack_deploy/user_unserial_variables.yml mode: "0644" owner: root group: root when: - pre_config_osa | default(true) | bool - osa_disable_serial | default(false) | bool - name: Drop OVS group_vars config template: src: "osa/ovs_network_hosts_group.yml" dest: "/etc/openstack_deploy/group_vars/network_hosts" mode: "0644" owner: root group: root when: - pre_config_osa | default(true) | bool - (osa_enable_networking_ovn | default(false) | bool) or (osa_enable_networking_ovs_dvr | default(false) | bool) - name: Drop NEUTRON OVN env.d config template: src: "osa/neutron-ovn-envd.yml" dest: "/etc/openstack_deploy/env.d/neutron.yml" mode: "0644" owner: root group: root when: - pre_config_osa | default(true) | bool - osa_enable_networking_ovn | default(false) | bool - name: Drop NOVA OVN env.d config template: src: "osa/nova-ovn-envd.yml" dest: "/etc/openstack_deploy/env.d/nova.yml" mode: "0644" owner: root group: root when: - pre_config_osa | default(true) | bool - osa_enable_networking_ovn | default(false) | bool - name: Drop ELK env.d config template: src: "osa/elk-envd.yml" dest: "/etc/openstack_deploy/env.d/elk.yml" mode: "0644" owner: root group: root when: - pre_config_osa | default(true) | bool - osa_enable_elk_metrics | default(false) | bool - name: Drop ELK conf.d config template: src: "osa/elk-confd.yml" dest: "/etc/openstack_deploy/conf.d/elk.yml" mode: "0644" owner: root group: root when: - pre_config_osa | default(true) | bool - osa_enable_elk_metrics | default(false) | bool - name: Ensure the user_variables file is populated lineinfile: path: /etc/openstack_deploy/user_variables.yml regexp: '^{{ item }}' line: '{{ item }}' create: yes with_items: - '---' - 'osa_ops_mnaio: true' when: - pre_config_osa | default(true) | bool - name: Bootstrap ansible command: bash ./scripts/bootstrap-ansible.sh args: chdir: /opt/openstack-ansible when: - run_osa | default(true) | bool - name: Create passwords command: ./scripts/pw-token-gen.py --file /etc/openstack_deploy/user_secrets.yml args: chdir: /opt/openstack-ansible when: - run_osa | default(true) | bool - name: Config Tmux lineinfile: path: /root/.tmux.conf regexp: '^set-option' line: 'set-option -g history-limit 20000' owner: root group: root mode: 0644 create: yes - name: Run OSA command: "{{ item }}" args: chdir: /opt/openstack-ansible/playbooks with_items: - tmux new-session -d -s build-osa - tmux select-pane -t 0 - tmux send-keys "ulimit -n 10240" C-m - tmux send-keys "openstack-ansible setup-hosts.yml setup-infrastructure.yml setup-openstack.yml" C-m when: - inventory_hostname == groups['deploy_hosts'][0] - run_osa | default(true) | bool - name: Finished notice debug: msg: | OSA deploy running. To check on the state of this deployment, login to the {{ groups['deploy_hosts'][0] }} VM and attach to the "build-osa" tmux session. when: - run_osa | default(true) | bool