181 lines
5.8 KiB
YAML
181 lines
5.8 KiB
YAML
---
|
|
- name: Gather ansible distribution
|
|
setup:
|
|
gather_subset: "!min,distribution"
|
|
when: ansible_distribution is not defined
|
|
|
|
- name: Cache tempest network cidr
|
|
set_fact:
|
|
tempest_cidr: "{{ undercloud_network_cidr }}"
|
|
when: use_os_tempest is defined
|
|
|
|
# tasks file for all_in_one
|
|
|
|
- name: Set hostname
|
|
hostname:
|
|
name: "{{ standalone_hostname }}"
|
|
become: true
|
|
|
|
# standalone params
|
|
- name: Create the standalone params
|
|
template:
|
|
src: "{{ standalone_config }}"
|
|
dest: "{{ working_dir }}/standalone_parameters.yaml"
|
|
mode: 0755
|
|
|
|
- name: Create container parameters script
|
|
template:
|
|
src: "{{ standalone_container_prep_script }}"
|
|
dest: "{{ working_dir }}/standalone-container-prep.sh"
|
|
mode: "0755"
|
|
|
|
- name: Run container prepare
|
|
shell: >
|
|
set -o pipefail &&
|
|
{{ working_dir }}/standalone-container-prep.sh 2>&1 {{ timestamper_cmd }} > {{ working_dir }}/{{ standalone_container_prep_log }}
|
|
|
|
# update the registry to rdo or docker.io
|
|
- name: update registry if needed in container-prepare-parameters.yaml
|
|
when:
|
|
- docker_registry_host != '' and docker_registry_namespace != ''
|
|
replace:
|
|
path: "{{ working_dir }}/containers-prepare-parameters.yaml"
|
|
regexp: " namespace: (.*)"
|
|
replace: " namespace: {{ docker_registry_host }}/{{ docker_registry_namespace }}"
|
|
backup: true
|
|
|
|
# update the container tag to match dlrn hash
|
|
- name: update container tag if needed in container-prepare-parameters.yaml
|
|
when:
|
|
- container_build_id != ''
|
|
replace:
|
|
path: "{{ working_dir }}/containers-prepare-parameters.yaml"
|
|
regexp: " tag: (.*)"
|
|
replace: " tag: {{ container_build_id }}"
|
|
backup: true
|
|
|
|
# in extra-common/defaults
|
|
# docker_prep_prefix: "{{ ansible_distribution | lower }}-binary-"
|
|
- name: update container name_prefix for the appropriate distro
|
|
replace:
|
|
path: "{{ working_dir }}/containers-prepare-parameters.yaml"
|
|
regexp: " name_prefix: (.*)"
|
|
replace: " name_prefix: {{ docker_prep_prefix }}"
|
|
backup: true
|
|
|
|
# ceph parameters
|
|
- name: update container ceph parameters
|
|
when:
|
|
- standalone_container_ceph_updates|default(false)|bool
|
|
replace:
|
|
path: "{{ working_dir }}/containers-prepare-parameters.yaml"
|
|
regexp: " {{ item.original }}: (.*)"
|
|
replace: " {{ item.replace }}"
|
|
backup: true
|
|
with_items:
|
|
- { original: "ceph_namespace", replace: "ceph_namespace: {{ docker_ceph_namespace }}" }
|
|
- { original: "ceph_image", replace: "ceph_image: {{ docker_ceph_image }}" }
|
|
- { original: "ceph_tag", replace: "ceph_tag: {{ docker_ceph_tag }}" }
|
|
|
|
# update params for container update
|
|
- name: Add updates to container-prepare-parameters.yaml
|
|
when:
|
|
- standalone_container_prep_updates
|
|
block:
|
|
- name: Replace tag_from_label value
|
|
replace:
|
|
path: "{{ working_dir }}/containers-prepare-parameters.yaml"
|
|
regexp: " tag_from_label: (.*)"
|
|
replace: " tag_from_label: null"
|
|
backup: true
|
|
|
|
- name: Add settings to modify
|
|
blockinfile:
|
|
path: "{{ working_dir }}/containers-prepare-parameters.yaml"
|
|
state: present
|
|
backup: true
|
|
insertbefore: "(.*) tag_from_label: null"
|
|
block: |
|
|
#
|
|
push_destination: "{{ local_docker_registry_host }}:8787"
|
|
modify_role: tripleo-modify-image
|
|
modify_append_tag: "{{ update_containers_append_tag }}"
|
|
{% if osp_release is defined -%}
|
|
# no kolla labels are defined
|
|
{% else -%}
|
|
modify_only_with_labels:
|
|
- kolla_version
|
|
{% endif -%}
|
|
modify_vars:
|
|
tasks_from: yum_update.yml
|
|
yum_repos_dir_path: /etc/yum.repos.d
|
|
update_repo: "{{ standalone_container_prep_update_repo }}"
|
|
|
|
- name: Update rhel_containers value
|
|
when: ansible_distribution == 'RedHat'
|
|
replace:
|
|
path: "{{ working_dir }}/containers-prepare-parameters.yaml"
|
|
regexp: "rhel_containers: false"
|
|
replace: "rhel_containers: true"
|
|
backup: true
|
|
|
|
- name: Modify the insecure registry value when using podman
|
|
when:
|
|
- standalone_container_prep_updates
|
|
- ansible_distribution == 'RedHat'
|
|
- ansible_distribution_major_version|int >= 8
|
|
- release not in ['newton', 'ocata', 'pike', 'queens', 'rocky']
|
|
replace:
|
|
path: "{{ working_dir }}/standalone_parameters.yaml"
|
|
regexp: " - 192.168.24.1:8787"
|
|
replace: " - 192.168.24.1"
|
|
backup: true
|
|
|
|
- name: Create the deploy command for standalone
|
|
template:
|
|
src: "{{ standalone_deploy_script }}"
|
|
dest: "{{ working_dir }}/standalone.sh"
|
|
mode: 0755
|
|
|
|
- name: Run dstat on the standalone prior to standalone deploy
|
|
include_role:
|
|
name: validate-perf
|
|
|
|
- name: Deploy the standalone
|
|
shell: >
|
|
set -o pipefail &&
|
|
{{ working_dir }}/standalone.sh 2>&1 {{ timestamper_cmd }} > {{ working_dir }}/{{ standalone_deploy_log }}
|
|
|
|
- when: standalone_ansible_lint|default(false)|bool
|
|
vars:
|
|
quickstart_venv: "{{ lookup('env','OPT_WORKDIR') }}"
|
|
block:
|
|
- name: Install ansible-lint
|
|
pip:
|
|
name: ansible-lint
|
|
state: latest
|
|
virtualenv: "{{ quickstart_venv }}"
|
|
|
|
- name: List playbooks
|
|
shell: "find $(ls -rtd {{ working_dir }}/undercloud-ansible-* | tail -1)/ -name '*playbook*.yaml'"
|
|
register: playbooks
|
|
|
|
# We ignore (for now) the lint (rc==2), only catch syntax error
|
|
# (rc==1).
|
|
- name: Lint playbooks
|
|
shell: >
|
|
source {{ quickstart_venv }}/bin/activate;
|
|
exec 1>>{{ working_dir }}/{{ standalone_ansible_lint_log }};
|
|
exec 2>&1;
|
|
echo LINTING {{ item }};
|
|
ansible-lint -v {{ item }};
|
|
rc=$?;
|
|
echo DONE rc=$rc;
|
|
exit $rc
|
|
register: lint_result
|
|
environment:
|
|
ANSIBLE_LIBRARY: |
|
|
/usr/share/ansible-modules/:{{ lookup('env', 'ANSIBLE_LIBRARY') }}
|
|
with_items: "{{ playbooks.stdout_lines }}"
|
|
failed_when: lint_result.rc == 1
|