--- # 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) }}" pre_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 tasks: # Example read-write git checkout from github - name: Get OSA git: repo: https://git.openstack.org/openstack/openstack-ansible dest: /opt/openstack-ansible version: "{{ osa_branch | default('master') }}" when: - pre_config_osa | default(true) | bool - name: Create base directories file: path: "{{ item }}" state: directory owner: "root" group: "root" mode: "0755" with_items: - /etc/openstack_deploy - /etc/openstack_deploy/conf.d - /etc/openstack_deploy/env.d when: - pre_config_osa | default(true) | bool - name: Create Basic configs shell: cp -R etc/openstack_deploy/* /etc/openstack_deploy args: 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: 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' - name: Bootstrap ansible command: bash ./scripts/bootstrap-ansible.sh args: chdir: /opt/openstack-ansible when: - pre_config_osa | default(true) | bool - name: Get pip2 and pw gen deps shell: | python2 /opt/get-pip.py $(which pip2 || which pip) install setuptools pycrypto pyyaml args: chdir: /opt/openstack-ansible when: - pre_config_osa | default(true) | bool - name: Create passwords command: python2 ./scripts/pw-token-gen.py --file /etc/openstack_deploy/user_secrets.yml args: chdir: /opt/openstack-ansible when: - pre_config_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-everything.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 environment: "{{ deployment_environment_variables | default({}) }}" tags: - deploy-osa