--- - 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 }} changed_when: true # 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 }}" } - name: Set repos defined in the job to update when: - job.add_repos is defined - job.add_repos != [] - standalone_container_prep_updates block: - name: Create string of repos to update set_fact: add_repo_update_list: >- {% if job.add_repos[item|int].update_container|default(false) -%} {{ job.add_repos[item|int].reponame }} {% endif -%} with_sequence: start=0 end="{{ (job.add_repos|length -1)|int }}" register: add_repo_update_list_result - debug: var: add_repo_update_list - name: Add repos to update_repo set_fact: add_repos_update: "{{ add_repo_update_list_result.results | map(attribute='ansible_facts.add_repo_update_list') | list }}" cacheable: true when: add_repo_update_list_result|length > 0 - debug: var: add_repos_update - name: Create string from list set_fact: add_repos_update: "{{ add_repos_update | join(',') }}" when: add_repos_update|length > 0 # 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 }},{{ add_repos_update|default('') }}" - 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 }} changed_when: true - when: standalone_ansible_lint|default(false)|bool vars: quickstart_venv: "{{ lookup('env','OPT_WORKDIR') }}" block: - name: Install ansible-lint # noqa 403 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