c38ab37766
By default, the ansible task will gather facts, it can be configured by set "father_facts: true", it's unncessary to run setup in tasks, it will waste much time when hosts is large. Change-Id: I9462a538c76b6271a34531d8752b72cc695f693e Closes-Bug: #1743485
122 lines
4.0 KiB
YAML
122 lines
4.0 KiB
YAML
---
|
|
- hosts: primary
|
|
vars:
|
|
kolla_inventory_path: "/etc/kolla/inventory"
|
|
logs_dir: "/tmp/logs"
|
|
kolla_ansible_src_dir: "src/{{ zuul.project.canonical_hostname }}/openstack/kolla-ansible"
|
|
kolla_ansible_full_src_dir: "{{ zuul.executor.work_root }}/{{ kolla_ansible_src_dir }}"
|
|
need_build_image: false
|
|
tasks:
|
|
- name: ensure /etc/kolla exists
|
|
file:
|
|
path: "/etc/kolla"
|
|
state: "directory"
|
|
mode: 0777
|
|
become: true
|
|
|
|
- name: copy default ansible kolla-ansible inventory
|
|
template:
|
|
src: "{{ kolla_ansible_full_src_dir }}/tests/templates/inventory.j2"
|
|
dest: "{{ kolla_inventory_path }}"
|
|
delegate_to: "primary"
|
|
|
|
# FIXME: in multi node env, api_interface may be different on each node.
|
|
- name: detect api_interface_name variable
|
|
vars:
|
|
ansible_interface_name: "ansible_{{ item.replace('-', '_') }}"
|
|
api_interface_address: "{{ hostvars[inventory_hostname]['nodepool']['private_ipv4'] }}"
|
|
set_fact:
|
|
api_interface_name: "{{ item }}"
|
|
api_interface_address: "{{ api_interface_address }}"
|
|
when:
|
|
- hostvars[inventory_hostname][ansible_interface_name]['ipv4'] is defined
|
|
- hostvars[inventory_hostname][ansible_interface_name]['ipv4']['address'] == api_interface_address
|
|
with_items: "{{ ansible_interfaces }}"
|
|
delegate_to: "primary"
|
|
|
|
- name: detect whether need build images
|
|
set_fact:
|
|
need_build_image: true
|
|
when:
|
|
- item.project.short_name == "kolla"
|
|
with_items: "{{ zuul['items'] }}"
|
|
|
|
- name: generate global.yml file
|
|
template:
|
|
src: "{{ kolla_ansible_full_src_dir }}/tests/templates/globals-default.j2"
|
|
dest: /etc/kolla/globals.yml
|
|
delegate_to: "primary"
|
|
|
|
- name: ensure nova conf overrides dir exists
|
|
file:
|
|
path: "/etc/kolla/config/nova"
|
|
state: "directory"
|
|
mode: 0777
|
|
become: true
|
|
delegate_to: "primary"
|
|
|
|
- name: generate nova config overrides
|
|
template:
|
|
src: "{{ kolla_ansible_full_src_dir }}/tests/templates/nova-compute-overrides.j2"
|
|
dest: /etc/kolla/config/nova/nova-compute.conf
|
|
delegate_to: "primary"
|
|
|
|
- name: copy passwords.yml file
|
|
copy:
|
|
src: "{{ kolla_ansible_full_src_dir }}/etc/kolla/passwords.yml"
|
|
dest: /etc/kolla/passwords.yml
|
|
delegate_to: "primary"
|
|
|
|
- name: ensure /etc/docker exists
|
|
file:
|
|
path: "/etc/docker"
|
|
state: "directory"
|
|
mode: 0777
|
|
become: true
|
|
|
|
- name: create deamon.json for nodepool cache
|
|
vars:
|
|
infra_dockerhub_mirror: "http://{{ zuul_site_mirror_fqdn }}:8081/registry-1.docker/"
|
|
template:
|
|
src: "{{ kolla_ansible_full_src_dir }}/tests/templates/docker_daemon.json.j2"
|
|
dest: "/etc/docker/daemon.json"
|
|
become: true
|
|
|
|
|
|
- name: install kolla-ansible requirements
|
|
pip:
|
|
requirements: "{{ ansible_env.HOME }}/{{ kolla_ansible_src_dir }}/requirements.txt"
|
|
become: true
|
|
|
|
- name: generate passwords
|
|
shell: "{{ kolla_ansible_src_dir }}/tools/generate_passwords.py"
|
|
delegate_to: "primary"
|
|
|
|
- name: Prepare ceph disks
|
|
script: "{{ kolla_ansible_full_src_dir }}/tests/setup_ceph_disks.sh"
|
|
when: scenario == "ceph"
|
|
become: true
|
|
|
|
- name: generate ceph config overrides
|
|
template:
|
|
src: "{{ kolla_ansible_full_src_dir }}/tests/templates/ceph-overrides.j2"
|
|
dest: /etc/kolla/config/ceph.conf
|
|
when: scenario == "ceph"
|
|
delegate_to: "primary"
|
|
|
|
- shell:
|
|
cmd: |
|
|
set -e
|
|
set -x
|
|
export BASE_DISTRO={{ base_distro }}
|
|
export INSTALL_TYPE={{ install_type }}
|
|
export NODEPOOL_TARBALLS_MIRROR=http://{{ zuul_site_mirror_fqdn }}:8080/tarballs
|
|
export BUILD_IMAGE={{ need_build_image }}
|
|
export KOLLA_SRC_DIR={{ ansible_env.HOME }}/src/git.openstack.org/openstack/kolla
|
|
|
|
tools/setup_gate.sh
|
|
executable: /bin/bash
|
|
chdir: "{{ kolla_ansible_src_dir }}"
|
|
delegate_to: "primary"
|
|
environment: '{{ zuul | zuul_legacy_vars }}'
|