tripleo-quickstart-extras/roles/standalone/tasks/main.yml

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