Ensure configuration directories are present for each Datadog check

Ensure datadog-agent-sysprobe is running if enabled and installed

Ensure datadog-agent-sysprobe is stopped if disabled or not installed

Ensure datadog-agent, datadog-agent-process and datadog-agent-trace are not running

Stop play if datadog_agent_version and datadog_agent_major_version are not compatible

Set datadog_agent_major_version to deduced value from datadog_agent_version

Flag custom repository file for deletion if different from current repository config

(Custom) Remove Datadog custom repository file when not set or updated

Try to set secontext to default, but this will fail because of the lack of a default in the policy

Fail if there is no Ansible inventory group matching the blueprint's host_groups

Fail if the selected components should not be part of an HDP 3 blueprint

Fail if the selected components should not be part of an HDP 2 blueprint

Fail if the required HDFS components are not part of the blueprint

Fail if the required Yarn components are not part of the blueprint

Fail if the required Hive components are not part of the blueprint

Fail if the required Druid components are not part of the blueprint

Fail if the required Accumulo components are not part of the blueprint

Fail if no Ansible inventory group called 'hadoop-cluster' exists

Fail if no Ansible inventory group called 'ambari-server' exists

Upload the HDF Version Definition file for HDF-only clusters (Ambari 2.6+)

Copy the JCE jar files to {{ oraclejdk_options.base_folder }}/latest/jre/lib/security

Create the KDC database for realm {{ security_options.realm | upper }}

Add the admin principal for realm {{ security_options.realm | upper }}

configtest before restart; fail immediately if our config is bad

configtest before status check; fail immediately if our config is bad

fetch stackviz results to the root of the collect_dir for os_tempest

Copy testrepository.subunit file to the root of collect_dir for os_tempest

Fetch .sh and .log files from local working directory on localhost

Generate and retrieve the ARA static playbook report for undercloud

Generate and retrieve the ARA static playbook report for OC deploy

Link order templates in openmrs application data directory if it exists

Link encounter modifiers in openmrs application data directory if it exists

Link patient match algorithms in openmrs application data directory if it exists

Link elis feed interceptors in openmrs application data directory if it exists

Link observation adders in openmrs application data directory if it exists

DROP ALL Incoming connections except those which are marked as ACCEPT

Create /var/log/mysql directory to store binlogs if it does not exist

Take mysql dump in /opt/mysql-replication directory of master server

Give a message to reboot machine on changing from disabled to enabled

set_fact container_binary, container_binding_name, container_service_name, container_package_name

exit playbook, if user did not mean to tear down logical volumes

show container images on all the nodes (should be empty if tags was passed remove_img)

container | waiting for the containerized monitor to join the quorum...

activate scanned ceph-disk osds and migrate to ceph-volume if deploying nautilus

container | disallow pre-octopus OSDs and enable all new octopus-only functionality

non container | disallow pre-octopus OSDs and enable all new octopus-only functionality

set_fact container_exec_cmd build {{ container_binary }} exec command (containerized)

exit playbook, if user did not mean to switch from non-containerized to containerized daemons?

set_fact keys_tmp - preserve backward compatibility after the introduction of the ceph_keys module

set_fact ceph_release - override ceph_release with ceph_stable_release

fetch the red hat storage iso from the ansible server for redhat systems

fetch the red hat storage iso from the ansible server for debian systems

pulling {{ ceph_docker_registry }}/{{ ceph_docker_image }}:{{ ceph_docker_image_tag }} image

inspecting {{ ceph_docker_registry }}/{{ ceph_docker_image }}:{{ ceph_docker_image_tag }} image after pulling

set_fact use_new_ceph_iscsi package or old ceph-iscsi-config/cli

remove ceph rbd mirror socket if exists and not used by a process

remove ceph nfs ganesha socket if exists and not used by a process

set ntp service and chrony daemon name for RedHat and Suse family

generate systemd unit files for tcmu-runner, rbd-target-api and rbd-target-gw

set _ceph_mgr_modules fact (convert _ceph_mgr_modules.stdout to a dict)

copy rgw keyring when deploying internal ganesha with external ceph cluster

set_fact container_env_args '-e osd_bluestore=0 -e osd_filestore=1 -e osd_dmcrypt=0'

set_fact container_env_args '-e osd_bluestore=0 -e osd_filestore=1 -e osd_dmcrypt=1'

set_fact container_env_args '-e osd_bluestore=1 -e osd_filestore=0 -e osd_dmcrypt=0'

set_fact container_env_args '-e osd_bluestore=1 -e osd_filestore=0 -e osd_dmcrypt=1'

set_fact openstack_keys_tmp - preserve backward compatibility after the introduction of the ceph_keys module

fail if {{ monitor_interface }} does not exist on {{ inventory_hostname }}

fail if {{ monitor_interface }} is not active on {{ inventory_hostname }}

fail if {{ monitor_interface }} does not have any ip v4 address on {{ inventory_hostname }}

fail if {{ monitor_interface }} does not have any ip v6 address on {{ inventory_hostname }}

fail if {{ radosgw_interface }} does not exist on {{ inventory_hostname }}

fail if {{ radosgw_interface }} is not active on {{ inventory_hostname }}

fail if {{ radosgw_interface }} does not have any ip v4 address on {{ inventory_hostname }}

fail if {{ radosgw_interface }} does not have any ip v6 address on {{ inventory_hostname }}

fail if {{ inventory_hostname }} does not have any {{ ip_version }} address on {{ monitor_address_block }}

fail if ceph_nfs_rgw_access_key or ceph_nfs_rgw_secret_key are undefined (nfs standalone)

fail if target_size_ratio is not set when pg_autoscale_mode is True

fail on unsupported SUSE/openSUSE distribution (only 15.x supported)

fail when dashboard_admin_password and/or grafana_admin_password are not set

generate and upload a random 10Mb file - containerized deployment

Fail if an iso is provided in combination with either a kernel or initrd

Upload megacli and cli64 for raid monitoring and smart.pl to /usr/sbin/.

Upload custom netsaint scripts for raid/disk/smart/monitoring to /usr/libexec/.

display variables for create blueprint based on {{ app_template }}

display variables for create application based on deployed blueprint and wait for start

Create empty local ssh config as defined by deploy_local_ssh_config_location

Configure all hosts with Repositories, Common Files and Set environment key

Save windows_password or generated_windows_password into workdir/

Command to enable the wildcard routes in the OCP cluster for 3scale

Set Node Selector to empty for project openshift-template-service-broker

allow OPENTLC-PROJECT-PROVISIONERS members to provision their own projects

Step 003.2 - Configure Repositories, Run common Role and Set SSH Key as authorised

Step 004.2 - Configure Repositories, Run common Role and Set SSH Key as authorised

Update Ansible (Automation) Broker to show images from DockerHub

wait for database deployments in project {{ project_cicd }} to complete (succeed or fail)

wait for database deployments in project {{ project_prod }} to complete (succeed or fail)

wait for database deployments in project {{ project_test }} to complete (succeed or fail)

wait for database deployments in project {{ project_dev }} to complete (succeed or fail)

wait for other deployments in project {{ project_cicd }} to complete (succeed or fail)

wait for other deployments in project {{ project_prod }} to complete (succeed or fail)

wait for other deployments in project {{ project_stage }} to complete (succeed or fail)

wait for other deployments in project {{ project_test }} to complete (succeed or fail)

wait for other deployments in project {{ project_dev }} to complete (succeed or fail)

run cloned ansible-playbook -i /etc/ansible/hosts /root/openshift-ansible/playbooks/byo/config.yml (3.7 and earlier)

run ansible-playbook -i /etc/ansible/hosts /usr/share/ansible/openshift-ansible/playbooks/byo/config.yml (3.7 and earlier)

run cloned ansible-playbook -i /etc/ansible/hosts /root/openshift-ansible/playbooks/prerequisites.yml (3.9 and later)

run ansible-playbook -i /etc/ansible/hosts /usr/share/ansible/openshift-ansible/playbooks/prerequisites.yml (3.9 and later)

run cloned ansible-playbook -i /etc/ansible/hosts /root/openshift-ansible/playbooks/deploy_cluster.yml (3.9 and later)

run ansible-playbook -i /etc/ansible/hosts /usr/share/ansible/openshift-ansible/playbooks/deploy_cluster.yml (3.9 and later)

support, Pull gluster images before installation (fire and forget)

infranodes, Pull OCP images before installation (fire and forget)

Create temporary installation directory for AWS Service Broker files

Switch back to 'default' project after running AWS Broker script

Grant privileged SCC to default service account for Node Exporter

Remove user Quota - oc delete clusterresourcequota  "clusterquota-{{ocp_username}}-{{guid}}"

Remove user Quota - oc delete clusterresourcequota  "clusterquota-{{ocp_username}}"

Remove user Projects - "oc delete project {{item.metadata.name}} "

Process the OpenShift Template and create the OpenShift objects for the 3scale API Management Platform

Ensure the following directory is refreshed in remote, /tmp/{{namespace}}/enmasse

execute ansible-playbook using shell to create standard deployment

Remove user from developer group - (remove ability to create projects)

Remove user Projects - "oc delete project {{item.metadata.name}}"

Give ocp_username access to {{ocp_constraints_project}};  user = {{ocp_username}}

Give ocp_username access to ocp_project; user = {{ocp_username}}

Initialize OCP resources from the project template using CLUSTER {{ ocp_apps_domain }}

Initialize OCP resources from the project template using app_name = {{app_name}}

Push nationalparks to git repository in Gogs for user "developer"

Determine if istio-system namespace already exists.  Provision istio control plane once per OCP cluster

Add anyuid scc to all authenticated: {{oc_projects.stdout_lines}}

Add edit access for user to istio-system namespace (for istioctl to be able to view istio config map )

Patch catalog-service deployment to correctly pick up newly built image

Copy the templates used in this role (Remove the .j2 if they have it in the name)

Cancel ansible service broker rollout in case it is still running

Step 004.3.1 - Gluster Node preparation for OpenShift deployment

remove selinux-policy when Pam is used, because Allowing sshd to read the shadow file directly is considered a potential security risk (http://danwalsh.livejournal.com/12333.html)

Set variable that indicates if we have a folder for custom meter YAML files

Set the variable that control the copy of custom meter definitions

Copy the external certificate crt to be the internal when internal + external are same network

Copy the external certificate key to be the internal when internal + external are same network

Copy the external PEM file to be the internal when internal + external are same network

Copy the external CA Certificate file to be the internal when internal + external are same network

Determine whether logs should be forwarded directly to Elasticsearch

Checking if kolla_internal_vip_address and kolla_external_vip_address are not pingable from any node

Checking if kolla_internal_vip_address is in the same network as api_interface on all nodes

Set fact with the generated cron jobs for building the crontab later

Checking fernet_token_expiry in globals.yml. Update fernet_token_expiry to allowed value if this task fails

Fail when MariaDB services are not synced across the whole cluster

Copying grastate.dat file from MariaDB container in bootstrap host

Checking empty passwords in passwords.yml. Run kolla-genpwd if this task fails

Validate that internal and external vip address are different when TLS is enabled only on either the internal and external network

Check if each rabbit hostname resolves uniquely to the proper IP address

Ensure IPv6 addresses on the managed interface are no longer tentative

Record the running state of the environment as seen by the setup module

For CNS change default storage class to glusterfs-storage (3.9.27, 3.9.30)

Set SSL Certificate to self signed certificate if no certificate file specified

run openshift-ansible byo/config.yml (from cloned upstream, 3.7 and earlier)

run openshift-ansible prerequisites.yml (from cloned upstream, 3.9 and later)

run openshift-ansible deploy_cluster.yml (from cloned upstream, 3.9 and later)

Remove user Quota - oc delete clusterresourcequota  "clusterquota-{{ocp_username}}-{{lab_name}}"

Give ocp_username access to Lab Infra project; user = {{ocp_username}}

Copy tenant provisioning script to known path; REMOVE_TENANTS_ONLY = {{REMOVE_TENANTS_ONLY}}

Remove user Quota - oc delete clusterresourcequota  "clusterquota-{{admin_username}}-{{ocp_project}}"

Remove user Quota - oc delete clusterresourcequota  "clusterquota-{{admin_username}}-{{lab_name}}"

Provision Istio Control Plane (which creates istio-system namespace)

Create limitrange because Istio deploys are not pre-configured with limits and requests

Give admin_username access to ocp_project; user = {{admin_username}}

Wait for following replication controllers to be created: {{ item }}

Remove user Quota - oc delete clusterresourcequota  "{{cluster_quota_name}}"

Wait for following deployments to become ready in {{ocp_project}}: {{pod_to_wait}}

Provide user with ability to impersonate system admin so as to be able to run istio commands

Remove user Quota - oc delete clusterresourcequota  "clusterquota-{{ocp_project}}"

Remove user Quota - oc delete clusterresourcequota  clusterquota-{{ocp_username}}-{{lab_name}}

Create limitrange because Strimzi deploys are not pre-configured with limits and requests

Create  cluster role binding for strimzi-cluster-operator-topic-operator-delegation

Halt the upgrade and warn the user to inspect the env.d files for changes

Remove fact cache to ensure a fresh one is built during the upgrade

Fail if there is not enough disk space available (disk specified)

Determine whether partitions labeled openstack-data{1,2} are present

If a keyfile is provided, copy the gpg keyfile to the key location

Generate post-install networks scripts for systemd-networkd family

Enable/disable vm_use_snapshot based on whether there are base image files

Set fact to indicate that the volumes changed (later used to force formatting)

Commit, compress and save VM Disk Image and prepare new copy-on-write image

Ensure that nested virtualization is enabled (if it is available)

Fail if service was deployed using a different installation method

Run nova-status upgrade check to validate a healthy configuration

Remove existing directory if it is not a git repo or it is dirty

Script installed to make future kernels readable to nova group/user

retrieve all container logs, current and previous (if they exist)

Make sure the dump file doesn't exist before extracting the archive

Make sure the OpenSRP directory is absent in Tomcat's app directory

Fetch upstream and reqcheck project {{ zuul.project.name }} with rdopkg

Ensure Uchiwa/Sensu Enterprise Dashboard server service is running

redefine the libvirt networks so the config is written to /etc/libvirt

Determine if the undercloud image is a whole disk image so we can resize it appropriately

set fact used in ssh_config_no_undercloud.j2 to determine if IdentityFile should be included

set_fact for all filtered openstack inventory nodes by cluster id

set vbmc address if there is a (nat) network defined with an address

Setup the provisioned virtual machines to look like nodepool nodes

Fail the tempest playbook on undefined cloud name and install method

Use local {{ ansible_distribution }} mirror if available ( centos 7 and RHEL )

Set project name when there is a dependency on tripleo-quickstart

Remove previously checked out git repo
(workaround for ansible bug https://github.com/ansible/ansible-modules-core/issues/5504 )

Set the download url to specified release branch if amphora_url not provided

Export actual used cell deploy args for persistence to other plays

Extract the number of cell controllers to be deployed (from cell topology_map)

Extract the number of cell computes to be deployed (from cell topology_map)

extract the number of controllers to be deployed (from topology_map)

Prepare the network-isolation required networks on the undercloud

Verifying bugs in bugzilla and launchpad and generating skip file

remove tripleo-quickstart image cache (/var/cache/tripleo-quickstart/images)

Add RGW pools if requested unless in custom pool list (only for default zone)

Succeed if CephPools parameter will satisfy PG overdoce protection

Set facts for skipping host principals check without IdM/FreeIPA config

RedHat/CentOS/Fedora | Configure Elasticsearch System Resources.

Generating certificates for Elasticsearch security (generating CA)

Generating certificates for Elasticsearch security (using provided CA | Without CA Password)

Generating certificates for Elasticsearch security (using provided CA | Using CA Password)

Stopping early, trying to compile Wazuh Kibana Plugin on Debian 10 is not possible

Executing "install.sh" script to build and install the Wazuh Agent

Linux | Vuls integration deploy (runs in background, can take a while)

datadog_enabled and not ansible_check_mode and not ansible_os_family == "Windows"

not datadog_skip_running_check and datadog_enabled and not ansible_check_mode

{{ ansible_facts.services['datadog-agent-sysprobe'] is defined or ansible_facts.services['datadog-agent-sysprobe.service'] is defined }}

{{ system_probe_config is defined and system_probe_config['enabled'] and datadog_sysprobe_installed }}

not datadog_skip_running_check and datadog_enabled and not ansible_check_mode and datadog_sysprobe_enabled

not datadog_skip_running_check and (not datadog_enabled or not datadog_sysprobe_enabled) and datadog_sysprobe_installed

Unkown action '{{ item.value.action }}' for integration command ({{ item.key }}). Valid actions are 'install' and 'remove'

item.value.action != "install" and item.value.action != "remove"

item.value.action == "remove" and ansible_os_family != "Windows"

item.value.action == "install" and ansible_os_family != "Windows"

The Datadog Ansible role does not support your OS yet. Please email support@datadoghq.com to open a feature request.

ansible_os_family not in ["RedHat", "Debian", "Suse", "Windows"]

{{ datadog_agent_version | regex_search(regexp, '\g<epoch>', '\g<major>', '\g<minor>', '\g<bugfix>', '\g<suffix>', '\g<release>') }}

The provided major version {{ datadog_agent_major_version }} is not compatible with the version {{ datadog_major }} deduced from datadog_agent_version ({{ datadog_agent_version }}). Aborting play.

datadog_agent_major_version | length > 0 and datadog_major != datadog_agent_major_version

{{ datadog_epoch }}:{{ datadog_major }}.{{ datadog_minor }}.{{ datadog_bugfix }}{{ datadog_suffix }}-{{ datadog_release }}

{{ datadog_major }}.{{ datadog_minor }}.{{ datadog_bugfix }}{{ datadog_suffix }}-{{ datadog_release }}

{{ datadog_major }}.{{ datadog_minor }}.{{ datadog_bugfix }}{{ datadog_suffix }}

{{ lookup('file', '/etc/apt/sources.list.d/ansible_datadog_custom.list') }}

(datadog_apt_repo | length == 0) or datadog_remove_custom_repo_file and (not ansible_check_mode)

{{ win_install_args }} DDAGENTUSER_NAME={{ datadog_windows_ddagentuser_name }}

{{ win_install_args }} DDAGENTUSER_PASSWORD={{ datadog_windows_ddagentuser_password }}

{% if datadog_agent_major_version|int == 7 %}{{ datadog_windows_agent7_latest_url }} {% else %}{{ datadog_windows_agent6_latest_url }}{% endif %}

The Agent versions you pinned (6.14.0 or 6.14.1) have been blacklisted, please use 6.14.2 instead. See http://dtdg.co/win-614-fix.

datadog_agent_version == "6.14.0" or datadog_agent_version == "6.14.1"

{{ datadog_windows_versioned_url }}-{{ datadog_agent_windows_version }}.msi

src={{ item + ".j2" }} dest=/etc/nagios/ansible-managed/{{ item }}

path=/var/log/mysqld.log state=touch owner=mysql group=mysql mode=0775

path=/var/run/mysqld state=directory owner=mysql group=mysql mode=0775

path={{workdir}} state=directory owner=root group=root mode=0751

src=/etc/ansible/hosts dest=/etc/ansible/hosts owner=root group=root mode=0644

src=templates/etc_cron.d_ansible-pull.j2 dest=/etc/cron.d/ansible-pull owner=root group=root mode=0644

src=templates/etc_logrotate.d_ansible-pull.j2 dest=/etc/logrotate.d/ansible-pull owner=root group=root mode=0644

/usr/bin/mongo localhost:${mongos_port}/test -u admin -p ${mongo_admin_pass} /tmp/testsharding.js

/usr/bin/mongo localhost:${mongos_port}/admin -u admin -p ${mongo_admin_pass} /tmp/enablesharding.js

path={{ mongodb_datadir_prefix }} owner=mongod group=mongod state=directory

path={{ mongodb_datadir_prefix }}/configdb state=directory owner=mongod group=mongod

src=roles/mongod/files/secret dest={{ mongodb_datadir_prefix }}/secret owner=mongod group=mongod mode=0400

path={{ mongodb_datadir_prefix }}/mongo-{{ inventory_hostname }} state=directory owner=mongod group=mongod

src=mongod.j2 dest=/etc/init.d/mongod-{{ inventory_hostname }} mode=0655

src=mongod.conf.j2 dest=/etc/mongod-{{ inventory_hostname }}.conf

src=secret dest={{ mongodb_datadir_prefix }}/secret owner=mongod group=mongod mode=0400

creates=/var/lock/subsys/mongod-{{ inventory_hostname }} /etc/init.d/mongod-{{ inventory_hostname }} start

src=shard_init.j2 dest=/tmp/shard_init_{{ inventory_hostname }}.js

/usr/bin/mongo localhost:{{ mongos_port }}/admin -u admin -p {{ mongo_admin_pass }} /tmp/shard_init_{{ inventory_hostname }}.js

THERE ARE {{light_info.json.lights | length}} HUE LIGHTS PRESENT

src=msm-sample-webapp-1.0-SNAPSHOT.war dest=/var/lib/tomcat/webapps/ROOT.war owner=tomcat group=tomcat

rpm -ivh /tmp/epel-release-latest-6.noarch.rpm creates=/etc/yum.repos.d/epel.repo

ansible_os_family == 'RedHat' and ansible_distribution_major_version == '6'

rpm -ivh /tmp/epel-release-latest-7.noarch.rpm creates=/etc/yum.repos.d/epel.repo

ansible_os_family == 'RedHat' and ansible_distribution_major_version == '7'

chdir=/usr/share /bin/tar xvf /opt/apache-tomcat-7.0.61.tar.gz -C /opt/ creates=/opt/apache-tomcat-7.0.61

path=/usr/share/tomcat/ owner=tomcat group=tomcat state=directory recurse=yes

mv /etc/php-fpm.d/www.conf /etc/php-fpm.d/www.disabled creates=/etc/php-fpm.d/www.disabled

chdir=/srv/ /bin/tar xvf wordpress-{{ wp_version }}.tar.gz creates=/srv/wordpress

path=/srv/wordpress/ owner=wordpress group=wordpress state=directory recurse=yes setype=httpd_sys_content_t

path=/srv/wordpress/ owner=wordpress group=wordpress state=directory recurse=yes

semanage fcontext -a -t httpd_sys_content_t "/srv/wordpress(/.*)?"

semanage fcontext -a -t httpd_sys_script_exec_t "/srv/wordpress/wp-config\.php"

semanage fcontext -a -t httpd_sys_rw_content_t "/srv/wordpress/wp-content(/.*)?"

semanage fcontext -a -t httpd_sys_script_exec_t "/srv/wordpress/.*\.php"

semanage fcontext -a -t httpd_sys_rw_content_t "/srv/wordpress/wp-content/upgrade(/.*)?"

semanage fcontext -a -t httpd_sys_rw_content_t "/srv/wordpress/wp-content/uploads(/.*)?"

semanage fcontext -a -t httpd_sys_script_exec_t "/srv/wordpress/wp-includes/.*\.php"

The {{ item.host_group }} host_group is defined in the blueprint but there is no matching Ansible inventory group called {{ item.host_group }} or there are no hosts in this group.

groups[item.host_group] is not defined or (groups[item.host_group] is defined and groups[item.host_group]|length == 0)

The 'ZOOKEEPER_SERVER' component is required by all installations.

Ranger is part of the blueprint but the database is set to 'embedded'.

(rangeradmin_hosts|length > 0 or rangerkms_hosts|length > 0) and database == 'embedded'

Atlas requires all of the following components to be present in the blueprint: INFRA_SOLR, HBASE_MASTER, HBASE_REGIONSERVER, KAFKA_BROKER.

'ATLAS_SERVER' in blueprint_all_services and ('INFRA_SOLR' not in blueprint_all_services or 'HBASE_MASTER' not in blueprint_all_services or 'HBASE_REGIONSERVER' not in blueprint_all_services or 'KAFKA_BROKER' not in blueprint_all_services)

Streamline is part of the blueprint but the database is set to 'embedded'.

Registry is part of the blueprint but the database is set to 'embedded'.

Multiple nodes are configured to run Druid components but the database is set to 'embedded'.

Amazon Linux does not support Hive with the 'embedded' database. Set the database to another option and re-run the playbooks.

database == 'embedded' and ansible_distribution|lower == "amazon" and hiveserver_hosts|length > 0

When installing HDP 3 the component {{ item }} must not be part of the blueprint.

install_hdp and hdp_major_version == '3' and item in blueprint_all_clients | union(blueprint_all_services)

When installing HDP 2 the component {{ item }} must not be part of the blueprint.

install_hdp and hdp_major_version == '2' and item in blueprint_all_clients | union(blueprint_all_services)

Some or all of the following components are missing from the blueprint: NAMENODE, DATANODE{{ (namenode_groups|length == 1) | ternary(', SECONDARY_NAMENODE',', ZKFC, JOURNALNODE') }}.

(namenode_groups|length == 1 and ['NAMENODE', 'DATANODE', 'SECONDARY_NAMENODE'] | difference(blueprint_all_services) | length > 0 ) or (namenode_groups|length > 1 and ['NAMENODE', 'DATANODE', 'ZKFC', 'JOURNALNODE'] | difference(blueprint_all_services) | length > 0 )

HA NameNode has been requested but there are less than 3 JournalNodes defined in the blueprint.

HA NameNode has been requested but the ZKFC component must be present in the nodes running the NAMENODE (only).

namenode_groups|length > 1 and (zkfc_groups|length < 2 or namenode_groups | symmetric_difference(zkfc_groups) | length > 0 )

HA NameNode has been requested but the SECONDARY_NAMENODE component is still present in the blueprint.

namenode_groups|length > 1 and 'SECONDARY_NAMENODE' in blueprint_all_services

Some or all of the following components are missing from the blueprint: NODEMANAGER, APP_TIMELINE_SERVER{{ (hdp_major_version == '3') | ternary(', YARN_REGISTRY_DNS, TIMELINE_READER','') }}.

resourcemanager_groups|length > 0 and ((hdp_major_version == '3' and ['NODEMANAGER', 'APP_TIMELINE_SERVER', 'YARN_REGISTRY_DNS', 'TIMELINE_READER'] | difference(blueprint_all_services) | length > 0 ) or (hdp_major_version == '2' and ['NODEMANAGER', 'APP_TIMELINE_SERVER'] | difference(blueprint_all_services) | length > 0 ))

Some or all of the following components are missing from the blueprint: HIVE_SERVER, HIVE_METASTORE{{ (hdp_major_version == '2') | ternary(', WEBHCAT_SERVER','') }}.

hiveserver_hosts|length > 0 and ((hdp_major_version == '3' and ['HIVE_SERVER', 'HIVE_METASTORE'] | difference(blueprint_all_services) | length > 0 ) or (hdp_major_version == '2' and ['HIVE_SERVER', 'HIVE_METASTORE', 'WEBHCAT_SERVER'] | difference(blueprint_all_services) | length > 0 ))

One or more of the following components are missing from the blueprint: DRUID_BROKER, DRUID_COORDINATOR, DRUID_ROUTER, DRUID_MIDDLEMANAGER, DRUID_HISTORICAL, DRUID_OVERLORD.

druid_hosts|length > 0 and ['DRUID_BROKER', 'DRUID_COORDINATOR', 'DRUID_ROUTER', 'DRUID_MIDDLEMANAGER', 'DRUID_HISTORICAL', 'DRUID_OVERLORD'] | difference(blueprint_all_services) | length > 0

One or more of the following components are missing from the blueprint: ACCUMULO_CLIENT, ACCUMULO_MASTER, ACCUMULO_MONITOR, ACCUMULO_TRACER, ACCUMULO_GC, ACCUMULO_TSERVER.

(['ACCUMULO_CLIENT', 'ACCUMULO_MASTER', 'ACCUMULO_MONITOR', 'ACCUMULO_TRACER', 'ACCUMULO_GC', 'ACCUMULO_TSERVER'] | difference(blueprint_all_clients | union(blueprint_all_services)) | length > 0) and (['ACCUMULO_CLIENT', 'ACCUMULO_MASTER', 'ACCUMULO_MONITOR', 'ACCUMULO_TRACER', 'ACCUMULO_GC', 'ACCUMULO_TSERVER'] | difference(blueprint_all_clients | union(blueprint_all_services)) | length < 6)

The ambari_groups list is empty. This usually means there is no 'AMBARI_SERVER' component defined in the blueprint or there is no Ansible inventory group corresponding with the name of the blueprint's host_group.

The {{ item }} host_group is defined in the blueprint but there is no matching Ansible inventory group called {{ item }} or there are no hosts in this group.

The 'hadoop-cluster' Ansible inventory group is required before continuing. Check the inventory for possible issues.

groups['hadoop-cluster'] is not defined or (groups['hadoop-cluster'] is defined and groups['hadoop-cluster']|length == 0)

The 'ambari-server' Ansible inventory group is required before continuing. Check the inventory for possible issues.

groups['ambari-server'] is not defined or (groups['ambari-server'] is defined and groups['ambari-server']|length == 0)

{{ hostvars[groups['ambari-server']|first]['install_hdpsearch'] }}

The AMI {{ outer_loop.image }} does not exist in region {{ cloud_config.region }} or it does not provide any information.

Could not get the VersionDefinition from Ambari. The following is the received information from Ambari: {{ version_definition }}

{{ lookup('template', cluster_template_file, convert_data=False) }}

Failed to build the {{ cluster_name }} cluster. Task Status is {{ (cluster_check_task.content|from_json).Requests.request_status }}.

wait and ((cluster_check_task.content|from_json).Requests.request_status == 'FAILED' or (cluster_check_task.content|from_json).Requests.request_status == 'TIMEDOUT' or (cluster_check_task.content|from_json).Requests.request_status == 'ABORTED')

echo yes | ambari-server install-mpack --mpack={{ repo_base_url }}/HDP-SOLR/hdp-solr-ambari-mp/{{ mpack_filename }}

hdf-ambari-mpack-{{ hdf_version }}-{{ hdf_build_number_auto|default(hdf_build_number) }}.tar.gz

echo yes | ambari-server install-mpack --mpack={{ hdf_main_repo_url }}/tars/hdf_ambari_mp/{{ mpack_filename }}

/var/lib/ambari-server/resources/mpacks/{{ mpack_filename | regex_replace('.tar.gz$','') }}

echo yes | ambari-server install-mpack --mpack={{ hdf_main_repo_url }}/tars/hdf_ambari_mp/{{ mpack_filename }} --purge

ambari_version is version_compare('2.6', '>=') and not install_hdp|default(false)

{{ repo_version_template | default('repo_version_template.json.j2') }}

/usr/sbin/ambari-server setup --jdbc-db=mysql --jdbc-driver={{ mysql_jdbc_location }}

/usr/sbin/ambari-server setup --jdbc-db={{ database | regex_replace('mariadb', 'mysql') }} --jdbc-driver={{ lookup('vars', database + '_jdbc_location') }}

--database={{ database | regex_replace('mariadb', 'mysql') }} --databasehost={{ database_options.external_hostname|default(ansible_fqdn,true) }} --databaseport={{ lookup('vars', database | regex_replace('mariadb', 'mysql') + '_port') }} --databasename={{ database_options.ambari_db_name }} --databaseusername={{ database_options.ambari_db_username }} --databasepassword={{ database_options.ambari_db_password }}

/usr/sbin/ambari-server setup -s {{ ambari_java_options|default("") }} {{ ambari_database_options|default("") }}

java == "openjdk" and ansible_os_family|lower == "suse" and ansible_distribution_major_version|int == 11

{{ oraclejdk_options.base_folder }}/latest/jre/lib/security/UnlimitedJCEPolicyJDK8/{{ item }}

echo never > /sys/kernel/mm/transparent_hugepage/enabled && echo never > /sys/kernel/mm/transparent_hugepage/defrag

MariaDB is not available or supported on SLES 11 and Debian/Ubuntu

database == "mariadb" and ((ansible_os_family|lower == "suse" and ansible_distribution_major_version|int == 11) or ansible_os_family|lower == "debian")

su - postgres -c "psql -c \"CREATE ROLE {{ db_username }} ENCRYPTED PASSWORD '{{ db_password_md5 }}' NOSUPERUSER NOCREATEDB NOCREATEROLE INHERIT LOGIN;\""

The user could not be created. Error is {{ createuser_results.stderr }}!

createuser_results is failed and not createuser_results.stderr is search("role .* already exists")

The database could not be created. Error is {{ createdb_results.stderr }}!

createdb_results is failed and not createdb_results.stderr is search("database .* already exists")

{{ kdc_init_command }} -r {{ security_options.realm | upper }} -P {{ security_options.kdc_master_key }}

{{ kadmin_command }} -q "add_principal -pw {{ security_options.admin_password }} {{ security_options.admin_principal }}/admin@{{ security_options.realm | upper }}"

The admin principal could not be created. Error is {{ addprinc_result.stderr }}

addprinc_result is failed or not (addprinc_result.stdout is search("Principal .* created") or addprinc_result.stderr is search("Principal or policy already exists while creating"))

msg="We need updates in Ansible 2.5.0. Please update your kit. 'pip install -U Ansible'"

firewall-cmd --zone=dmz --permanent --add-service=http --add-service=https

firewall-cmd --permanent --zone=dmz --add-rich-rule='rule family="ipv4" source address="{{ item }}/32" port port=4949 protocol="tcp" accept'

certbot certonly --nginx --email '{{ admin_email }}' --agree-tos -d '{{ item }}' {% if certbot_staging %} --staging {% endif %}

src=haproxy_enabled dest=/etc/default/haproxy owner=root group=root mode=644

/usr/sbin/haproxy -v | grep version | sed -r "s/.+version ([0-9.]+) .+/\1/"

src=haproxy.cfg.j2 dest=/etc/haproxy/haproxy.cfg owner=root group=root mode=644 backup=true

src=plone_events.j2 dest=/etc/logwatch/conf/services/plone_events.conf owner=root group=root

src=update-notify.j2 dest=/etc/logwatch/scripts/services/update-notify owner=root group=root mode=0755

src=munin-node.conf.j2 dest=/etc/munin/munin-node.conf owner=root group=root mode=644

path="/etc/munin/plugins/{{ item }}" state=link src="/usr/share/munin/plugins/{{ item }}"

path="/etc/munin/plugins/haproxy_ng" state=link src="/usr/share/munin/plugins/haproxy_ng" mode=0755

/usr/sbin/varnishd -V 2>&1 | grep varnishd | sed -r "s/.+varnish-([0-9.]+) .+/\1/"

src=monitors/varnish4_ dest=/etc/munin/plugins/varnish4_hit_rate mode=0755

path="/etc/munin/plugins/varnish4_{{ item }}" state=link src="/etc/munin/plugins/varnish4_hit_rate"

/usr/sbin/nginx -v 2>&1 >/dev/null | sed -r 'sX^.*nginx/([0-9.]+).*$X\1X'

{{ allow_http2 | default(nginx_v_result.stdout is version('1.9.5', 'ge')) }}

openssl dhparam -out /etc/nginx/ssl/dhparam.pem 2048 creates=/etc/nginx/ssl/dhparam.pem

/etc/nginx/sites-enabled/{{ item.protocol|default('http') }}_{{ item.hostname|default(inventory_hostname)|replace('.', '_') }}

{{ playbook_plones|map(attribute='webserver_virtualhosts')|list }}

/etc/nginx/conf.d/{{ item.protocol|default('http') }}_{{ item.hostname|default(inventory_hostname)|replace('.', '_') }}.conf

src=main.cf.j2 dest=/etc/postfix/main.cf owner=root group=root mode=644

src=restart_clients.sh.j2 dest="{{ restart_instance_script_path }}/restart_clients.sh" owner=root group=root mode=0544

src=restart_single_client.sh.j2 dest="{{ restart_instance_script_path }}/restart_single_client.sh" owner=root group=root mode=0544

src=restart_if_hot.py.j2 dest="{{ restart_instance_script_path }}/restart_if_hot.py" owner=root group=root mode=0544

item.plone_client_max_memory|default(plone_client_max_memory) != 0

path=/var/lib/varnish state=directory owner=varnish group=varnish

src=varnish.params.j2 dest=/etc/varnish/varnish.params backup=yes

export PATH=$PATH:/usr/local/sbin:/usr/sbin
source {{ infrared_venv }}/bin/activate
ir plugin add {{ ansible_env.HOME }}/artcl-src --src-path infrared_plugin

ir plugin list

grep 'No valid host was found' {{ ansible_user_dir }}/workspace/logs/failures_file

grep 'No valid host was found' {{ ansible_user_dir }}/workspace/logs/_No_valid_host_was_found.log

{{ artcl_commands | combine(artcl_commands_extras, recursive=True) }}

{{ combined_cmds | dict2items|selectattr("key", "in", collect_log_types) | list | items2dict | flatten_nested_dict }}

{% if not item.capture_disable | default(False) %}
exec >{% if not capture_file.startswith('/') %}/var/log/extra/{% endif %}{{ capture_file }} 2>&1
{% endif %}
{# do not put anything after the command #}
{{ item.cmd }}

{{ artcl_collect_list }} + {{ artcl_collect_list_append|default([]) }}

{{ artcl_exclude_list|default([]) }} + {{ artcl_exclude_list_append|default([]) }}

find {{ collect_list|join(' ') }} -maxdepth {{ artcl_find_maxdepth }} -type f \ -size -{{ artcl_find_max_size }}M {% if artcl_exclude_list is defined %} -not -path {{ artcl_exclude_list|map('quote')|join(' -not -path ') }} {% endif %} -print0 > /tmp/{{ inventory_hostname }}-rsync-list

set -o pipefail && rsync --quiet --recursive --copy-links --prune-empty-dirs --ignore-errors {% if artcl_rsync_collect_list|bool %} --filter '. /tmp/{{ inventory_hostname }}-rsync-filter' {% else %} --from0 --files-from=/tmp/{{ inventory_hostname }}-rsync-list {% endif %} / /tmp/{{ inventory_hostname }}; find /tmp/{{ inventory_hostname }} -type d -print0 | xargs -0 chmod 755; find /tmp/{{ inventory_hostname }} -type f -print0 | xargs -0 chmod 644; find /tmp/{{ inventory_hostname }} -not -type f -not -type d -delete; {# chown can fail with: chown: invalid spec: '0:' #} chown -R {{ ansible_user | default(ansible_effective_user_id) }}: /tmp/{{ inventory_hostname }} || true;

tar xf {{ inventory_hostname }}.tar
rm -f {{ inventory_hostname }}.tar

awk -f "{{ local_working_dir }}/usr/local/share/ansible/roles/collect-logs/scripts/doc_extrapolation.awk" \
  "{{ artcl_collect_dir }}/undercloud/home/{{ undercloud_user }}/{{ item }}.sh" > \
  "{{ artcl_docs_source_dir }}/{{ item }}.rst"

cp "{{ artcl_docs_source_dir }}/../static/{{ item }}.rst" "{{ artcl_docs_source_dir }}"

set -o pipefail && sphinx-build -b html "{{ artcl_docs_source_dir }}" "{{ artcl_docs_build_dir }}" 2>&1 {{ timestamper_cmd }} > {{ artcl_collect_dir }}/docs/sphinx_build.log

grep -q "{{ item }}" "{{ artcl_collect_dir }}/docs/build/index.html"

if [[ ! -d "{{ artcl_collect_dir }}" && ! -h "{{ artcl_collect_dir }}" ]]; then
    mkdir -p "{{ artcl_collect_dir }}"
fi

set -o pipefail && curl -k "{{ lookup('env', 'BUILD_URL') }}/timestamps/?time=yyyy-MM-dd%20HH:mm:ss.SSS%20|&appendLog&locale=en_GB" > {{ artcl_collect_dir }}/console.log

if [ -d {{ artcl_collect_dir }}/undercloud/var/log/extra/stackviz/data ]; then
    cp -r {{ artcl_collect_dir }}/undercloud/var/log/extra/stackviz {{ artcl_collect_dir }};
    gunzip -fr {{ artcl_collect_dir }}/stackviz;
fi;

if [ -d {{ artcl_collect_dir }}/undercloud/var/log/tempest/stackviz/data ]; then
    cp -r {{ artcl_collect_dir }}/undercloud/var/log/tempest/stackviz {{ artcl_collect_dir }};
fi;

cp {{ artcl_collect_dir }}/undercloud/home/stack/tempest/tempest.{xml,html}{,.gz} {{ artcl_collect_dir }} || true; gunzip {{ artcl_collect_dir }}/tempest.{xml,html}.gz || true;

cp {{ artcl_collect_dir }}/undercloud/var/log/tempest/testrepository.subunit.gz {{ artcl_collect_dir }}/testrepository.subunit.gz || true

if [ -f {{ artcl_readme_path }} ]; then
    cp {{ artcl_readme_path }} {{ artcl_readme_file }};
fi;

set -o pipefail && find {{ artcl_collect_dir }}/ -type f | awk 'function rename(orig) { new=orig; sub(/\.gz$/, ".txt.gz", new); system("mv " orig " " new) } /\.(conf|ini|json|sh|log|yaml|yml|repo|cfg|j2|py)\.gz$/ { rename($0) } /(\/var\/log\/|\/etc\/)[^ \/\.]+\.gz$/ { rename($0) }';

rsync -av --quiet -e "ssh -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null {{ artcl_report_server_key|default('') }}" {{ artcl_collect_dir }}/ {{ artcl_rsync_path }}/{{ lookup('env', 'BUILD_TAG') }}

rsync -av --quiet {{ artcl_collect_dir }}/ {{ artcl_rsync_path }}/{{ lookup('env', 'BUILD_TAG') }}

swift upload --quiet --header "X-Delete-After:{{ artcl_swift_delete_after }}" {{ artcl_swift_container }}/{{ lookup('env', 'BUILD_TAG') }} *

"{{ artcl_zuul_swift_upload_path }}/zuul_swift_upload.py --name {{ artcl_swift_container }} --delete-after {{ artcl_swift_delete_after }} {{ artcl_collect_dir }}"

{{ local_working_dir }}/bin/ara generate html {{ local_working_dir }}/ara_oooq; {{ local_working_dir }}/bin/ara task list --all -f json > {{ artcl_collect_dir }}/ara.json; cp -r {{ local_working_dir }}/ara_oooq {{ artcl_collect_dir }}/;

{{ local_working_dir }}/bin/ara generate html {{ local_working_dir }}/ara_oooq_uc; {{ local_working_dir }}/bin/ara task list --all -f json > {{ artcl_collect_dir }}/ara.oooq.uc.json; cp -r {{ local_working_dir }}/ara_oooq_uc {{ artcl_collect_dir }}/;

{{ local_working_dir }}/bin/ara generate html {{ local_working_dir }}/ara_oooq_oc; {{ local_working_dir }}/bin/ara task list --all -f json > {{ artcl_collect_dir }}/ara.oooq.oc.json; cp -r {{ local_working_dir }}/ara_oooq_oc {{ artcl_collect_dir }}/;

mkdir -p {{ artcl_collect_dir }}/{{ item.dir }}/ara-report;
cp {{ item.file }} {{ artcl_collect_dir }}/{{ item.dir }}/ara-report/ansible.sqlite;

cp /opt/opendaylight/data/log/* /var/log/extra/odl/; journalctl -u opendaylight > /var/log/extra/odl/odl_journal.log

/tmp/dstat_graph/generate_page.sh /var/log/extra/dstat-csv.log > /var/log/extra/dstat.html

echo "netstat" > /var/log/extra/network.txt; netstat -i &> /var/log/extra/network.txt; for ipv in 4 6; do
  echo "### IPv${ipv} addresses" >> /var/log/extra/network.txt;
  ip -${ipv} a &>> /var/log/extra/network.txt;
  echo "### IPv${ipv} routing" >> /var/log/extra/network.txt;
  ip -${ipv} r &>> /var/log/extra/network.txt;
  echo "### IPTables (IPv${ipv})" &>> /var/log/extra/network.txt;
  test $ipv -eq 4 && iptables-save &>> /var/log/extra/network.txt;
  test $ipv -eq 6 && ip6tables-save &>> /var/log/extra/network.txt;
done; (for NS in $(ip netns list | cut -f 1 -d " "); do
  for ipv in 4 6; do
    echo "==== $NS (${ipv})====";
    echo "### IPv${ipv} addresses";
    ip netns exec $NS ip -${ipv} a;
    echo "### IPv${ipv} routing";
    ip netns exec $NS ip -${ipv} r;
    echo "### IPTables (IPv${ipv})";
    test $ipv -eq 4 && ip netns exec $NS ip iptables-save;
    test $ipv -eq 6 && ip netns exec $NS ip ip6tables-save;
  done
  PIDS="$(ip netns pids $NS)";
  [[ ! -z "$PIDS" ]] && ps --no-headers -f --pids "$PIDS";
  echo "";
done) &>> /var/log/extra/network-netns; (for NB in $(ovs-vsctl show | grep Bridge |awk '{print $2}'); do
  echo "==== Bridge name - $NB ====";
  ovs-ofctl show $NB;
  ovs-ofctl dump-flows $NB;
  echo "";
done; ovsdb-client dump) &> /var/log/extra/network-bridges;

which openstack-status &> /dev/null && (. ~/keystonerc_admin; openstack-status &> /var/log/extra/openstack-status.txt)

if [[ -e {{ working_dir }}/stackrc ]]; then source {{ working_dir }}/stackrc; openstack server list &> /var/log/extra/nova_list.txt; fi

if [[ -e {{ working_dir }}/stackrc ]]; then source {{ working_dir }}/stackrc; openstack baremetal node list &> /var/log/extra/baremetal_list.txt; fi

{{ ansible_pkg_mgr }} list installed >/var/log/extra/package-list-installed.txt

for user in $(cut -f1 -d':' /etc/passwd); do \
echo $user; crontab -u $user -l | grep -v '^$\|^\s*\#\|^\s*PATH'; done \
&> /var/log/extra/installed_crons.txt

repoquery --disablerepo='*' --enablerepo='delorean'\
-a --qf '%{sourcerpm}'|sort -u|sed 's/.src.rpm//g' >> /var/log/extra/import-delorean.txt

repoquery --disablerepo='*' --enablerepo='delorean-*-deps'\
-a --qf '%{sourcerpm}'|sort -u|sed 's/.src.rpm//g' >> /var/log/extra/import-delorean-deps.txt

systemctl -t service --failed --no-legend | awk '{print $1}' | xargs -r -n1 journalctl -u > /var/log/extra/failed_services.txt 2>&1

pgrep haproxy && \ test -S /var/lib/haproxy/stats && \ echo 'show info;show stat;show table' | socat /var/lib/haproxy/stats stdio &> /var/log/extra/haproxy-stats.txt || \ echo "No HAProxy or no socket on host" > /var/log/extra/haproxy-stats.txt

{{ ansible_python.executable }} -m pip list &> /var/log/extra/pip.txt

systemctl list-units --full --all &> /var/log/extra/services.txt
systemctl status "*" &>> /var/log/extra/services.txt

grep -i denied /var/log/audit/audit* && grep -i denied /var/log/audit/audit* > /var/log/extra/denials.txt

grep -v ansible-command /var/log/messages | grep segfault && grep -v ansible-command /var/log/messages | grep segfault > /var/log/extra/segfaults.txt

grep -v ansible-command /var/log/messages | grep oom-killer && grep -v ansible-command /var/log/messages | grep oom-killer > /var/log/extra/oom-killers.txt

if [[ -e /home/{{ undercloud_user }}/DLRN/data/repos ]]; then rm -rf /tmp/delorean_logs && mkdir /tmp/delorean_logs; find /home/{{ undercloud_user }}/DLRN/data/repos/ -name '*.log' -exec cp --parents \{\} /tmp/delorean_logs/ \; ; find /home/{{ undercloud_user }}/DLRN/ -name 'projects.ini' -exec cp \{\} /tmp/delorean_logs/ \; ; find /tmp/delorean_logs -name '*.log' -exec gzip \{\} \; ; find /tmp/delorean_logs -name '*.log.gz' -exec sh -c 'x="{}"; mv "$x" "${x%.log.gz}.log.txt.gz"' \; ; rm -rf {{ artcl_collect_dir }}/delorean_logs && mkdir {{ artcl_collect_dir }}/delorean_logs; mv /tmp/delorean_logs/home/{{ undercloud_user }}/DLRN/data/repos/* {{ artcl_collect_dir }}/delorean_logs/; mv /tmp/delorean_logs/projects.ini {{ artcl_collect_dir }}/delorean_logs/; fi

grep -rE '^[-0-9]+ [0-9:\.]+ [0-9 ]*ERROR ' /var/log/ | sed "s/\(.*\)\(20[0-9][0-9]-[0-9][0-9]-[0-9][0-9] [0-9][0-9]:[0-9][0-9]:[0-9][0-9]\.[0-9]\+\)\(.*\)/\2 ERROR \1\3/g" > /tmp/errors.txt; if (( $(stat -c "%s" /tmp/errors.txt) > 10485760 )); then
  ERR_NAME=big-errors.txt;
else
  ERR_NAME=errors.txt;
fi; mv /tmp/errors.txt /var/log/extra/${ERR_NAME}.txt

for i in {{ artcl_logstash_files|default([])|join(" ") }}; do cat $i; done | grep "^20.*|" | sort -sk1,2 | sed "s/\(20[0-9][0-9]-[0-9][0-9]-[0-9][0-9] [0-9][0-9]:[0-9][0-9]:[0-9][0-9]\.*[0-9]*\)\(.*\)/\1 INFO \2/g" > /var/log/extra/logstash.txt

{{ molecule_ephemeral_directory }}/Dockerfile_{{ item.image | regex_replace('[^a-zA-Z0-9_]', '_') }}

telegraf={{ telegraf_agent_version }}-{{ telegraf_agent_version_patch }}

sysrc telegraf_flags="-quiet -config-directory=/usr/local/etc/telegraf.d"

openssl req -new -key {{ certs_dir }}/domain.key -out {{ certs_dir }}/csr.csr -subj "/CN={{ commonName }}"

{ cat {{ certs_dir }}/cert.crt & wget -O - {{ intermediate_cert }}; } > {{ certs_dir }}/chained.pem

src=templates/atomfeed-console.yml.j2 dest=/etc/atomfeed-console/atomfeed-console.yml mode=644 owner={{ atomfeed_console_user }} group={{ atomfeed_console_group }}

iptables -nL --line-numbers | grep ATOMFEED_CONSOLE  -m 1 | cut -c 1-2

/sbin/iptables -I INPUT 1 -p tcp --dport {{ atomfeed_console_port }} -j ACCEPT -m comment --comment "ATOMFEED_CONSOLE"

src=templates/atomfeed_console_ssl.conf.j2 dest=/etc/httpd/conf.d/atomfeed_console_ssl.conf mode=644 owner={{ bahmni_user }} group={{ bahmni_group }}

path={{item.backup_to_path}} owner=bahmni group=bahmni mode=0755 state=directory

artifacts_to_backup="{{artifacts_to_backup|default([]) + [item.item.name] }}"

tar  -C $(dirname  {{item.backup_from_path}} ) -czvf {{backup_temp_dest_dir}}/$(date +%Y-%m-%d_%H%M%S)-{{item.name}}.tar.gz $(basename {{item.backup_from_path}}) 2>{{backup_log_file}}; chown bahmni:bahmni {{backup_temp_dest_dir}}/$(ls -t {{backup_temp_dest_dir}} | grep {{item.name}}); chmod 0755 {{backup_temp_dest_dir}}/$(ls -t {{backup_temp_dest_dir}} | grep {{item.name}}); cp -rp  {{backup_temp_dest_dir}}/$(ls -t {{backup_temp_dest_dir}} | grep {{item.name}}) {{item.backup_to_path}} 2>{{backup_log_file}};

artifacts_to_backup is defined and item.name in artifacts_to_backup

tar  -C $(dirname  {{item.backup_from_path}} ) -czvf {{backup_temp_dest_dir}}/$(date +%Y-%m-%d_%H%M%S)-{{item.name}}.tar.gz $(basename {{item.backup_from_path}}) 2>{{backup_log_file}}; chown bahmni:bahmni {{backup_temp_dest_dir}}/$(ls -t {{backup_temp_dest_dir}} | grep {{item.name}}); chmod 0755 {{backup_temp_dest_dir}}/$(ls -t {{backup_temp_dest_dir}} | grep {{item.name}}); cp -rp {{backup_temp_dest_dir}}/$(ls -t {{backup_temp_dest_dir}} | grep {{item.name}}) {{item.backup_to_path}} 2>{{backup_log_file}};

path={{item}} owner=bahmni group=bahmni mode=0755 state=directory

path={{item}} owner={{ bahmni_user }} group={{ bahmni_group }} mode=0755 state=directory

Please specify timezone to be set to the server by adding value for key 'timezone' in /etc/bahmni-installer/setup.yml. Example, timezone: Asia/Kolkata. Take a look at https://en.wikipedia.org/wiki/List_of_tz_database_time_zones for available timezones 

msg="Timezone specified in /etc/bahmni-installer/setup.yml is incorrect. Example - Asia/Kolkata. Take a look at https://en.wikipedia.org/wiki/List_of_tz_database_time_zones for available time zones"

src=/usr/share/zoneinfo/{{ timezone }}  dest=/etc/localtime state=link force=yes

src=/etc/bahmni-installer/deployment-artifacts/openmrs_backup.sql dest=/etc/bahmni-installer/deployment-artifacts/openmrs_backup.sql mode=644 owner={{ bahmni_user }} group={{ bahmni_group }}

src=openmrs.conf.j2 dest={{ openmrs_install_dir }}/etc/openmrs.conf mode=644 owner={{ bahmni_user }} group={{ bahmni_group }}

src=bahmnicore.properties.j2 dest={{ openmrs_install_dir }}/bahmnicore.properties mode=644 owner={{ bahmni_user }} group={{ bahmni_group }}

src=rulesengine-concept.properties.j2 dest={{ openmrs_install_dir }}/rulesengine-concept.properties mode=644 owner={{ bahmni_user }} group={{ bahmni_group }}

src=openmrs-runtime.properties.j2 dest={{ openmrs_install_dir }}/etc/openmrs-runtime.properties mode=644 owner={{ bahmni_user }} group={{ bahmni_group }}

/sbin/iptables -I INPUT 1 -p tcp --dport  {{ openmrs_port }} -j ACCEPT -m comment --comment "OPENMRS"

mysql --user={{ mysql_root_user }} --password={{ mysql_root_password }} openmrs --host={{ groups['bahmni-emr-db'][0] }} --batch --skip-column-names --execute="SELECT salt from users where username='{{ openmrs_user_id }}' or system_id='{{ openmrs_user_id }}';"

python -c "import hashlib; print(hashlib.sha512(('{{ openmrs_user_password }}'+'{{ salt.stdout }}').encode()).hexdigest())"

mysql --user={{mysql_root_user}} --password={{mysql_root_password}} openmrs --host={{ groups['bahmni-emr-db'][0] }} --batch --skip-column-names --execute="UPDATE users set password='{{ hashedPassword.stdout }}' where username='{{ openmrs_user_id }}' or system_id='{{ openmrs_user_id }}';"

mysql --user={{mysql_root_user}} --password={{mysql_root_password}} openmrs --host={{ groups['bahmni-emr-db'][0] }} --batch --skip-column-names --execute="UPDATE global_property set property_value='{{ openmrs_user_password }}' where property='scheduler.password' ;"

src=/etc/bahmni-installer/deployment-artifacts/modules/ dest=/etc/bahmni-installer/deployment-artifacts/modules/ owner={{ bahmni_user }} group={{ bahmni_group }} mode=644

src=bahmni-two-factor-auth.conf.j2 dest=/opt/bahmni-two-factor-auth/etc/bahmni-two-factor-auth.conf mode=644 owner={{ bahmni_user }} group={{ bahmni_group }}

src=bahmni-two-factor-auth.properties.j2 dest=/opt/bahmni-two-factor-auth/etc/application.properties mode=755 owner={{ bahmni_user }} group={{ bahmni_group }}

src=getversion.py dest=/var/www/cgi-bin/ mode=755 owner={{ bahmni_user }} group={{ bahmni_group }}

src=emr_ssl.conf.j2 dest=/etc/httpd/conf.d/emr_ssl.conf mode=644 owner={{ bahmni_user }} group={{ bahmni_group }}

src=systemdate.sh dest=/var/www/cgi-bin/systemdate mode=755 owner={{ bahmni_user }} group={{ bahmni_group }}

wget -q -O {{ postgres_repo_rpm_location }} {{postgres_repo_download_url}} creates={{ postgres_repo_rpm_location }}

src=/etc/bahmni-installer/deployment-artifacts/openerp_backup.sql dest=/etc/bahmni-installer/deployment-artifacts/openerp_backup.sql mode=644 owner={{ bahmni_user }} group={{ bahmni_group }}

src=openerp-server.conf.j2 dest=/etc/openerp/openerp-server.conf owner=openerp group=openerp mode=0655

/sbin/iptables -I INPUT 1 -p tcp --dport  {{ openerp_port }} -j ACCEPT -m comment --comment "BAHMNIERP"

src=bahmni-erp-connect.conf.j2 dest=/opt/bahmni-erp-connect/etc/bahmni-erp-connect.conf owner=bahmni group=bahmni mode=0644

src=erp-atomfeed.properties.j2 dest=/opt/bahmni-erp-connect/bahmni-erp-connect/WEB-INF/classes/erp-atomfeed.properties mode=644 owner={{ bahmni_user }} group={{ bahmni_group }}

src=bahmni-event-log-service.conf.j2 dest=/opt/bahmni-event-log-service/etc/bahmni-event-log-service.conf mode=644 owner={{ bahmni_user }} group={{ bahmni_group }}

src=bahmni-event-log-service-application.properties.j2 dest=/opt/bahmni-event-log-service/bahmni-event-log-service/WEB-INF/classes/application.properties mode=755 owner={{ bahmni_user }} group={{ bahmni_group }}

iptables -nL --line-numbers | grep BAHMNIEVENTLOGSERVICE  -m 1 | cut -c 1-2

/sbin/iptables -I INPUT 1 -p tcp --dport  {{ bahmni_event_log_service_port }} -j ACCEPT -m comment --comment "BAHMNIEVENTLOGSERVICE"

src=bahmni_eventlog_ssl.conf.j2 dest=/etc/httpd/conf.d/bahmni_eventlog_ssl.conf mode=644 owner={{ bahmni_user }} group={{ bahmni_group }}

src=/etc/bahmni-installer/deployment-artifacts/openelis_backup.sql dest=/etc/bahmni-installer/deployment-artifacts/openelis_backup.sql mode=644 owner={{ bahmni_user }} group={{ bahmni_group }}

src=bahmni-lab.conf.j2 dest=/etc/bahmni-lab/bahmni-lab.conf mode=644 owner={{ bahmni_user }} group={{ bahmni_group }}

src=hibernate.cfg.xml.j2 dest=/opt/bahmni-lab/bahmni-lab/WEB-INF/classes/us/mn/state/health/lims/hibernate/hibernate.cfg.xml mode=644 owner={{ bahmni_user }} group={{ bahmni_group }}

src=log4j.xml.j2 dest=/opt/bahmni-lab/bahmni-lab/WEB-INF/classes/ mode=644 owner={{ bahmni_user }} group={{ bahmni_group }}

src=atomfeed.properties.j2 dest=/opt/bahmni-lab/bahmni-lab/WEB-INF/classes/atomfeed.properties mode=644 owner={{ bahmni_user }} group={{ bahmni_group }}

/sbin/iptables -I INPUT 1 -p tcp --dport  {{ bahmni_lab_port }} -j ACCEPT -m comment --comment "BAHMNILAB"

src=bahmnilab_ssl.conf.j2 dest=/etc/httpd/conf.d/bahmnilab_ssl.conf mode=644 owner={{ bahmni_user }} group={{ bahmni_group }}

src=/etc/bahmni-installer/deployment-artifacts/odoo_backup.sql dest=/etc/bahmni-installer/deployment-artifacts/odoo_backup.sql mode=644 owner={{ bahmni_user }} group={{ bahmni_group }}

src=odoo.conf.j2 dest=/etc/odoo.conf owner=odoo group=odoo mode=0655

src=bahmni-reports.conf.j2 dest=/opt/bahmni-reports/etc/bahmni-reports.conf mode=644 owner={{ bahmni_user }} group={{ bahmni_group }}

src=bahmni-reports.properties.j2 dest=/opt/bahmni-reports/etc/bahmni-reports.properties mode=644 owner={{ bahmni_user }} group={{ bahmni_group }}

iptables -nL --line-numbers | grep BAHMNIREPORTS  -m 1 | cut -c 1-2

/sbin/iptables -I INPUT 1 -p tcp --dport  {{ bahmni_reports_port }} -j ACCEPT -m comment --comment "BAHMNIREPORTS"

src=bahmni_reports_ssl.conf.j2 dest=/etc/httpd/conf.d/bahmni_reports_ssl.conf mode=644 force=yes owner={{ bahmni_user }} group={{ bahmni_group }}

artifacts_to_restore="{{artifacts_to_restore|default([]) + [item.item.name] }}"

cp -r {{item.restore_to_path}}{{item.name}} {{item.restore_to_path}}{{item.name}}_old/

artifacts_to_restore is defined and item.name in artifacts_to_restore

tar -xzvf {{item.restore_from_path}}/$(ls -A1 {{item.restore_from_path}} | grep {{item.name}} | tail -1) -C {{restore_temp_dest_dir}}  2>{{restore_log_file}}; cp -rp {{restore_temp_dest_dir}}/{{item.name}} {{item.restore_to_path}} 2>{{restore_log_file}};

tar -xzvf {{item.restore_from_path}}/$(ls -A1 {{item.restore_from_path}} | grep {{item.name}} | tail -1)  -C {{restore_temp_dest_dir}}  2>{{restore_log_file}}; cp -rp {{restore_temp_dest_dir}}/{{item.name}} {{item.restore_to_path}} 2>{{restore_log_file}};

src=ssl.conf.j2 dest=/etc/httpd/conf.d/ssl.conf mode=644 owner={{ bahmni_user }} group={{ bahmni_group }}

/sbin/iptables -I INPUT 1 -p tcp --dport  {{ dchm4chee_port }} -j ACCEPT -m comment --comment "DCM4CHEE"

/sbin/iptables -I INPUT 1 -p tcp --dport  {{ dcm4chee_imagestorage_port }} -j ACCEPT -m comment --comment "dcm4cheeimagestorage"

src=oviyam2-1-config.xml.j2 dest=/opt/dcm4chee/etc/oviyam2-1-config.xml mode=644 owner={{ bahmni_user }} group={{ bahmni_group }}

src=server.xml.j2 dest=/opt/dcm4chee/etc/server.xml mode=644 owner={{ bahmni_user }} group={{ bahmni_group }}

src=dcm4chee.conf.j2 dest=/opt/dcm4chee/etc/dcm4chee.conf mode=644 owner={{ bahmni_user }} group={{ bahmni_group }}

src=pacs-postgres-ds.xml.j2 dest=/opt/dcm4chee/etc/pacs-postgres-ds.xml mode=644 owner={{ bahmni_user }} group={{ bahmni_group }}

src=orm2dcm_bahmni.xsl.j2 dest=/opt/dcm4chee/etc/orm2dcm_bahmni.xsl mode=644 owner={{ bahmni_user }} group={{ bahmni_group }}

path={{ dcm4chee_archive_dir }} owner={{ bahmni_user }} group={{ bahmni_group }} mode=0755 state=directory

src={{ dcm4chee_archive_dir }} dest={{ dcm4chee_archive_dir_link }} owner={{ bahmni_user }} group={{ bahmni_group }} state=link

src=dcm4chee_ssl.conf.j2 dest=/etc/httpd/conf.d/dcm4chee_ssl.conf force=yes mode=644 owner={{ bahmni_user }} group={{ bahmni_group }}

wget -q -p -O {{ java_rpm_location }} --no-check-certificate --no-cookies --header 'Cookie:oraclelicense=accept-securebackup-cookie' {{java_download_url}} creates={{ java_rpm_location }}

{{ downloaded_java.stat.exists == false  }} or {{ force_new_java_download == true }}

iptables -nL --line-numbers | grep "WEB SERVER"  -m 1 | cut -c 1-2

/sbin/iptables -I INPUT 1 -p tcp --dport  80 -j ACCEPT -m comment --comment "WEB SERVER"

/sbin/iptables -I INPUT 1 -p tcp --dport  443 -j ACCEPT -m comment --comment "https"

path=/etc/bahmni-certs state=directory owner={{ bahmni_user }} group={{ bahmni_group }} mode=755

src=index.html.j2 dest=/var/www/html/index.html mode=644 owner={{ bahmni_user }} group={{ bahmni_group }}

path=/var/www/bahmni_revisions state=directory owner={{ bahmni_user }} group={{ bahmni_group }} mode=755

src=bahmni_openmrs_revision.json dest=/var/www/bahmni_revisions/. mode=644 owner={{ bahmni_user }} group={{ bahmni_group }}

src=bahmni_openerp_revision.json dest=/var/www/bahmni_revisions/. mode=644 owner={{ bahmni_user }} group={{ bahmni_group }}

src=bahmni_openelis_revision.json dest=/var/www/bahmni_revisions/. mode=644 owner={{ bahmni_user }} group={{ bahmni_group }}

httpd_html_dir.stat.exists == True and maintenance_status == 'start'

path=/var/www/bahmni_config state=directory owner={{ bahmni_user }} group={{ bahmni_group }} mode=755 recurse=yes

src=/var/www/bahmni_config/openmrs/obscalculator  dest=/opt/openmrs/obscalculator state=link owner={{ bahmni_user }} group={{ bahmni_group }}

src=/var/www/bahmni_config/openmrs/ordertemplates  dest=/opt/openmrs/ordertemplates state=link owner={{ bahmni_user }} group={{ bahmni_group }}

src=/var/www/bahmni_config/openmrs/encounterModifier  dest=/opt/openmrs/encounterModifier state=link owner={{ bahmni_user}} group={{ bahmni_group }}

src=/var/www/bahmni_config/openmrs/patientMatchingAlgorithm  dest=/opt/openmrs/patientMatchingAlgorithm state=link owner={{ bahmni_user }} group={{ bahmni_group }}

src=/var/www/bahmni_config/openmrs/elisFeedInterceptor  dest=/opt/openmrs/elisFeedInterceptor state=link owner={{ bahmni_user }} group={{ bahmni_group }}

src=/var/www/bahmni_config/openmrs/observationsAdder  dest=/opt/openmrs/observationsAdder state=link owner={{ bahmni_user }} group={{ bahmni_group }}

src=/var/www/bahmni_config dest=/opt/openmrs/bahmni_config state=link owner={{ bahmni_user }} group={{ bahmni_group }}

Please specify implementation name 'implementation_name' in /etc/bahmni-installer/setup.yml. Bahmni will pick the config from /etc/bahmni-installer/deployment-artifacts/. Example, implementation_name: default

path=/etc/bahmni-installer state=directory mode=0755 owner={{ bahmni_user }} group={{ bahmni_group }}

path=/etc/bahmni-installer/deployment-artifacts state=directory mode=0755 owner={{ bahmni_user }} group={{ bahmni_group }}

path=/etc/bahmni-installer/atomfeed-backup state=directory mode=0755 owner={{ bahmni_user }} group={{ bahmni_group }}

src=bahmni.conf.j2 dest=/etc/bahmni-installer/bahmni.conf mode=644 owner={{ bahmni_user }} group={{ bahmni_group }}

path=/etc/bahmni-installer/deployment-artifacts/modules state=directory owner=bahmni group=bahmni mode=0755 recurse=yes

/sbin/iptables -A INPUT -i lo -j ACCEPT -m comment --comment "lo"

/sbin/iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT

/sbin/iptables -A INPUT -p tcp --dport 22 -j ACCEPT -m comment --comment "SSH"

path=/var/log/mysql state=directory mode=0755 owner=mysql group=mysql

grep 'temporary password' /var/log/mysqld.log | awk '{print $11}'

mysql -e "SET PASSWORD = PASSWORD('{{ mysql_root_password }}'); FLUSH PRIVILEGES;" --connect-expired-password -u root -i -p'{{ mysql_temp_password.stdout }}'

mysql -e "UPDATE mysql.user SET authentication_string=PASSWORD('{{mysql_root_password}}') WHERE User='root'; FLUSH PRIVILEGES;" -u root -i -p'{{mysql_old_root_password}}'

/sbin/iptables -I INPUT 1 -p tcp --dport 3306 -j ACCEPT -m comment --comment "MYSQL"

mysql -u{{mysql_root_user}} -p{{mysql_root_password}} -e 'SHOW DATABASES;' | grep {{db}}

echo `date +%Y%m%d-%H:%M:%S` STARTED : Taking backup using mysql dump >> {{log_file}}

mysqldump -u{{mysql_root_user}} -p{{mysql_root_password}} --routines --databases {{db}} | grep -v 'SQL SECURITY DEFINER' | gzip  > {{backup_path}}/{{db}}_dump_{{time.stdout}}.sql.gz

echo `date +%Y%m%d-%H:%M:%S` ENDED : Taking backup using mysql dump >> {{log_file}}

echo `date +%Y%m%d-%H:%M:%S` STARTED : Taking backup using Xtrabackup, Strategy:{{strategy}} >> {{log_file}}

touch {{backup_path}}/backup_info.txt; cat {{backup_path}}/backup_info.txt|tail -n 1|cut -f 3 -d ' '

echo `date +%Y%m%d%H%M%S` 'type:{{strategy}}' 'basedir:{{latest_backup_dir}}' 'incrementaldir:{{backup_path}}/{{ time.stdout }}_{{strategy}}' >>/var/log/bahmni-backup.log

xtrabackup --user={{mysql_root_user}} --password={{mysql_root_password}}  --backup --target-dir={{backup_path}}/{{ time.stdout }}_full/ --databases {{db}}

(strategy == "full") or (strategy == "incr" and result_files.matched == 0)

echo `date +%Y%m%d%H%M%S` 'full {{ time.stdout }}_full' >> {{backup_path}}/backup_info.txt

mysqldump -u {{mysql_root_user}}  --password={{mysql_root_password}} --no-data --routines {{db}} >{{backup_path}}/{{ time.stdout }}_full/{{db}}_schema.sql

echo `date +%Y%m%d%H%M%S` '{{strategy}} {{ time.stdout }}_{{strategy}}' >> {{backup_path}}/backup_info.txt

echo `date +%Y%m%d-%H:%M:%S` COMPLETED : Full backup using Xtrabackup to dir:{{backup_path}}/{{ time.stdout }}_full/  >> {{log_file}}

xtrabackup --user={{mysql_root_user}} --password={{mysql_root_password}} --backup --target-dir={{backup_path}}/{{ time.stdout }}_incr/  --incremental-basedir={{ latest_backup_dir }}/ --databases {{db}}

mysqldump -u {{mysql_root_user}}  --password={{mysql_root_password}} --no-data --routines {{db}} >{{backup_path}}/{{ time.stdout }}_incr/{{db}}_schema.sql

echo `date +%Y%m%d%H%M%S` '{{strategy}} {{ time.stdout }}_{{strategy}} {{base_directory.stdout}}' >> {{backup_path}}/backup_info.txt

echo `date +%Y%m%d-%H:%M:%S` COMPLETED : Incremental backup using Xtrabackup to dir:{{backup_path}}/{{ time.stdout }}_incr/  >> {{log_file}}

ls -1tr {{backup_path}} |grep _full|tail -n{{retention_limit}} |head -1

rsync -avP -e ssh {{backup_path}} {{sync.user}}@{{sync.host}}:{{sync.path}}

not( (sync.host is undefined) or (sync.host is none) or (sync.host | trim == '') )

mysql -u{{ mysql_root_user }} -p{{ mysql_root_password }} -e'drop database {{db}};';

echo `date +%Y%m%d-%H:%M:%S` STARTED : Restoring dump {{restore_path}}/{{restore_point}}  >> {{log_file}}

gunzip -c {{restore_path}}/{{restore_point}} | mysql -u{{ mysql_root_user }} -p{{ mysql_root_password }}

echo `date +%Y%m%d-%H:%M:%S` COMPLETED : Restoring dump {{restore_path}}/{{restore_point}}  >> {{log_file}}

echo `date +%Y%m%d-%H:%M:%S` STARTED : Restore using xtrabackup {{restore_path}}/{{restore_point}}  >> {{log_file}}

mysql -u{{ mysql_root_user }} -p{{ mysql_root_password }} -e'create database {{db}};';

mysql -u{{ mysql_root_user }} -p{{ mysql_root_password }} -e'set global foreign_key_checks=0;'

cat {{restore_path}}/{{restore_point}}/{{db}}_schema.sql | mysql -u{{ mysql_root_user }} -p{{ mysql_root_password }} {{db}}

chmod 660 /var/lib/mysql/{{db}}/*.ibd; chown mysql:mysql /var/lib/mysql/{{db}}/*.ibd;

mysql -u{{ mysql_root_user }} -p{{ mysql_root_password }} -e'set global foreign_key_checks=1;'

echo `date +%Y%m%d-%H:%M:%S` COMPLETED : Restore using xtrabackup {{restore_path}}/{{restore_point}}  >> {{log_file}}

path=/opt/mysql-replication group={{bahmni_group}} owner={{bahmni_user}} mode=0755 state=directory recurse=yes

mysqldump -u{{mysql_root_user}} -p{{mysql_root_password}} --routines --all-databases | grep -v 'SQL SECURITY DEFINER' | gzip  > /opt/mysql-replication/mysql_dump.sql.gz

src=/tmp/mysql_dump.sql.gz dest=/opt/mysql-replication/ mode=644 owner={{ bahmni_user }} group={{ bahmni_group }}

gunzip -c /opt/mysql-replication/mysql_dump.sql.gz | mysql -u{{ mysql_root_user }} -p{{ mysql_root_password }}

src=ssmtp.conf dest=/etc/ssmtp/ssmtp.conf owner=root group=nagios mode=0664

src=revaliases dest=/etc/ssmtp/revaliases owner=root group=nagios mode=0664

Please specify email id to which nagios mail notifications should be sent by adding value for key 'nagios_contact_email' in /etc/bahmni-installer/setup.yml. Example, nagios_contact_email: abc@gmail.com

/sbin/iptables -I INPUT 1 -p tcp --dport 80 -j ACCEPT -m comment --comment "ApacheHttp"

src=cgi.cfg dest=/etc/nagios/cgi.cfg owner=root group=nagios mode=0664

src=nagios.cfg dest=/etc/nagios/nagios.cfg owner=root group=nagios mode=0664

src=commands.cfg dest=/etc/nagios/objects/commands.cfg owner=root group=nagios mode=0664

src=templates.cfg dest=/etc/nagios/objects/templates.cfg owner=root group=nagios mode=0664

src=contacts.cfg dest=/etc/nagios/objects/contacts.cfg owner=root group=nagios mode=0664

src=localhost.cfg dest=/etc/nagios/objects/localhost.cfg owner=root group=nagios mode=0664

src=hosts.cfg dest=/etc/nagios/objects/hosts.cfg owner=root group=nagios mode=0664

src=hostgroups.cfg dest=/etc/nagios/objects/hostgroups.cfg owner=root group=nagios mode=0664

src=services.cfg dest=/etc/nagios/objects/services.cfg owner=root group=nagios mode=0664

src=timeperiods.cfg dest=/etc/nagios/objects/timeperiods.cfg owner=root group=nagios mode=0664

src=nagios.conf dest=/etc/httpd/conf.d/nagios.conf owner=root group=root mode=0664

src=nrpe.cfg dest=/etc/nagios/nrpe.cfg owner=root group=root mode=0644

src={{ item }} dest=/usr/lib64/nagios/plugins/{{ item }} mode=0755 owner=root group=root

/sbin/iptables -I INPUT 1 -p tcp --dport 5666 -j ACCEPT -m comment --comment "NagiosNRPE"

alternatives --install "/usr/bin/java" "java" "/usr/java/default/bin/java" 2000

alternatives --install "/usr/bin/javac" "javac" "/usr/java/default/bin/javac" 2000

alternatives --install "/usr/bin/jar" "jar" "/usr/java/default/bin/jar" 2000

src=pacs-integration.conf.j2 dest=/opt/pacs-integration/etc/pacs-integration.conf mode=644 owner={{ bahmni_user }} group={{ bahmni_group }}

src=atomfeed.properties.j2 dest=/opt/pacs-integration/pacs-integration/WEB-INF/classes/atomfeed.properties mode=644 owner={{ bahmni_user }} group={{ bahmni_group }}

src=application.properties.j2 dest=/opt/pacs-integration/pacs-integration/WEB-INF/classes/application.properties mode=644 owner={{ bahmni_user }} group={{ bahmni_group }}

iptables -nL --line-numbers | grep PACSINTEGRATION  -m 1 | cut -c 1-2

/sbin/iptables -I INPUT 1 -p tcp --dport  {{ pacs_integration_port }} -j ACCEPT -m comment --comment "PACSINTEGRATION"

path={{ postgres.path }} state=directory owner=postgres group=postgres mode=777

cd /;sudo -u postgres pgbackrest --stanza=bahmni-postgres --type=full --log-level-console=info backup 2>>{{ logfile }}

cd /;sudo -u postgres pgbackrest --stanza=bahmni-postgres --type=incr --log-level-console=info backup 2>>{{ logfile }}

pg_dump -Upostgres --create  {{ options }} | gzip > {{postgres.path}}/{{options}}/{{ options }}_dump_{{ time.stdout }}.sql.gz

wget -q -O - \https://github.com/pgbackrest/pgbackrest/archive/release/1.12.tar.gz | \tar zx -C /home/bahmni/

cp -R "/home/bahmni/pgbackrest-release-1.12/lib/pgBackRest" /usr/share/perl5/

cp -R "/home/bahmni/pgbackrest-release-1.12/bin/pgbackrest" /usr/bin/pgbackrest; chmod 777 /usr/bin/pgbackrest;

path=/var/log/pgbackrest state=directory mode=777 owner=postgres group=postgres

path=/var/lib/pgbackrest state=directory mode=777 owner=postgres group=postgres

pgbackrest --stanza=bahmni-postgres --log-level-console=info stanza-create

gunzip -c {{postgres.path}}/{{options}}/{{ restore_point }} | psql -U postgres

path=/var/lib/pgsql/{{ postgres_version }}/data/recovery.conf state=absent

inventory_hostname in groups['bahmni-lab-db'] or inventory_hostname in groups['bahmni-erp-db'] or inventory_hostname in groups['pacs-integration-db'] or inventory_hostname in groups['dcm4chee-db']

/sbin/iptables -I INPUT 1 -p tcp --dport  5432 -j ACCEPT -m comment --comment "POSTGRES"

{{ inventory_hostname in groups['bahmni-lab-db'] or inventory_hostname in groups['bahmni-erp-db'] or inventory_hostname in groups['pacs-integration-db'] or inventory_hostname in groups['dcm4chee-db'] }}

path=/var/lib/pgsql/{{ postgres_version }}/data-backup state=absent

mv -f /var/lib/pgsql/{{ postgres_version }}/data /var/lib/pgsql/{{ postgres_version }}/data-backup

sudo -u postgres pg_basebackup -h {{ master_db }} -D /var/lib/pgsql/{{ postgres_version }}/data -U {{ replication_user }} -v -P --xlog-method=stream

src=recovery.conf.j2 dest=/var/lib/pgsql/{{ postgres_version }}/data/recovery.conf mode=644 owner=postgres group=postgres

msg="You will have to reboot machine to have selinux enabled. Reboot and trigger installation again. If you wish to disable selinux, set 'selinux_state' to permissive or disabled in /etc/bahmni-installer/setup.yml"

checkmodule -M -m -o /tmp/bahmni_httpd_home_dir.mod /tmp/bahmni_httpd_home_dir.te

semodule_package -o /tmp/bahmni_httpd_home_dir.pp -m /tmp/bahmni_httpd_home_dir.mod

{{ container_exec_cmd | default('') }} ceph --cluster {{ cluster }} osd set noup

{{ container_exec_cmd | default('') }} ceph --cluster {{ cluster }} osd unset noup

Playbook has complete.
However, note that it will be deprecated in a future release.
You can achieve the same goal using the main playbook with --limit

WARNING: {{ inventory_hostname }} is already using bluestore. Skipping all tasks.

"Exiting lv-teardown playbook, logical volumes were NOT torn down.
 To tear down the logical volumes, either say 'yes' on the prompt or
 or use `-e ireallymeanit=yes` on the command line when
 invoking the playbook"

"Exiting purge-cluster playbook, cluster was NOT purged.
 To purge the cluster, either say 'yes' on the prompt or

ceph-radosgw@rgw.{{ ansible_hostname }}.{{ item.instance_name }}

if [ -d /var/lib/ceph/osd ] ; then ls /var/lib/ceph/osd | sed 's/.*-//' ; fi

blkid -t TYPE=crypto_LUKS -s PARTLABEL -s PARTUUID | grep "ceph.*." | grep -o PARTUUID.* | cut -d '"' -f 2

(grep /var/lib/ceph/osd /proc/mounts || echo -n) | awk '{ print $2 }'

cryptsetup luksDump /dev/disk/by-partuuid/{{ item }} | awk '/Payload offset:/ { print $3 }'

dd if=/dev/zero of=/dev/disk/by-partuuid/{{ item.0 }} bs={{ item.1.stdout }} count={{ item.2.stdout }} oflag=direct

{{ ceph_data_partition_to_erase_path.stdout_lines + ceph_lockbox_partition_to_erase_path.stdout_lines + ceph_block_partition_to_erase_path.stdout_lines + ceph_journal_partition_to_erase_path.stdout_lines + ceph_db_partition_to_erase_path.stdout_lines + ceph_wal_partition_to_erase_path.stdout_lines }}

{{ tmp_resolved_parent_device.results | map(attribute='stdout') | list | unique }}

wipefs --all "{{ item }}"
dd if=/dev/zero of="{{ item }}" bs=1 count=4096

# if the disk passed is a raw device AND the boot system disk
if parted -s /dev/"{{ item }}" print | grep -sq boot; then
  echo "Looks like /dev/{{ item }} has a boot partition,"
  echo "if you want to delete specific partitions point to the partition instead of the raw device"
  echo "Do not use your system disk!"
  exit 1
fi
sgdisk -Z --clear --mbrtogpt -g -- /dev/"{{ item }}"
dd if=/dev/zero of=/dev/"{{ item }}" bs=1M count=200
parted -s /dev/"{{ item }}" mklabel gpt
partprobe /dev/"{{ item }}"
udevadm settle --timeout=600

"Exiting purge-container-cluster playbook, cluster was NOT purged.

echo {{ item.path | basename }} > /sys/bus/rbd/remove_single_major

systemctl list-units | grep 'loaded[[:space:]]\+active' | grep -oE "ceph-osd@([0-9]+).service"

{{ container_binary }} container prune{% if container_binary == 'docker' %} -f{% endif %}

{{ container_binary }} rmi {{ ceph_docker_registry }}/{{ ceph_docker_image }}:{{ ceph_docker_image_tag }}

"You have aborted the purge of the iSCSI gateway configuration"

"Exiting rolling_update.yml playbook, cluster was NOT upgraded.
 To upgrade the cluster, either say 'yes' on the prompt or
 use `-e ireallymeanit=yes` on the command line when

Upgrade of cluster with less than three monitors is not supported.

{{ groups[mon_group_name] | difference([inventory_hostname]) | last }}

ceph --cluster "{{ cluster }}" -m "{{ hostvars[groups[mon_group_name][0]]['_current_monitor_address'] }}" -s --format json

(hostvars[inventory_hostname]['ansible_hostname'] in (ceph_health_raw.stdout | default('{}') |  from_json)["quorum_names"] or hostvars[inventory_hostname]['ansible_fqdn'] in (ceph_health_raw.stdout | default('{}') | from_json)["quorum_names"])

{{ container_binary }} exec ceph-mon-{{ ansible_hostname }} ceph --cluster "{{ cluster }}" -m "{{ hostvars[groups[mon_group_name][0]]['_current_monitor_address'] }}" -s --format json

(hostvars[inventory_hostname]['ansible_hostname'] in (ceph_health_raw.stdout | default('{}') | from_json)["quorum_names"] or hostvars[inventory_hostname]['ansible_fqdn'] in (ceph_health_raw.stdout | default('{}') | from_json)["quorum_names"])

{{ container_exec_cmd | default('') }} ceph --cluster {{ cluster }} osd set {{ item }}

systemctl list-units | grep -E "loaded * active" | grep -oE "ceph-osd@([0-9]+).service"

{{ container_binary }} exec ceph-mon-{{ hostvars[groups[mon_group_name][0]]['ansible_hostname'] }}

{{ container_exec_cmd_update_osd|default('') }} ceph --cluster {{ cluster }} -s --format json

(((ceph_health_post.stdout | from_json).pgmap.pgs_by_state | length) > 0) and (((ceph_health_post.stdout | from_json).pgmap.pgs_by_state | selectattr('state_name', 'search', '^active\\+clean') | map(attribute='count') | list | sum) == (ceph_pgs.stdout | from_json).pgmap.num_pgs)

{{ container_exec_cmd_update_osd | default('') }} ceph osd unset {{ item }} --cluster {{ cluster }}

{{ container_exec_cmd | default('') }} ceph --cluster {{ cluster }} fs set {{ cephfs }} max_mds {{ mds_max_mds }}

{{ container_binary }} exec ceph-mon-{{ hostvars[groups[mon_group_name][0]]['ansible_hostname'] }} ceph osd require-osd-release octopus

{{ container_binary }} exec ceph-mon-{{ hostvars[groups[mon_group_name][0]]['ansible_hostname'] }} ceph mon enable-msgr2

{{ container_exec_cmd_status|default('') }} ceph --cluster {{ cluster }} -s

{{ container_exec_cmd_status|default('') }} ceph --cluster {{ cluster }} versions

{{ container_exec_cmd | default('') }} ceph tell mds.{{ mds_to_kill }} exit

{{ container_exec_cmd | default('') }} ceph --cluster {{ cluster }} -s -f json

Can't remove more mds as it won't satisfy current max_mds setting

((((ceph_status.stdout | from_json)['fsmap']['up'] | int) + ((ceph_status.stdout | from_json)['fsmap']['up:standby'] | int)) - 1) < current_max_mds | int

{{ container_exec_cmd | default('') }} ceph --cluster {{ cluster }} fs rm --yes-i-really-mean-it {{ cephfs }}

(ceph_status.stdout | from_json)['fsmap']['up:standby'] | int == 0

{{ container_exec_cmd | default('') }} ceph --cluster {{ cluster }} mgr dump -f json

mgr_to_kill_hostname in (([mgr_dump.stdout | from_json] | map(attribute='active_name') | list) + (mgr_dump.stdout | from_json)['standbys'] | map(attribute='name') | list)

mgr_to_kill_hostname not in (([mgr_dump.stdout | from_json] | map(attribute='active_name') | list) + (mgr_dump.stdout | from_json)['standbys'] | map(attribute='name') | list)

{{ container_binary }} exec ceph-mon-{{ hostvars[mon_host]['ansible_hostname'] }}

{{ container_exec_cmd }} timeout 5 ceph --cluster {{ cluster }} health

{{ container_exec_cmd }} ceph --cluster {{ cluster }} mon remove {{ mon_to_kill_hostname }}

/var/lib/ceph/bootstrap-rbd-mirror/{{ cluster }}-{{ rbdmirror_to_kill_hostname }}

rgw_to_kill must be declared. Exiting shrink-cluster playbook, no RGW was removed. On the command line when invoking the playbook, you can use "-e rgw_to_kill=ceph.rgw0 argument".  You can only remove a single RGW each time the playbook runs.

Exiting shrink-mon playbook, no monitor was removed. To shrink the cluster, either say 'yes' on the prompt or use '-e ireallymeanit=yes' on the command line when  invoking the playbook

{{ container_exec_cmd | default('') }} timeout 5 ceph --cluster {{ cluster }} health

rgw_to_kill not in (rgw_instances.stdout | from_json).servicemap.services.rgw.daemons.keys() | list

It seems that the rgw instance given is not part of the ceph cluster. Please make sure it is. The rgw instance format is $(hostname}.rgw$(instance number).

(ceph_status.stdout | from_json).servicemap.services.rgw is defined

rgw_to_kill in (ceph_status.stdout | from_json).servicemap.services.rgw.daemons.keys() | list

rgw_to_kill not in (ceph_status.stdout | from_json).servicemap.services.rgw.daemons.keys() | list

{{ container_exec_cmd | default('')}} ceph --cluster {{ cluster }} -s

"Exiting switch-from-non-containerized-to-containerized-ceph-daemons.yml playbook,
 cluster did not switch from non-containerized to containerized ceph daemons.
 To switch from non-containerized to containerized ceph daemons, either say 'yes' on the prompt or

basename $(grep --exclude '*.bak' -R fsid /etc/ceph/ | egrep -o '^[^.]*' | head -n 1)

/etc/ceph/{{ cluster_name.stdout }}-{{ ansible_date_time.iso8601_basic_short }}.conf.bak

devices must be define in host_vars/default.yml or host_vars/{{ ansible_hostname }}.yml

sgdisk --new={{item.1.index}}:0:+{{item.1.size}} "--change-name={{item.1.index}}:ceph {{item.1.type}}" "--typecode={{item.1.index}}:{% if item.1.type=='data' %}{{data_typecode}}{% else %}{{journal_typecode}}{% endif %}" --mbrtogpt -- /dev/{{item.0.device_name}}

item.0.device_name | match('/dev/(cciss/c[0-9]d[0-9]|nvme[0-9]n[0-9]){1,2}$')

sgdisk --new={{item.item[1].index}}:0:+{{item.item[1].size}} "--change-name={{ item.item[1].index }}:ceph journal"  --typecode={{ item.item[1].index }}:{{ journal_typecode }}  --partition-guid={{ item.item[1].index }}:{{ item.stdout }}  --mbrtogpt -- {{ item.item[0].device_name }}

ceph-osd -i {{ item.item[1].osd_id }} --flush-journal --cluster {{ cluster }}

ln -sf /dev/disk/by-partuuid/{{ item.stdout }} /var/lib/ceph/osd/{{ cluster }}-{{ item.item[1].osd_id }}/journal

echo {{ item.stdout }} > /var/lib/ceph/osd/{{ cluster }}-{{ item.item[1].osd_id }}/journal_uuid

ceph-osd -i {{ item.item[1].osd_id }} --mkjournal --cluster {{ cluster }}

cat "/var/lib/ceph/osd/{{ cluster }}-{{ item.1.osd_id }}/journal_uuid"

{{ keys_tmp|default([]) + [ { 'key': item.key, 'name': item.name, 'caps': { 'mon': item.mon_cap, 'osd': item.osd_cap|default(''), 'mds': item.mds_cap|default(''), 'mgr': item.mgr_cap|default('') } , 'mode': item.mode } ] }}

{{ groups[mon_group_name][0] if groups.get(mon_group_name, []) | length > 0 else inventory_hostname }}

{{ True if groups.get(mon_group_name, []) | length > 0 else copy_admin_key }}

{{ hostvars[groups['_filtered_clients'][0]]['slurp_client_keys']['results'] }}

cp -r {{ ceph_rhcs_mount_path }}/* {{ ceph_rhcs_repository_path }}

{{ ceph_rhcs_repository_path+'/README' if not rolling_update else 'dummy' }}

{{ container_binary }} inspect {{ ceph_mon_container_stat.stdout }}

{{ container_binary }} inspect {{ ceph_osd_container_stat.stdout }}

{{ container_binary }} inspect {{ ceph_mds_container_stat.stdout }}

{{ container_binary }} inspect {{ ceph_rgw_container_stat.stdout }}

{{ container_binary }} inspect {{ ceph_mgr_container_stat.stdout }}

{{ container_binary }} inspect {{ ceph_rbd_mirror_container_stat.stdout }}

ceph_rbd_mirror_container_stat.get('stdout_lines', [])|length != 0

{{ container_binary }} inspect {{ ceph_nfs_container_stat.stdout }}

{{ container_binary }} inspect {{ (ceph_mon_inspect.stdout | from_json)[0].Image }}

{{ container_binary }} inspect {{ (ceph_osd_inspect.stdout | from_json)[0].Image }}

{{ container_binary }} inspect {{ (ceph_rgw_inspect.stdout | from_json)[0].Image }}

{{ container_binary }} inspect {{ (ceph_mds_inspect.stdout | from_json)[0].Image }}

{{ container_binary }} inspect {{ (ceph_mgr_inspect.stdout | from_json)[0].Image }}

{{ container_binary }} inspect {{ (ceph_rbd_mirror_inspect.stdout | from_json)[0].Image }}

{{ container_binary }} inspect {{ (ceph_nfs_inspect.stdout | from_json)[0].Image }}

{{ (ceph_mon_container_inspect_before_pull.stdout | from_json)[0].RepoDigests[0].split('@')[1] }}

{{ (ceph_osd_container_inspect_before_pull.stdout | from_json)[0].RepoDigests[0].split('@')[1] }}

{{ (ceph_mds_container_inspect_before_pull.stdout | from_json)[0].RepoDigests[0].split('@')[1] }}

{{ (ceph_rgw_container_inspect_before_pull.stdout | from_json)[0].RepoDigests[0].split('@')[1] }}

{{ (ceph_mgr_container_inspect_before_pull.stdout | from_json)[0].RepoDigests[0].split('@')[1] }}

{{ (ceph_rbd_mirror_container_inspect_before_pull.stdout | from_json)[0].RepoDigests[0].split('@')[1] }}

{{ (ceph_nfs_container_inspect_before_pull.stdout | from_json)[0].RepoDigests[0].split('@')[1] }}

{{ timeout_command }} {{ container_binary }} pull {{ ceph_docker_registry }}/{{ ceph_docker_image }}:{{ ceph_docker_image_tag }}

(ceph_docker_dev_image is undefined or not ceph_docker_dev_image | bool)

{{ container_binary }} inspect {{ ceph_docker_registry }}/{{ ceph_docker_image }}:{{ ceph_docker_image_tag }}

{{ (image_inspect_after_pull.stdout | from_json)[0].RepoDigests[0].split('@')[1] }}

{{ ceph_mon_image_repodigest_before_pulling != image_repodigest_after_pulling }}

ceph_mon_image_repodigest_before_pulling != image_repodigest_after_pulling

{{ ceph_osd_image_repodigest_before_pulling != image_repodigest_after_pulling }}

ceph_osd_image_repodigest_before_pulling != image_repodigest_after_pulling

{{ ceph_mds_image_repodigest_before_pulling != image_repodigest_after_pulling }}

ceph_mds_image_repodigest_before_pulling != image_repodigest_after_pulling

{{ ceph_rgw_image_repodigest_before_pulling != image_repodigest_after_pulling }}

ceph_rgw_image_repodigest_before_pulling != image_repodigest_after_pulling

{{ ceph_mgr_image_repodigest_before_pulling != image_repodigest_after_pulling }}

ceph_mgr_image_repodigest_before_pulling != image_repodigest_after_pulling

{{ ceph_rbd_mirror_image_repodigest_before_pulling != image_repodigest_after_pulling }}

{{ ceph_nfs_image_repodigest_before_pulling != image_repodigest_after_pulling }}

ceph_nfs_image_repodigest_before_pulling != image_repodigest_after_pulling

{{ container_binary }} save -o "/tmp/{{ ceph_docker_username }}-{{ ceph_docker_imagename }}-{{ ceph_docker_image_tag }}.tar" "{{ ceph_docker_username }}/{{ ceph_docker_imagename }}:{{ ceph_docker_image_tag }}"

/tmp/{{ ceph_docker_username }}-{{ ceph_docker_imagename }}-{{ ceph_docker_image_tag }}.tar

(ceph_docker_dev_image is defined and ceph_docker_dev_image | bool)

{{ container_binary }} load -i /tmp/{{ ceph_docker_username }}-{{ ceph_docker_imagename }}-{{ ceph_docker_image_tag }}.tar

{{ container_binary }} run --rm --net=host --entrypoint /usr/bin/ceph {{ ceph_client_docker_registry }}/{{ ceph_client_docker_image }}:{{ ceph_client_docker_image_tag }} --version

{{ container_binary }} login -u {{ ceph_docker_registry_username }} -p {{ ceph_docker_registry_password }} {{ ceph_docker_registry }}

{{ container_exec_cmd }} ceph --cluster {{ cluster }} config set mgr mgr/dashboard/ssl false

{{ container_exec_cmd }} ceph --cluster {{ cluster }} config set mgr mgr/dashboard/server_port {{ dashboard_port }}

{{ container_exec_cmd }} ceph --cluster {{ cluster }} config set mgr mgr/dashboard/ssl_server_port {{ dashboard_port }}

{{ container_exec_cmd }} ceph --cluster {{ cluster }} mgr module disable dashboard

{{ container_exec_cmd }} ceph --cluster {{ cluster }} mgr module enable dashboard

if {{ container_exec_cmd }} ceph --cluster {{ cluster }} dashboard ac-user-show {{ dashboard_admin_user | quote }}; then
  {{ container_exec_cmd }} ceph --cluster {{ cluster }} dashboard ac-user-set-password {{ dashboard_admin_user | quote }} {{ dashboard_admin_password | quote }}
else
  {{ container_exec_cmd }} ceph --cluster {{ cluster }} dashboard ac-user-create {{ dashboard_admin_user | quote }} {{ dashboard_admin_password | quote }} administrator
fi

{{ container_exec_cmd }} ceph --cluster {{ cluster }} dashboard set-grafana-api-username {{ grafana_admin_user }}

{{ container_exec_cmd }} ceph --cluster {{ cluster }} dashboard set-grafana-api-password {{ grafana_admin_password }}

{{ container_exec_cmd }} ceph --cluster {{ cluster }} dashboard set-alertmanager-api-host {{ dashboard_protocol }}://{{ grafana_server_addrs | first }}:{{ alertmanager_port }}

{{ container_exec_cmd }} ceph --cluster {{ cluster }} dashboard set-prometheus-api-host {{ dashboard_protocol }}://{{ grafana_server_addrs | first }}:{{ prometheus_port }}

{{ container_exec_cmd }} ceph --cluster {{ cluster }} dashboard set-grafana-api-url {{ dashboard_protocol }}://{{ dashboard_frontend_vip }}:{{ grafana_port }}

dashboard_frontend_vip is defined and dashboard_frontend_vip |length > 0

{{ hostvars[dashboard_backend]['ansible_all_ipv4_addresses'] | ips_in_ranges(public_network.split(',')) | first }}

{{ hostvars[dashboard_backend]['ansible_all_ipv6_addresses'] | ips_in_ranges(public_network.split(',')) | last | ipwrap }}

{{ container_exec_cmd }} ceph --cluster {{ cluster }} config set mgr mgr/dashboard/{{ hostvars[dashboard_backend]['ansible_hostname'] }}/server_addr {{ mgr_server_addr }}

{{ container_exec_cmd }} ceph --cluster {{ cluster }} dashboard set-grafana-api-url {{ dashboard_protocol }}://{{ grafana_server_addr }}:{{ grafana_port }}

{{ container_exec_cmd }} ceph --cluster {{ cluster }} dashboard grafana dashboards update

The dashboard has been deployed! You can access your dashboard web UI at {{ dashboard_protocol }}://{{ ansible_fqdn }}:{{ dashboard_port }}/ as an '{{ dashboard_admin_user }}' user with '{{ dashboard_admin_password }}' password.

{{ 'podman' if (podman_binary.stat.exists and ansible_distribution == 'Fedora') or (ansible_os_family == 'RedHat' and ansible_distribution_major_version == '8') else 'docker' }}

{{ timeout_command }} {{ container_exec_cmd }} ceph --admin-daemon /var/run/ceph/{{ cluster }}-mon.{{ hostvars[mon_host | default(groups[mon_group_name][0])]['ansible_hostname'] }}.asok config get fsid

{{ (devices | default([]) + [ item.key | regex_replace('^', '/dev/') ]) | unique }}

{% set _value = ansible_hostname -%} {% for key in (ceph_current_status['servicemap']['services']['rgw']['daemons'] | list) -%} {% if key == ansible_fqdn -%} {% set _value = key -%} {% endif -%} {% endfor -%} {{ _value }}

inventory_hostname in groups.get(rgw_group_name, []) or inventory_hostname in groups.get(nfs_group_name, [])

{{ ceph_conf_overrides.get('global', {}).get('osd_pool_default_pg_num', ceph_osd_pool_default_pg_num) }}

{{ ceph_conf_overrides.get('global', {}).get('osd_pool_default_size', ceph_osd_pool_default_size) }}

{{ ceph_conf_overrides.get('global', {}).get('osd_pool_default_min_size', ceph_osd_pool_default_min_size) }}

{% if crush_rule_variable.rc == 0 %}{{ crush_rule_variable.stdout.split(' = ')[1] }}{% else %}{{ ceph_osd_pool_default_crush_rule }}{% endif %}

{{ (gateway_ip_list  == '0.0.0.0' and gateway_iqn | length == 0 and client_connections | length == 0 and rbd_devices | length == 0) | bool | ternary(true, false) }}

{{ hostvars[inventory_hostname]['ansible_all_ipv4_addresses'] | ips_in_ranges(public_network.split(',')) | first }}

{{ hostvars[inventory_hostname]['ansible_all_ipv6_addresses'] | ips_in_ranges(public_network.split(',')) | last | ipwrap }}

{{ (grafana_server_addrs | default([]) + [hostvars[item]['ansible_all_ipv4_addresses'] | ips_in_ranges(public_network.split(',')) | first]) | unique }}

{{ (grafana_server_addrs | default([]) + [hostvars[item]['ansible_all_ipv6_addresses'] | ips_in_ranges(public_network.split(',')) | last | ipwrap]) | unique }}

{{ _monitor_addresses | default([]) + [{ 'name': item, 'addr': hostvars[item]['ansible_all_ipv4_addresses'] | ips_in_ranges(hostvars[item]['monitor_address_block'].split(',')) | first }] }}

item not in _monitor_addresses | default([]) | selectattr('name', 'defined') |  map(attribute='name') | list

{{ _monitor_addresses | default([]) + [{ 'name': item, 'addr': hostvars[item]['ansible_all_ipv6_addresses'] | ips_in_ranges(hostvars[item]['monitor_address_block'].split(',')) | last | ipwrap }] }}

{{ _monitor_addresses | default([]) + [{ 'name': item, 'addr': hostvars[item]['monitor_address'] | ipwrap}] }}

item not in _monitor_addresses | default([]) | selectattr('name', 'defined') | map(attribute='name') | list

{{ _monitor_addresses | default([]) + [{ 'name': item, 'addr': hostvars[item]['ansible_' + (hostvars[item]['monitor_interface']|replace('-', '_'))][ip_version]['address'] | ipwrap }]  }}

hostvars[item]['monitor_address_block'] | default('subnet')  == 'subnet'

hostvars[item]['monitor_address'] | default('x.x.x.x') == 'x.x.x.x'

hostvars[item]['monitor_interface'] | default('interface') != 'interface'

{{ _monitor_addresses | default([]) + [{ 'name': item, 'addr': hostvars[item]['ansible_' + (hostvars[item]['monitor_interface']|replace('-', '_'))][ip_version][0]['address'] | ipwrap }] }}

{{ hostvars[inventory_hostname]['ansible_all_ipv4_addresses'] | ips_in_ranges(hostvars[inventory_hostname]['radosgw_address_block'].split(',')) | first }}

{{ hostvars[inventory_hostname]['ansible_all_ipv6_addresses'] | ips_in_ranges(hostvars[inventory_hostname]['radosgw_address_block'].split(',')) | last | ipwrap }}

{{ rgw_instances|default([]) | union([{'instance_name': 'rgw' + item|string, 'radosgw_address': _radosgw_address, 'radosgw_frontend_port': radosgw_frontend_port|int + item|int }]) }}

{{ rgw_instances|default([]) | union([{'instance_name': 'rgw' + item | string, 'radosgw_address': _radosgw_address, 'radosgw_frontend_port': radosgw_frontend_port | int, 'rgw_realm': rgw_realm | string, 'rgw_zonegroup': rgw_zonegroup | string, 'rgw_zone': rgw_zone | string, 'system_access_key': system_access_key, 'system_secret_key': system_secret_key, 'rgw_zone_user': rgw_zone_user, 'rgw_zone_user_display_name': rgw_zone_user_display_name, 'endpoint': (rgw_pull_proto + '://' + rgw_pullhost + ':' + rgw_pull_port | string) if not rgw_zonemaster | bool and rgw_zonesecondary | bool else omit }]) }}

{{ rgw_instances_all | default([]) | union([item.1 | combine({"host": item.0})]) }}

test -f /etc/grafana/ceph-dashboard.key -a -f /etc/grafana/ceph-dashboard.crt || \
(openssl req -new -nodes -x509 -subj '/O=IT/CN=ceph-grafana' -days 3650 -keyout /etc/grafana/ceph-dashboard.key -out /etc/grafana/ceph-dashboard.crt -extensions v3_ca && \
chown {{ grafana_uid }}:{{ grafana_uid }} /etc/grafana/ceph-dashboard.key /etc/grafana/ceph-dashboard.crt)

{{ container_binary }} ps -q --filter='name=ceph-mon-{{ ansible_hostname }}'

{{ container_binary }} ps -q --filter='name=ceph-mds-{{ ansible_hostname }}'

{{ container_binary }} ps -q --filter='name=ceph-rgw-{{ ansible_hostname }}'

{{ container_binary }} ps -q --filter='name=ceph-mgr-{{ ansible_hostname }}'

{{ container_binary }} ps -q --filter='name=ceph-rbd-mirror-{{ ansible_hostname }}'

{{ container_binary }} ps -q --filter='name=ceph-nfs-{{ ceph_nfs_service_suffix | default(ansible_hostname) }}'

stat --printf=%n {{ rbd_client_admin_socket_path }}/{{ cluster }}-mon*.asok

stat --printf=%n {{ rbd_client_admin_socket_path }}/{{ cluster }}-osd*.asok

stat --printf=%n {{ rbd_client_admin_socket_path }}/{{ cluster }}-mds*.asok

stat --printf=%n {{ rbd_client_admin_socket_path }}/{{ cluster }}-client.rgw*.asok

stat --printf=%n {{ rbd_client_admin_socket_path }}/{{ cluster }}-mgr*.asok

stat --printf=%n {{ rbd_client_admin_socket_path }}/{{ cluster }}-client.rbd-mirror*.asok

{{ hostvars[groups[mon_group_name][0]]['container_exec_cmd'] | default('') }} ceph --cluster {{ cluster }} osd unset noup

hostvars[item]['handler_rbd_mirror_status'] | default(False) | bool

hostvars[item]['_rbdmirror_handler_called'] | default(False) | bool

hostvars[item]['_rbd_target_api_handler_called'] | default(False) | bool

hostvars[item]['_rbd_target_gw_handler_called'] | default(False) | bool

hostvars[item]['_tcmu_runner_handler_called'] | default(False) | bool

{{ (mon_socket_stat.get('rc') == 0) if not containerized_deployment | bool else (ceph_mon_container_stat.get('rc') == 0 and ceph_mon_container_stat.get('stdout_lines', []) | length != 0) }}

{{ (osd_socket_stat.get('rc') == 0 and ceph_current_status.fsid is defined) if not containerized_deployment | bool else (ceph_osd_container_stat.get('rc') == 0 and ceph_osd_container_stat.get('stdout_lines', []) | length != 0) }}

{{ (mds_socket_stat.get('rc') == 0) if not containerized_deployment | bool else (ceph_mds_container_stat.get('rc') == 0 and ceph_mds_container_stat.get('stdout_lines', []) | length != 0) }}

{{ (rgw_socket_stat.get('rc') == 0) if not containerized_deployment | bool else (ceph_rgw_container_stat.get('rc') == 0 and ceph_rgw_container_stat.get('stdout_lines', []) | length != 0) }}

{{ (nfs_socket_stat.get('rc') == 0) if not containerized_deployment | bool else (ceph_nfs_container_stat.get('rc') == 0 and ceph_nfs_container_stat.get('stdout_lines', []) | length != 0) }}

{{ (rbd_mirror_socket_stat.get('rc') == 0) if not containerized_deployment | bool else (ceph_rbd_mirror_container_stat.get('rc') == 0 and ceph_rbd_mirror_container_stat.get('stdout_lines', []) | length != 0) }}

{{ (mgr_socket_stat.get('rc') == 0) if not containerized_deployment | bool else (ceph_mgr_container_stat.get('rc') == 0 and ceph_mgr_container_stat.get('stdout_lines', []) | length != 0) }}

{{ container_exec_cmd }} ceph --cluster {{ cluster }} auth get {{ item.name }}

{{ trusted_ip_list }},{{ hostvars[item]["ansible_all_ipv4_addresses"] | ips_in_ranges(public_network.split(",")) | first }}

{{ trusted_ip_list }},{{ hostvars[item]["ansible_all_ipv6_addresses"] | ips_in_ranges(public_network.split(",")) | last }}

{{ container_exec_cmd | default('') }} ceph --cluster {{ cluster }} osd pool ls --format json

{{ container_exec_cmd }} ceph --cluster {{ cluster }} config get iscsi/ssl/{{ item }}

{{ crt_files_exist.results | selectattr('rc', 'equalto', 0) | map(attribute='rc') | list | length != crt_files | length }}

{{ crt_files_exist.results if not crt_files_missing else iscsi_ssl_files_content.results }}

{{ container_exec_cmd | default('') }} ceph --cluster {{ cluster }} auth get {{ item.name }}

{{ container_binary }} exec ceph-mds-{{ ansible_hostname }} sh -c 'stat /var/run/ceph/{{ cluster }}-mds.{{ ansible_hostname }}.asok || stat /var/run/ceph/{{ cluster }}-mds.{{ ansible_fqdn }}.asok'

ceph --cluster {{ cluster }} --name client.bootstrap-mds --keyring /var/lib/ceph/bootstrap-mds/{{ cluster }}.keyring auth get-or-create mds.{{ mds_name }} osd 'allow rwx' mds 'allow' mon 'allow profile mds' -o /var/lib/ceph/mds/{{ cluster }}-{{ mds_name }}/keyring

{{ container_binary }} exec ceph-mon-{{ hostvars[item]['ansible_hostname'] }}

{{ (ceph_mgr_modules + [ 'dashboard', 'prometheus' ]) | unique }}

{{ hostvars[groups[mon_group_name][0]]['container_exec_cmd'] | default('') }} ceph --cluster {{ cluster }} mgr dump -f json

{{ hostvars[groups[mon_group_name][0]]['container_exec_cmd'] | default('') }} ceph --cluster {{ cluster }} --format json mgr module ls

{% if _ceph_mgr_modules.disabled_modules | length == 0 %}[]{% elif _ceph_mgr_modules.disabled_modules[0] | type_debug != 'dict' %}{{ _ceph_mgr_modules['disabled_modules'] }}{% else %}{{ _ceph_mgr_modules['disabled_modules'] | map(attribute='name') | list }}{% endif %}

{{ hostvars[groups[mon_group_name][0]]['container_exec_cmd'] | default('') }} ceph --cluster {{ cluster }} mgr module disable {{ item }}

{{ hostvars[groups[mon_group_name][0]]['container_exec_cmd'] | default('') }} ceph --cluster {{ cluster }} mgr module enable {{ item }}

(item in _disabled_ceph_mgr_modules or _disabled_ceph_mgr_modules == [])

{{ container_exec_cmd }} ceph --cluster {{ cluster }} daemon mon.{{ ansible_hostname }} mon_status --format json

(ceph_health_raw.stdout | length > 0) and (ceph_health_raw.stdout | default('{}') | from_json)['state'] in ['leader', 'peon']

{{ _container_exec_cmd | default('') }} ceph --cluster {{ cluster }} --name mon. -k /var/lib/ceph/mon/{{ cluster }}-{{ hostvars[groups[mon_group_name][0] if running_mon is undefined else running_mon]['ansible_hostname'] }}/keyring auth get-key mon.

{{ groups[mon_group_name][0] if running_mon is undefined else running_mon }}

{{ hostvars[groups[mon_group_name][0] if running_mon is undefined else running_mon]['discovered_interpreter_python'] }} -c "import os ; import struct ; import time; import base64 ; key = os.urandom(16) ; header = struct.pack('<hiih',1,int(time.time()),0,len(key)) ; print(base64.b64encode(header + key).decode())"

{{ initial_mon_key.stdout if monitor_keyring.skipped is defined else monitor_keyring.stdout if initial_mon_key.skipped is defined }}

cp /var/lib/ceph/tmp/{{ cluster }}.mon..keyring
   /etc/ceph/{{ cluster }}.mon.keyring

{{ container_binary + ' run --net=host --rm -v /var/lib/ceph:/var/lib/ceph:z -v /etc/ceph/:/etc/ceph/:z --entrypoint=ceph-authtool ' + ceph_client_docker_registry + '/' + ceph_client_docker_image + ':' + ceph_client_docker_image_tag if containerized_deployment else 'ceph-authtool' }}

{{ ceph_authtool_cmd }}
 /var/lib/ceph/tmp/{{ cluster }}.mon..keyring --import-keyring /etc/ceph/{{ cluster }}.client.admin.keyring

{{ container_binary + ' run --rm --net=host -v /var/lib/ceph/:/var/lib/ceph:z -v /etc/ceph/:/etc/ceph/:z --entrypoint=ceph-mon ' + ceph_client_docker_registry + '/' + ceph_client_docker_image + ':' +ceph_client_docker_image_tag if containerized_deployment else 'ceph-mon' }}

{{ ceph_mon_cmd }} --cluster {{ cluster }} --setuser "{{ ceph_uid if containerized_deployment else 'ceph' }}" --setgroup "{{ ceph_uid if containerized_deployment else 'ceph' }}" --mkfs -i {{ monitor_name }} --fsid {{ fsid }} --keyring /var/lib/ceph/tmp/{{ cluster }}.mon..keyring

{{ ceph_mon_cmd }} --cluster {{ cluster }} --setuser "{{ ceph_uid if containerized_deployment else 'ceph' }}" --setgroup "{{ ceph_uid if containerized_deployment else 'ceph' }}" --mkfs -i {{ monitor_name }} --fsid {{ fsid }}

{{ container_exec_cmd }} ceph --cluster {{ cluster }} osd pool set {{ item[0] }} {{ item[1] }} true

{{ container_exec_cmd_nfs | default('') }} radosgw-admin --cluster {{ cluster }} user info --uid={{ ceph_nfs_rgw_user }}

{{ container_exec_cmd_nfs | default('') }} radosgw-admin --cluster {{ cluster }} user create --uid={{ ceph_nfs_rgw_user }} --display-name='RGW NFS User'

{{ container_exec_cmd_nfs | default('') }} radosgw-admin --cluster {{ cluster }} user modify --uid={{ ceph_nfs_rgw_user }} --access-key={{ ceph_nfs_rgw_access_key }} --secret-key={{ ceph_nfs_rgw_secret_key }}

{{ (rgwuser.stdout | from_json)['keys'][0]['access_key'] if rgwuser_exists.get('rc', 1) != 0 else (rgwuser_exists.stdout | from_json)['keys'][0]['access_key'] }}

{{ (rgwuser.stdout | from_json)['keys'][0]['secret_key'] if rgwuser_exists.get('rc', 1) != 0 else (rgwuser_exists.stdout | from_json)['keys'][0]['secret_key'] }}

/var/lib/ceph/radosgw/{{ cluster }}-rgw.{{ ansible_hostname }}/keyring

{{ container_exec_cmd_nfs | default('') }} rados -p {{ cephfs_data_pool.name }} --cluster {{ cluster }} ls|grep {{ ceph_nfs_rados_export_index }}

{{ container_exec_cmd_nfs | default('') }} rados -p {{ cephfs_data_pool.name }} --cluster {{ cluster }} put {{ ceph_nfs_rados_export_index }} /dev/null

{{ hostvars[groups[mon_group_name][0]]['container_exec_cmd'] | default('') }} ceph --cluster {{ cluster }} auth get {{ item.name }}

{{ hostvars[groups[mon_group_name][0]]['container_exec_cmd'] | default('') }} ceph --cluster {{ cluster }} osd crush rule {{ 'create-replicated' if item.class is defined else 'create-simple' }} {{ item.name }} {{ item.root }} {{ item.type }} {{ item.class | default('') }}

{{ hostvars[groups[mon_group_name][0]]['crush_rules'] | default(crush_rules) | unique }}

{{ hostvars[groups[mon_group_name][0]]['container_exec_cmd'] | default('') }} ceph --cluster {{ cluster }} osd -f json crush rule dump {{ item.name }}

{{ hostvars[item]['container_exec_cmd'] | default('') }} ceph --admin-daemon /var/run/ceph/{{ cluster }}-mon.{{ hostvars[item]['monitor_name'] }}.asok config set osd_pool_default_crush_rule {{ info_ceph_default_crush_rule_yaml.rule_id }}

{{ groups[osd_group_name] | length != ansible_play_hosts_all | length }}

{{ hostvars[groups[mon_group_name][0]]['container_exec_cmd'] | default('') }} ceph --cluster {{ cluster }} osd set noup

{{ hostvars[groups[mon_group_name][0]]['container_exec_cmd'] | default('') }} ceph --cluster {{ cluster }} -s -f json

(wait_for_all_osds_up.stdout | from_json)["osdmap"]["num_osds"] | int > 0

(wait_for_all_osds_up.stdout | from_json)["osdmap"]["num_osds"] == (wait_for_all_osds_up.stdout | from_json)["osdmap"]["num_up_osds"]

{{ openstack_keys_tmp|default([]) + [ { 'key': item.key, 'name': item.name, 'caps': { 'mon': item.mon_cap, 'osd': item.osd_cap|default(''), 'mds': item.mds_cap|default(''), 'mgr': item.mgr_cap|default('') } , 'mode': item.mode } ] }}

{{ '{{ container_binary }} run --rm --ulimit nofile=1024:4096 --net=host --privileged=true -v /var/run/udev/:/var/run/udev/:z -v /run/lvm/:/run/lvm/ -v /etc/ceph:/etc/ceph:z -v /dev:/dev --entrypoint=ceph-volume ' + ceph_docker_registry + '/' + ceph_docker_image + ':' + ceph_docker_image_tag if containerized_deployment else 'ceph-volume' }}

{{ 4194303 if ansible_memtotal_mb >= 49152 else default_vm_min_free_kbytes.stdout }}

ceph --cluster {{ cluster }} --name client.bootstrap-rbd-mirror --keyring /var/lib/ceph/bootstrap-rbd-mirror/{{ cluster }}.keyring auth get-or-create client.rbd-mirror.{{ ansible_hostname }} mon 'profile rbd-mirror' osd 'profile rbd' -o /etc/ceph/{{ cluster }}.client.rbd-mirror.{{ ansible_hostname }}.keyring

/etc/ceph/{{ cluster }}.client.rbd-mirror.{{ ansible_hostname }}.keyring

{{ container_exec_cmd | default('') }} rbd --cluster {{ cluster }} --keyring /etc/ceph/{{ cluster }}.client.rbd-mirror.{{ ansible_hostname }}.keyring --name client.rbd-mirror.{{ ansible_hostname }} mirror pool enable {{ ceph_rbd_mirror_pool }} {{ ceph_rbd_mirror_mode }}

{{ container_exec_cmd | default('') }} rbd --cluster {{ cluster }} --keyring /etc/ceph/{{ cluster }}.client.rbd-mirror.{{ ansible_hostname }}.keyring --name client.rbd-mirror.{{ ansible_hostname }} mirror pool info {{ ceph_rbd_mirror_pool }}

{{ container_exec_cmd | default('') }} rbd --cluster {{ cluster }} --keyring /etc/ceph/{{ cluster }}.client.rbd-mirror.{{ ansible_hostname }}.keyring --name client.rbd-mirror.{{ ansible_hostname }} mirror pool peer add {{ ceph_rbd_mirror_pool }} {{ ceph_rbd_mirror_remote_user }}@{{ ceph_rbd_mirror_remote_cluster }}

/var/lib/ceph/radosgw/{{ cluster }}-rgw.{{ ansible_hostname }}.{{ item.instance_name }}

radosgw_frontend_ssl_certificate | length > 0 and radosgw_frontend_ssl_certificate_data | length > 0

openssl x509 -in /etc/keystone/ssl/certs/ca.pem -pubkey | certutil -d {{ radosgw_nss_db_path }} -A -n ca -t 'TCu,Cu,Tuw'

openssl x509 -in /etc/keystone/ssl/certs/signing_cert.pem -pubkey | certutil -A -d {{ radosgw_nss_db_path }} -n signing_cert -t 'P,P,P'

ceph --cluster {{ cluster }} --name client.bootstrap-rgw --keyring /var/lib/ceph/bootstrap-rgw/{{ cluster }}.keyring auth get-or-create client.rgw.{{ ansible_hostname }}.{{ item.instance_name }} osd 'allow rwx' mon 'allow rw' -o /var/lib/ceph/radosgw/{{ cluster }}-rgw.{{ ansible_hostname }}.{{ item.instance_name }}/keyring

/var/lib/ceph/radosgw/{{ cluster }}-rgw.{{ ansible_hostname }}.{{ item.instance_name }}/keyring

{{ container_exec_cmd }} ceph --connect-timeout 10 --cluster {{ cluster }} osd erasure-code-profile rm {{ item.value.ec_profile }}

{{ container_exec_cmd }} ceph --connect-timeout 10 --cluster {{ cluster }} osd erasure-code-profile set {{ item.value.ec_profile }} k={{ item.value.ec_k }} m={{ item.value.ec_m }}

{{ container_exec_cmd }} ceph --connect-timeout 10 --cluster {{ cluster }} osd crush rule create-erasure {{ item.key }} {{ item.value.ec_profile }}

{{ container_exec_cmd }} ceph --connect-timeout 10 --cluster {{ cluster }} osd pool create {{ item.key }} {{ item.value.pg_num | default(osd_pool_default_pg_num) }} erasure {{ item.value.ec_profile }}

{{ container_exec_cmd }} ceph --connect-timeout 10 --cluster {{ cluster }} osd pool create {{ item.key }} {{ item.value.pg_num | default(osd_pool_default_pg_num) }} replicated

item.value.type is not defined or item.value.type == 'replicated'

{{ container_exec_cmd }} ceph --connect-timeout 10 --cluster {{ cluster }} osd pool set {{ item.key }} size {{ item.value.size | default(osd_pool_default_size) }} {{ '--yes-i-really-mean-it' if item.value.size | default(osd_pool_default_size) | int == 1 else '' }}

item.value.size | default(osd_pool_default_size) != ceph_osd_pool_default_size

{{ container_exec_cmd }} ceph --connect-timeout 10 --cluster {{ cluster }} osd pool application enable {{ item.key }} rgw

/var/lib/ceph/radosgw/{{ cluster }}-rgw.{{ ansible_hostname }}.{{ item.instance_name }}/EnvironmentFile

INST_NAME={{ item.instance_name }}
INST_PORT={{ item.radosgw_frontend_port }}

{{ container_exec_cmd }} radosgw-admin realm get --cluster={{ cluster }} --rgw-realm={{ item }}

{{ container_exec_cmd }} radosgw-admin zonegroup get --cluster={{ cluster }} --rgw-realm={{ item.realm }} --rgw-zonegroup={{ item.zonegroup }}

{{ container_exec_cmd }} radosgw-admin zone get --rgw-realm={{ item.realm }} --cluster={{ cluster }} --rgw-zonegroup={{ item.zonegroup }} --rgw-zone={{ item.zone }}

{{ secondary_realms | default([]) | union([{ 'realm': item.rgw_realm, 'endpoint': item.endpoint, 'system_access_key': item.system_access_key, 'system_secret_key': item.system_secret_key, 'is_master': hostvars[item.host]['rgw_zonemaster'] }]) }}

{{ zonegroups | default([]) | union([{ 'realm': item.rgw_realm, 'zonegroup': item.rgw_zonegroup, 'is_master': hostvars[item.host]['rgw_zonegroupmaster'] }]) }}

{{ zones | default([]) | union([{ 'realm': item.rgw_realm, 'zonegroup': item.rgw_zonegroup, 'zone': item.rgw_zone, 'is_master': hostvars[item.host]['rgw_zonemaster'], 'system_access_key': item.system_access_key, 'system_secret_key': item.system_secret_key }]) }}

{{ zone_endpoint_pairs | default([]) | union([{ 'endpoint': hostvars[item.host]['rgw_multisite_proto'] + '://' + item.radosgw_address + ':' + item.radosgw_frontend_port | string, 'rgw_zone': item.rgw_zone, 'rgw_realm': item.rgw_realm, 'rgw_zonegroup': item.rgw_zonegroup, 'rgw_zonemaster': hostvars[item.host]['rgw_zonemaster']}]) }}

{{ zone_endpoints_list | default([]) | union([{'zone': item.rgw_zone, 'zonegroup': item.rgw_zonegroup, 'realm': item.rgw_realm, 'is_master': item.rgw_zonemaster, 'endpoints': ','.join(zone_endpoint_pairs | selectattr('rgw_zone','==',item.rgw_zone) | selectattr('rgw_realm','==',item.rgw_realm) | selectattr('rgw_zonegroup', '==', item.rgw_zonegroup) | map(attribute='endpoint'))}]) }}

{{ zone_users | default([]) | union([{ 'realm': item.rgw_realm, 'zonegroup': item.rgw_zonegroup, 'zone': item.rgw_zone, 'system_access_key': item.system_access_key, 'system_secret_key': item.system_secret_key, 'user': item.rgw_zone_user, 'display_name': item.rgw_zone_user_display_name }]) }}

{{ container_exec_cmd }} radosgw-admin user info --cluster={{ cluster }} --rgw-realm={{ item.realm }} --rgw-zonegroup={{ item.zonegroup }} --rgw-zone={{ item.zone }} --uid={{ item.user }}

{{ container_exec_cmd }} radosgw-admin user create --cluster={{ cluster }} --rgw-realm={{ item.item.realm }} --rgw-zonegroup={{ item.item.zonegroup }} --rgw-zone={{ item.item.zone }} --uid={{ item.item.user }} --display-name='{{ item.item.display_name }}' --access-key={{ item.item.system_access_key }} --secret={{ item.item.system_secret_key }} --system

{{ container_exec_cmd }} radosgw-admin realm create --cluster={{ cluster }} --rgw-realm={{ item.item }} {{ '--default' if realms | length == 1 else '' }}

{{ container_exec_cmd }} radosgw-admin zonegroup create --cluster={{ cluster }} --rgw-realm={{ item.item.realm }} --rgw-zonegroup={{ item.item.zonegroup }} {{ '--default' if zonegroups | length == 1 else '' }} {{ '--master' if item.item.is_master | bool else '' }}

{{ container_exec_cmd }} radosgw-admin zone create --cluster={{ cluster }} --rgw-realm={{ item.item.realm }} --rgw-zonegroup={{ item.item.zonegroup }} --rgw-zone={{ item.item.zone }} --access-key={{ item.item.system_access_key }} --secret={{ item.item.system_secret_key }} {{ '--default' if zones | length == 1 else '' }} --master

{{ container_exec_cmd }} radosgw-admin zone modify --cluster={{ cluster }} --rgw-realm={{ item.realm }} --rgw-zonegroup={{ item.zonegroup }} --rgw-zone={{ item.zone }} --endpoints {{ item.endpoints }}

{{ container_exec_cmd }} radosgw-admin --cluster={{ cluster }} --rgw-realm={{ item.realm }} --rgw-zonegroup={{ item.zonegroup }} --rgw-zone={{ item.zone }} period update --commit

{{ container_exec_cmd }} radosgw-admin realm pull --cluster={{ cluster }} --rgw-realm={{ item.realm }} --url={{ item.endpoint }} --access-key={{ item.system_access_key }} --secret={{ item.system_secret_key }}

{{ container_exec_cmd }} radosgw-admin period get --cluster={{ cluster }} --rgw-realm={{ item.realm }}

{{ container_exec_cmd }} radosgw-admin zone create --cluster={{ cluster }} --rgw-realm={{ item.item.realm }} --rgw-zonegroup={{ item.item.zonegroup }} --rgw-zone={{ item.item.zone }} --access-key={{ item.item.system_access_key }} --secret={{ item.item.system_secret_key }} {{ '--default' if zones | length == 1 else '' }}

{{ vrrp_instances | default([]) | union([{ 'name': 'VI_' + index|string , 'vip': item }]) }}

{{ root_device }} found in either lvm_volumes or devices variable

root_device in lvm_volumes_data_devices | default([]) or root_device in _devices | default([])

{{ monitor_interface }} does not exist on {{ inventory_hostname }}

{{ monitor_interface }} is not active on {{ inventory_hostname }}

not hostvars[inventory_hostname]['ansible_' + (monitor_interface | replace('-', '_'))]['active']

{{ monitor_interface }} does not have any IPv4 address on {{ inventory_hostname }}

hostvars[inventory_hostname]['ansible_' + (monitor_interface | replace('-', '_'))]['ipv4'] is not defined

{{ monitor_interface }} does not have any IPv6 address on {{ inventory_hostname }}

hostvars[inventory_hostname]['ansible_' + (monitor_interface | replace('-', '_'))]['ipv6'] is not defined

{{ radosgw_interface }} does not exist on {{ inventory_hostname }}

{{ radosgw_interface }} is not active on {{ inventory_hostname }}

hostvars[inventory_hostname]['ansible_' + (radosgw_interface | replace('-', '_'))]['active'] == "false"

{{ radosgw_interface }} does not have any IPv4 address on {{ inventory_hostname }}

hostvars[inventory_hostname]['ansible_' + (radosgw_interface | replace('-', '_'))]['ipv4'] is not defined

{{ radosgw_interface }} does not have any IPv6 address on {{ inventory_hostname }}

hostvars[inventory_hostname]['ansible_' + (radosgw_interface | replace('-', '_'))]['ipv6'] is not defined

{{ inventory_hostname }} does not have any {{ ip_version }} address on {{ monitor_address_block }}

hostvars[inventory_hostname]['ansible_all_' + ip_version + '_addresses'] | ips_in_ranges(hostvars[inventory_hostname]['monitor_address_block'].split(',')) | length == 0

iSCSI gateways can only be deployed on Red Hat Enterprise Linux, CentOS or Fedora

you must set a list of IPs (comma separated) for gateway_ip_list

 '' in client_connections | selectattr('status', 'match', 'present') | map(attribute='chap') | list

grep -q {{ item }}=m {% if is_atomic|bool %}/usr/lib/ostree-boot{% else %}/boot{% endif %}/config-{{ ansible_kernel }}

ceph_nfs_rgw_access_key and ceph_nfs_rgw_secret_key must be set if nfs_obj_gw is True

(ceph_nfs_rgw_access_key is undefined or ceph_nfs_rgw_secret_key is undefined)

ceph-nfs packages are not available from openSUSE Leap 15.x repositories (ceph_origin = 'distro')

You must set a target_size_ratio value on following pool: {{ item.name }}.

rgw_pull_port is undefined and rgw_pullhost is undefined and rgw_pull_proto is undefined

ansible_architecture not in ['x86_64', 'ppc64le', 'armv7l', 'aarch64']

ansible_os_family not in ['Debian', 'RedHat', 'ClearLinux', 'Suse']

CentOS release not supported {{ ansible_distribution_major_version }}

Distribution not supported by Ubuntu Cloud Archive: {{ ansible_distribution }}

Distribution not supported: {{ ansible_distribution }} {{ ansible_distribution_major_version }}

ansible_distribution == 'openSUSE Leap' or ansible_distribution == 'SUSE'

Either monitor_address, monitor_address_block or monitor_interface must be provided

Either radosgw_address, radosgw_address_block or radosgw_interface must be provided

installation can't happen on Atomic and ntpd needs to be installed

WARNING: journal_size is configured to {{ journal_size }}, which is less than 5GB. This is not recommended and can lead to severe issues.

WARNING: radosgw_civetweb_num_threads variable is deprecated. Please use radosgw_thread_pool_size instead

you must add a [grafana-server] group and add at least one node.

you must add at least one node in the [grafana-server] hosts group

you must set dashboard_admin_password and grafana_admin_password.

dashboard_admin_password is undefined or grafana_admin_password is undefined

ceph_docker_registry_username and/or ceph_docker_registry_password variables need to be set

(ceph_docker_registry_username is not defined or ceph_docker_registry_password is not defined) or (ceph_docker_registry_username | length == 0 or ceph_docker_registry_password | length == 0)

podman run --rm -v /etc/ceph:/etc/ceph --net=host --entrypoint=rbd {{ ceph_docker_registry }}/{{ ceph_docker_image }}:{{ ceph_docker_image_tag }} create --size=1024 test/rbd_test

is_atomic | bool or containerized_deployment | default(false) | bool

podman run --rm --name=rgw_multisite_test --entrypoint=/bin/bash {{ ceph_docker_registry }}/{{ ceph_docker_image }}:{{ ceph_docker_image_tag }} -c 'dd if=/dev/urandom of=/tmp/testinfra.img bs=1M count=10; {{ s3cmd_cmd }} mb s3://testinfra; {{ s3cmd_cmd }} put /tmp/testinfra.img s3://testinfra'

dd if=/dev/urandom of=/tmp/testinfra.img bs=1M count=10; {{ s3cmd_cmd }} mb s3://testinfra; {{ s3cmd_cmd }} put /tmp/testinfra.img s3://testinfra

podman run --rm --name=rgw_multisite_test --entrypoint=/bin/bash {{ ceph_docker_registry }}/{{ ceph_docker_image }}:{{ ceph_docker_image_tag }} -c '{{ s3cmd_cmd }} info s3://testinfra/testinfra.img'

cobbler setting report | grep xmlrpc_port | awk '{ FS=":"; print $3 }'

{% for line in users_digest_lines %}{{ line + '
' }}{% endfor %}

cobbler setting edit --name={{ item.name }} --value={{ item.value}}

{{ ( kernel_stat.stat.exists or download_kernel|changed) and ( initrd_stat.stat.exists or download_initrd|changed ) }}

{% for distro in distros.keys() + extra_distros.keys() %}{{ distros[distro].update(extra_distros[distro]|default({})) }}{% endfor %}{{ distros }}

msg="Cannot specify both 'iso' and 'kernel' or 'initrd'. distro '{{ distro_name }}'"

distro.iso != '' and (distro.kernel is defined or distro.initrd is defined)

(distro.kernel is defined and distro.kernel != '') and (distro.initrd is defined and distro.initrd != '')

((profile is defined and profile.stdout == distro_name) or (import is defined and import.rc == 0))

cobbler distro add --kernel {{ kernel_path }} --initrd {{ initrd_path }} --name {{ distro_name }}

download|changed or (files_exist and profile is defined and profile.stdout == '')

cobbler profile add --name {{ distro_name }} --distro {{ distro_name }}

cobbler import --path={{ iso_mount }} --name={{ distro_name }} --arch={{ arch }}

cobbler profile dumpvars --name={{ distro_name }} | grep '^kernel_options :' | cut -d : -f 2

cobbler profile edit --name={{ distro_name }} --kopts='{{ distro.kernel_options }}'

cobbler profile dumpvars --name={{ distro_name }} | grep '^kernel_options_post :' | cut -d : -f 2

cobbler profile edit --name={{ distro_name }} --kopts-post='{{ distro.kernel_options_post }}'

kernel_options_post.stdout.strip() != distro.kernel_options_post

cobbler profile dumpvars --name={{ distro_name }} | grep '^kickstart :' | awk '{ print $3 }'

cobbler profile edit --name={{ distro_name }} --kickstart={{ kickstart_path }}

[{% for host in cmd_cobbler_systems.stdout.strip().split() %}'{{ host }}.{{ lab_domain }}, {% endfor %}]

{{ groups.cobbler_managed | difference(cobbler_systems_current) }}

cobbler system add --name={{ item.split('.')[0] }} --profile={{ default_profile }} --mac={{ hostvars[item].mac }} --ip-address={{ hostvars[item].ip }} --interface={{ hostvars[item].interface|default(interface) }} --hostname={{ item.split('.')[0] }}.{{ lab_domain }} --kopts="{{ hostvars[item].kernel_options|default(kernel_options) }}" --ksmeta="{{ hostvars[item].kickstart_metadata|default(kickstart_metadata) }}" --power-type={{ hostvars[item].power_type|default(power_type) }} --power-address={{ item.split('.')[0] }}.{{ ipmi_domain }} --power-user={{ hostvars[item].power_user|default(power_user) }} --power-pass={{ hostvars[item].power_pass|default(power_pass) }} --netboot-enabled false

{{ groups.cobbler_managed | intersect(cobbler_systems_current) }}

cobbler system edit --name={{ item.split('.')[0] }} --mac={{ hostvars[item].mac }} --ip-address={{ hostvars[item].ip }} --interface={{ hostvars[item].interface|default(interface) }} --hostname={{ item.split('.')[0] }}.{{ lab_domain }} --kopts="{{ hostvars[item].kernel_options|default(kernel_options) }}" --ksmeta="{{ hostvars[item].kickstart_metadata|default(kickstart_metadata) }}" --power-type={{ hostvars[item].power_type|default(power_type) }} --power-address={{ item.split('.')[0] }}.{{ ipmi_domain }} --power-user={{ hostvars[item].power_user|default(power_user) }} --power-pass={{ hostvars[item].power_pass|default(power_pass) }}

msg="Host {{ inventory_hostname }} is running {{ ansible_distribution }} {{ ansible_distribution_version }} ({{ ansible_distribution_release }})"

{{ subscription_manager_org != '' and subscription_manager_activationkey != ''}}

subscription-manager register --activationkey={{ subscription_manager_activationkey }} --org={{ subscription_manager_org }}

sudo subscription-manager repos --list | grep -B4 'Enabled:.*1' | grep 'Repo ID:' | sed -e 's/Repo ID:\s*\(.*\)/\1/' | sort

timedatectl | grep -E "Time ?zone" | sed -e "s/.*: \(.*\) (.*/\1/"

ansible_distribution_major_version == "6" and current_tz.stdout|default("") != timezone

ansible_distribution_major_version == "7" and current_tz.stdout|default("") != timezone

ansible_distribution == 'RedHat' and ('Beta' in ansible_lsb.description or 'Alpha' in ansible_lsb.description)

This file is managed by ansible, don't make changes here - they will be overwritten.

for file in $(grep -l {{ f2b_grep_var|quote }} /etc/fail2ban/jail.d/*); do rm -vf $file; done

paddles_address is not defined or not paddles_address.startswith('http')

postgresql+psycopg2://{{ paddles_user }}:{{ db_pass }}@localhost/paddles

install_pcp_apt|changed or install_pcp_yum|changed or install_pcp_dnf|changed

install_pmmgr_apt|changed or install_pmmgr_yum|changed or target_host|changed or target_discovery|changed or pmmgr_options|changed or update_pmlogmerge_retain|changed or update_pmlogmerge_reduce|changed

DEBIAN_FRONTEND=noninteractive apt -y install --only-upgrade .*pcp.*

pcp-webapi is only available when using upstream packages. Set upstream_repo to true.

install_pcp_webapi|changed or install_pcp_webjs|changed or enable_pmwebd|changed

cp ./supervisord_pulpito.conf {{ supervisor_conf_path }} chdir={{ pulpito_repo_path }}

perl -pe 'if (m{^([^#]\S*\s+/\s+\S+\s+)(\S+)(\s+.*)$}) { $_="$1$2,user_xattr$3\n" unless $2=~m{(^|,)user_xattr(,|$)}; }' -i.bak /etc/fstab

parted -m {{ drive_to_partition }} print | grep '^[0-9]:' | wc -l

parted {{ drive_to_partition }} unit '%' mkpart primary {{ item }}

ansible_distribution == "RedHat" and ansible_distribution_major_version == "7"

bounce_interface == "True" or (ansible_distribution|lower == 'ubuntu' and ansible_distribution_major_version|int >= 16)

sed -i 's/\/usr\/games"/\/usr\/games:\/usr\/sbin"/g' /etc/profile

ssh/sshd_config_{{ ansible_distribution | lower }}_{{ ansible_distribution_major_version }}

teuthology_user_existence is defined and teuthology_user_existence|changed

(repo_file is defined and repo_file|changed) or (gpg_keys is defined and gpg_keys|changed) or (version_repo_file is defined and version_repo_file|changed)

{% for new_admin in extra_admin_users -%} {% for lab_user in managed_users -%} {% if new_admin.name == lab_user.name %}{{ new_admin.update(lab_user) }}{% endif %} {%- endfor %} {%- endfor %}{{ managed_admin_users|list + extra_admin_users|list }}

[{% for lab_user in managed_users -%} {% if not managed_admin_users|selectattr('name', 'equalto', lab_user.name)|list|length %}{{ lab_user}},{% endif %} {%- endfor %}]

[{% for user in managed_users %} {% if user.name in users %}{{ user }},{%endif%} {%endfor%}]

[{% for user in managed_admin_users %} {% if user.name in users %}{{ user }},{%endif%} {%endfor%}]

[{% for user in revoked_users %} {% if user in users %}'{{ user }}',{%endif%} {%endfor%}]

virsh pool-define-as --name default dir --target /var/lib/libvirt/images

default_pool_info is defined and default_pool_info.stdout|search("State:  *inactive")

default_pool_info is defined and default_pool_info.stdout | search("Autostart:  *no")

{%- set l = [] %} {%- for result in pool_info.results %} {%- if result.rc == 1 %} {%- set dummy = l.append(result.item) %} {%- endif %} {%- endfor -%} {{ l | list }}

virsh pool-define-as --name {{ item | quote }} --type dir --target /srv/libvirtpool/{{ item }};
virsh pool-autostart {{ item | quote }};
virsh pool-build {{ item | quote }};
virsh pool-start {{ item | quote }}

front_net is defined and front_net.stdout | search("Active:  *no")

front_net is defined and front_net.stdout | search("Autostart:  *no")

wget -r -nd -np --cut-dirs=100 -R "index.html*" http://cdn.download.tizen.org/releases/2.4/2.4-base/latest/repos/standard/packages/noarch/ -P /GBS/

wget -r -nd -np --cut-dirs=100 -R "index.html*" http://cdn.download.tizen.org/releases/2.4/2.4-base/latest/repos/standard/packages/armv7l/ -P /GBS/

wget -r -nd -np --cut-dirs=100 -R "index.html*" http://cdn.download.tizen.org/releases/2.4/2.4-mobile/latest/repos/target-TM1/packages/noarch/ -P /GBS/

wget -r -nd -np --cut-dirs=100 -R "index.html*" http://cdn.download.tizen.org/releases/2.4/2.4-mobile/latest/repos/target-TM1/packages/armv7l/ -P /GBS/

. /opt/rh/rh-postgresql96/enable && swiftbackmeup backup --mode now

. /opt/rh/rh-postgresql96/enable && . /etc/dci_db.sh && psql -w -c 'SELECT count(*) FROM users'

{{ store_file_path | default("/var/lib/dci-control-server/files") }}

. /opt/rh/rh-postgresql96/enable && postgresql-setup --initdb --debug

keystone-manage fernet_setup --keystone-user keystone --keystone-group keystone

keystone-manage credential_setup --keystone-user keystone --keystone-group keystone

keystone-manage bootstrap --bootstrap-password {{ swift_ks_admin_token }} \
--bootstrap-admin-url http://{{ ansible_eth0.ipv4.address }}:5000/v3/ \
--bootstrap-internal-url http://{{ ansible_eth0.ipv4.address }}:5000/v3/ \
--bootstrap-public-url http://{{ ansible_host }}:5000/v3/ \
--bootstrap-region-id regionOne

source /home/{{ ansible_user }}/openrc
openstack project create --domain default --description "Service Project" service
openstack role create service
openstack role create swiftoperator
openstack role create user
openstack user create --project service --password {{ swift_service_password }} swift
openstack role add --project service --user swift admin
openstack role add --project service --user admin admin
openstack service create --name swift --description "OpenStack Object Storage" object-store
openstack endpoint create --region regionOne object-store public http://{{ ansible_eth0.ipv4.address }}:8080/v1/AUTH_%\(tenant_id\)s
openstack endpoint create --region regionOne object-store internal http://{{ ansible_host }}:8080/v1/AUTH_%\(tenant_id\)s
openstack endpoint create --region regionOne object-store admin http://{{ ansible_eth0.ipv4.address }}:8080/v1
openstack project create {{ store_tenant_name }}
openstack user create --project {{ store_tenant_name }} --password {{ store_password }} {{ store_username }}
openstack role add --project {{ store_tenant_name }} --user {{ store_username }} member
openstack role add --project {{ store_tenant_name }} --user {{ store_username }} user
openstack role add --project {{ store_tenant_name }} --user {{ store_username }} swiftoperator

dd if=/dev/zero of=/dev/{{ swift_volume_device }} bs=1M count=1024

swift-ring-builder /etc/swift/object.builder create 10 1 1
swift-ring-builder /etc/swift/container.builder create 10 1 1
swift-ring-builder /etc/swift/account.builder create 10 1 1
swift-ring-builder /etc/swift/object.builder add r1z1-{{ ansible_eth0.ipv4.address }}:6000/{{ swift_volume_device }} 1
swift-ring-builder /etc/swift/container.builder add r1z1-{{ ansible_eth0.ipv4.address }}:6001/{{ swift_volume_device }} 1
swift-ring-builder /etc/swift/account.builder add r1z1-{{ ansible_eth0.ipv4.address }}:6002/{{ swift_volume_device }} 1
swift-ring-builder /etc/swift/object.builder rebalance
swift-ring-builder /etc/swift/container.builder rebalance
swift-ring-builder /etc/swift/account.builder rebalance

MARATHON_MASTER=zk://{{ master_ips|join(':2181,') }}:2181/mesos
MARATHON_ZK=zk://{{ master_ips|join(':2181,') }}:2181/marathon

kubeadm reset --force
rm -rf /home/ubuntu/.kube
rm -rf /root/.kube

kubeadm init --apiserver-advertise-address={{ private_ip }} --pod-network-cidr=10.244.0.0/16

kubectl apply -f https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml

cd $HOME/fio/ && wget http://freecode.com/urls/3aa21b8c106cab742bf1f20d60629e3f -O fio.tar.gz

src=./etc/fio_test_job  dest={{home_dir.stdout}}/fio/fio-2.1.10/

cd $HOME/fio/fio-2.1.10  &&  sudo ./fio --output-format=json --output=$HOME/qtip_result/fio_result.json fio_test_job

cd $HOME/qtip_result &&  sudo python final_report.py FIO {{fname}}

(cd $HOME/qtip_result/; find . -maxdepth 1 -name "*.json") | cut -d'/' -f2

(cd $HOME/qtip_result/; find . -maxdepth 1 -name "*.log") | cut -d'/' -f2

(find {{Dest_dir}}/fio/fio_temp/ -name "*.json" | xargs cp -t {{Dest_dir}}/fio/)

(find {{Dest_dir}}/fio/fio_temp/ -name "*.log" | xargs cp -t {{Dest_dir}}/fio/logs)

iperf3  --time {{duration}} -b 0 G -c {{ip1}} -J -O10 >> {{home_dir.stdout}}/qtip_result/iperf_raw.json

iperf3  --time {{duration}} -b 0 G -c {{privateip1}} -J -O10 >> {{home_dir.stdout}}/qtip_result/iperf_raw.json

cd $HOME/qtip_result &&  sudo python final_report.py IPERF {{fname}}

(find {{Dest_dir}}/iperf/iperf_temp/ -name "*.json" | xargs cp -t {{Dest_dir}}/iperf/)

( find {{Dest_dir}}/iperf/iperf_temp/ -name "*.log" | xargs cp -t {{Dest_dir}}/iperf/logs)

ansible_distribution == "Ubuntu" and ansible_distribution_version== "16.04"

src={{ item }}.conf.j2 dest=/etc/nginx/sites-enabled/{{ item }}.conf

{{ lookup('ini', '{{ item }} section=client default='' file={{ output }}/ceph.conf')  }}

lsblk -d -o name,rota |awk '{if ($2 == 0)  printf "%s SSD \n",$1 }'

netstat -nr |grep  "U" | awk '{printf "interface %s network %s mask  %s \n",$8,$1, $3 }'

{{ lookup('ini', '{{ item }} section=global default='' file={{ output }}/ceph.conf')  }}

source {{ ansible_env.HOME}}/stackrc && openstack baremetal list --fields instance_uuid properties provision_state --format json

source {{ ansible_env.HOME }}/stackrc && openstack server list --format json

./Run -i {{ iterations }} -c {{ parallel_copies }} dhrystone whetstone

{{ ANSIBLE_REPO_PATH }}/configs/{{ env_type }}/env_secret_vars.yml

aws cloudformation describe-stacks --stack-name {{project_tag}} --region {{item}}

az login --service-principal -u {{azure_service_principal}} -p {{azure_password}} --tenant {{azure_tenant}}

az group create --name "{{az_resource_group}}" --location "{{azure_region}}"

{
  "adminUsername": { "value": "{{remote_user}}" },
  "sshKeyData": { "value": "{{ssh_key_data}}"},
  "DNSZone": { "value": "{{HostedZoneId}}"},
  "guid": { "value": "{{guid}}"},
}

az group deployment validate --template-file {{t_dest}} --resource-group {{az_resource_group}} --parameters @{{params_dest}}

az group deployment create --name {{env_type}}.{{guid}} --template-file {{t_dest}} --resource-group {{az_resource_group}} --parameters @{{params_dest}}

az vm list --resource-group "{{az_resource_group}}" --show-details

az vm restart --resource-group {{az_resource_group}} --name '{{inventory_hostname}}'

{{ windows_password | default(hostvars['localhost'].generated_windows_password) }}

{{ ANSIBLE_REPO_PATH }}/workdir/{{ env_type }}_{{ guid }}_ssh_conf

{{ ANSIBLE_REPO_PATH }}/workdir/{{ env_type }}_{{ guid }}_ssh_known_hosts

{{ ansible_ssh_extra_args|d() }} -F {{ hostvars['localhost'].ansible_ssh_config }}

{{ ansible_ssh_extra_args|d() }} -F {{ ANSIBLE_REPO_PATH }}/workdir/{{ env_type }}_{{ guid }}_ssh_conf

{{ ANSIBLE_REPO_PATH }}/configs/{{ env_type }}/files/cloud_providers/{{cloud_provider}}_cloud_template.j2

{{ ANSIBLE_REPO_PATH }}/workdir/{{cloud_provider}}_cloud_template.{{ env_type }}.{{ guid }}.template

{{ ANSIBLE_REPO_PATH }}/inventory/{{ cloud_provider }}.py  --list {{ app_results.app_name }}

{{ ravello_groups | json_query('_meta.hostvars."bastion-REPL.rhpds.opentlc.com".externalFqdn') }}

#!/bin/bash
ssh -i {{ ANSIBLE_REPO_PATH }}/workdir/{{ guid }}key cloud-user@{{ bastion_hostname.external }}

cd {{ANSIBLE_REPO_PATH}}/workdir ; terraform init ; terraform destroy -force

{{ANSIBLE_REPO_PATH}}/workdir/{{ env_type }}.{{ guid }}.{{cloud_provider}}.tf

cd {{ANSIBLE_REPO_PATH}}/workdir ; terraform init ; terraform apply chdir="{{ANSIBLE_REPO_PATH}}/workdir" -auto-approve

{{ ANSIBLE_REPO_PATH }}/configs/{{ env_type }}/files/cloud_providers/aws.tf.j2

{{ terraform_working_dir }}/{{ workshop_prefix }}/terraform.tfvars

{{ ANSIBLE_REPO_PATH }}/configs/{{ env_type }}/files/cloud_providers/terraform.tfvars.j2

terraform apply chdir="{{ terraform_working_dir }}/{{ workshop_prefix }}"

ssh-keygen -b 2048 -t rsa -f {{ ANSIBLE_REPO_PATH }}/workdir/{{env_authorized_key}} -q -N ""

{{ lookup('file', '{{ ANSIBLE_REPO_PATH }}/workdir/{{ env_authorized_key }}.pub') | regex_replace(' ' + my_login_domain, '') }}

ssh-keygen -b 2048 -t rsa -f "{{ ANSIBLE_REPO_PATH }}/workdir/{{env_authorized_key}}" -q -N ""

{{ ANSIBLE_REPO_PATH }}/workdir/{{ env_type }}_{{guid}}_windows_password.txt

ssh-keygen -y -f "{{ ANSIBLE_REPO_PATH }}/workdir/{{env_authorized_key}}" > "{{ ANSIBLE_REPO_PATH }}/workdir/{{env_authorized_key}}.pub"

[default]
aws_access_key_id = {{ item.aws_access_key_id }}
aws_secret_access_key = {{ item.aws_secret_access_key }}

{{ ANSIBLE_REPO_PATH }}/configs/{{ env_type }}/files/Sync_Repositories.sh

openssl req -x509 -nodes -days 3650 -newkey rsa:2048 -keyout {{ httpd_ssl_key }} -out {{ httpd_ssl_cert }} -subj '/CN={{provisioner_public_dns}}/O=Red Hat/C=US'

{{ terraform_working_dir }}/{{ workshop_prefix }}/{{ workshop_prefix }}-tower

{{ ANSIBLE_REPO_PATH }}/configs/{{ env_type }}/files/labs_hosts_template.j2

{{ ANSIBLE_REPO_PATH }}/workdir/labs_hosts-{{ env_type }}-{{ guid }}

/usr/sbin/ipa-client-install --domain=OPENTLC.COM -w {{ipa_host_password}} -N -U --mkhomedir --no-dns-sshfp --hostname={{bastion_public_dns_chomped}}

oc login  master.{{subdomain_base}} -u {{admin_user}} -p {{admin_user_password}} --insecure-skip-tls-verify=true

oc new-app https://github.com/StefanoPicozzi/cotd.git   -n envtests

cloudformation_out.stack_outputs.S3UserSecretAccessKey is defined

{{ANSIBLE_REPO_PATH}}/workdir/{{ env_type }}.{{ guid }}.s3user.credentials

* S3 Bucket for registry: {{s3user}}
** S3User access key: {{s3user_access_key}}
** S3User secret key: {{s3user_secret_access_key}}

{{ cloudformation_out.stack_outputs.Route53UserSecretAccessKey }}

cloudformation_out.stack_outputs.Route53UserAccessKey is defined

cloudformation_out.stack_outputs.Route53UserSecretAccessKey is defined

{{ANSIBLE_REPO_PATH}}/workdir/{{ env_type }}.{{ guid }}.route53user.credentials

* Route53 User for Let's Encrypt: {{ route53user }}
** Route53User access key: {{ route53user_access_key }}
** Route53User secret key: {{ route53user_secret_access_key }}

parted -m /dev/sda print all 2>/dev/null | grep unknown | grep /dev/sd | cut -d':' -f1 | sed -n '{{ (instances|json_query(query)|int) + 1}}p'

[?name == 'support']|[].volumes[?purpose=='glusterfs'].lun|[0][0]

[?name == 'infranode']|[].volumes[?purpose=='docker'].lun|[0][0]

oc patch storageclass glusterfs-storage -p '{"metadata": {"annotations": {"storageclass.kubernetes.io/is-default-class": "true"}}}'

changesc_r.stdout.find('storageclass "glusterfs-storage" not patched') == -1

changesc_r.stdout.find('storageclass "glusterfs-storage" patched') != -1

changesc_r.stdout.find('storageclass "glusterfs-storage-block" patched') != -1

changesc_r.stdout.find('storageclass "glusterfs-storage-block" not patched') == -1

oc patch storageclass glusterfs-storage-block -p '{"metadata": {"annotations": {"storageclass.kubernetes.io/is-default-class": "false"}}}'

oc set env dc/router ROUTER_ALLOW_WILDCARD_ROUTES=true -n default

oc adm policy add-cluster-role-to-user cluster-admin {{ admin_user }}

oc adm new-project {{admin_project}} --admin {{admin_user}} --node-selector='env=infra'

oc adm policy add-scc-to-group anyuid system:serviceaccounts:{{admin_project}}

oc patch scc/anyuid --patch '{"requiredDropCapabilities":["MKNOD","SYS_CHROOT"]}'

oc annotate namespace openshift-template-service-broker openshift.io/node-selector="" --overwrite

oc annotate -n default --overwrite clusterrolebinding.rbac self-provisioners rbac.authorization.kubernetes.io/autoupdate=false

oadm policy remove-cluster-role-from-group self-provisioner system:authenticated system:authenticated:oauth

oadm policy add-cluster-role-to-group self-provisioner OPENTLC-PROJECT-PROVISIONERS

oc create -f /root/project-template.yml -n default || oc replace -f /root/project-template.yml -n default

oc tag --source=docker registry.access.redhat.com/openshift3/jenkins-2-rhel7:v{{ repo_version }} openshift/jenkins:v{{ repo_version }} -n openshift

oc tag openshift/jenkins:v{{ repo_version }} openshift/jenkins:latest -n openshift

docker pull registry.access.redhat.com/openshift3/ose-recycler:latest

docker tag registry.access.redhat.com/openshift3/ose-recycler:latest registry.access.redhat.com/openshift3/ose-recycler:v{{ osrelease }}

oc patch daemonset dockergc --patch='"spec": { "template": { "spec": { "containers": [ { "command": [ "/usr/bin/oc" ], "name": "dockergc" } ] } } }' -n default

oc delete pod $(oc get pods -n default|grep dockergc|awk -c '{print $1}') -n default

{{ ANSIBLE_REPO_PATH }}/configs/{{ env_type }}/files/ocp_report.adoc.j2

{{ ANSIBLE_REPO_PATH }}/workdir/ocp_report_{{ env_type }}-{{ guid }}.adoc

{{ ANSIBLE_REPO_PATH }}/configs/{{ env_type }}/files/hosts_template.j2

{{ ANSIBLE_REPO_PATH }}/workdir/scaleup_hosts-{{ env_type }}-{{ guid }}

aws route53 list-hosted-zones-by-name --region={{aws_region_final|d(aws_region)}} --dns-name={{guid}}.internal. --output text --query='HostedZones[*].Id' | awk -F'/' '{print $3}'

aws route53 change-resource-record-sets --hosted-zone-id {{internal_zone_id}}  --change-batch file://{{ ANSIBLE_REPO_PATH }}/workdir/internal_dns-{{ env_type }}-{{ guid }}_DELETE.json --region={{aws_region}}

"{{env_type}}-{{guid}}" in hostvars[item].{{cloud_provider}}_tag_Project

{{ ANSIBLE_REPO_PATH }}/workdir/internal_dns-{{ env_type }}-{{ guid }}.json

{{ ANSIBLE_REPO_PATH }}/workdir/internal_dns-{{ env_type }}-{{ guid }}_DELETE.json

aws route53 list-hosted-zones-by-name --region={{aws_region}} --dns-name={{guid}}.internal. --output text --query='HostedZones[*].Id' | awk -F'/' '{print $3}'

aws route53 change-resource-record-sets --hosted-zone-id {{internal_zone_id}}  --change-batch file://{{ ANSIBLE_REPO_PATH }}/workdir/internal_dns-{{ env_type }}-{{ guid }}.json --region={{aws_region}}

aws route53 change-resource-record-sets --hosted-zone-id {{internal_zone_id}}  --change-batch file://{{ ANSIBLE_REPO_PATH }}/workdir/internal_dns-{{ env_type }}-{{ guid }}_DELETE.json --region={{aws_region_final|d(aws_region)}}

aws route53 change-resource-record-sets --hosted-zone-id {{internal_zone_id}}  --change-batch file://{{ ANSIBLE_REPO_PATH }}/workdir/internal_dns-{{ env_type }}-{{ guid }}.json --region={{aws_region_final|d(aws_region)}}

{{ ANSIBLE_REPO_PATH }}/configs/{{ env_type }}/files/opentlc-sample-config.sh.j2

{{ ANSIBLE_REPO_PATH }}/workdir/ssh-config-{{ env_type }}-{{ guid }}

{{ ANSIBLE_REPO_PATH }}/workdir/{{ cloud_provider }}_cloud_template.{{ env_type }}.{{ guid }}.json

{{ hostvars[ groups[ ('tag_' ~ env_type ~ '_' ~ guid ~ '_bastion') | replace('-', '_') ].0 ]['ec2_public_dns_name'] }}

{{ hostvars[ groups[ ('tag_' ~ env_type ~ '_' ~ guid ~ '_support') | replace('-', '_') ].0 ]['ec2_public_dns_name'] }}

{{ oc_path }} create -f /root/pvs-{{ env_type }}-{{ guid }}.yml || {{ oc_path }} update -f /root/pvs-{{ env_type }}-{{ guid }}.yml

{{ oc_path }} create -f /root/userpvs-{{ env_type }}-{{ guid }}.yml || {{ oc_path }} update -f /root/userpvs-{{ env_type }}-{{ guid }}.yml

{{ oc_path }} adm policy add-cluster-role-to-user cluster-admin admin

{{ oc_path }} adm new-project workshop-infra --admin admin --node-selector='env=infra'

{{ oc_path }} adm pod-network make-projects-global workshop-infra

{{ oc_path }} adm policy add-scc-to-group anyuid system:serviceaccounts:workshop-infra

{{ oc_path }} patch scc/anyuid --patch '{"requiredDropCapabilities":["MKNOD","SYS_CHROOT"]}'

{{ oc_path }} create -f /root/openjdk-is.yaml -n openshift || {{ oc_path }} replace -f /root/openjdk-is.yaml -n openshift

{{ oc_path }} create -f /root/java-s2i-is.yaml -n openshift || {{ oc_path }} replace -f /root/java-s2i-is.yaml -n openshift

{{ oc_path }} create -f https://raw.githubusercontent.com/openshift-roadshow/nationalparks/1.0.0/ose3/pipeline-template.yaml -n openshift || {{ oc_path }} replace -f https://raw.githubusercontent.com/openshift-roadshow/nationalparks/1.0.0/ose3/pipeline-template.yaml -n openshift

{{ oc_path }} process -f /root/gitlab-template.yaml -v APPLICATION_HOSTNAME=gitlab-ce-workshop-infra.{{ cloudapps_suffix }} -v GITLAB_ROOT_PASSWORD=password | {{ oc_path }} create -f - -n workshop-infra

{{ oc_path }} annotate service gitlab-ce service.alpha.openshift.io/dependencies='[{"name":"gitlab-ce-postgresql","namespace":"","kind":"Service"},{"name":"gitlab-ce-redis","namespace":"","kind":"Service"}]' --overwrite -n workshop-infra

{{ oc_path }} new-app --name=labs jboss-eap70-openshift~{{ lab_url }}#{{ lab_tag }} -e ROUTER_ADDRESS={{cloudapps_suffix}} -e CONSOLE_ADDRESS=master.{{subdomain_base}} -e DEFAULT_LAB=roadshow -e NODES={{ num_nodes }} -e NUM_USERS={{ user_vols }} -e WORKSHOPS_URLS={{ lab_content }} -n workshop-infra; {{ oc_path }} expose service labs -n workshop-infra

{{ oc_path }} create -f /root/project-template.yaml -n default || {{ oc_path }} replace -f /root/project-template.yaml -n default

ansible-playbook -i localhost /root/userprovision.yaml -e config={{ env_type }} -e user={{ item }} -e root_token={{ root_token }} -e gitlab_hostname={{ gitlab_hostname }}

{{ oc_path }} new-app --name=mysql-pad --template=mysql-ephemeral -p MYSQL_USER=etherpad -p MYSQL_PASSWORD=etherpad -p MYSQL_DATABASE=etherpad -p DATABASE_SERVICE_NAME=mysql-pad -n workshop-infra

{{ oc_path }} new-app --name=etherpad centos/etherpad -e DB_HOST=mysql-pad -e DB_DBID=etherpad -e DB_PASS=etherpad -e DB_USER=etherpad -e DB_PORT=3306 -n workshop-infra

{{ oc_path }} annotate service etherpad service.alpha.openshift.io/dependencies='[{"name":"mysql-pad","namespace":"","kind":"Service"}]' --overwrite -n workshop-infra

{{ oc_path }} new-project explore-{{user}} --as=user{{user}} --skip-config-write

/bin/ansible-playbook -i /etc/ansible/hosts -e hosts_to_apply="masters" /root/openshift-psap/playbooks/nvidia-driver-install.yaml

/bin/ansible-playbook -i /etc/ansible/hosts -e hosts_to_apply="masters" /root/openshift-psap/playbooks/nvidia-container-runtime-hook.yaml

/bin/ansible-playbook -i /etc/ansible/hosts -e hosts_to_apply="masters" -e gpu_hosts="nodes" /root/openshift-psap/playbooks/nvidia-device-plugin.yaml

oc get daemonset -n nvidia-device-plugin nvidia-deviceplugin-daemonset -o jsonpath --template='{.status.numberReady}'

oc get node {{ item }} -o jsonpath --template='{.status.capacity.nvidia\.com/gpu}'

cat /root/openshift-psap/blog/gpu/device-plugin/cuda-vector-add.yaml | grep -v "namespace: nvidia" | oc create -n nvidia-device-plugin -f -

oc get pod -n nvidia-device-plugin cuda-vector-add -o jsonpath --template='{.status.phase}'

{{ cloudformation_out_final.stack_outputs.S3UserSecretAccessKey }}

cloudformation_out_final.stack_outputs.S3UserAccessKey is defined

cloudformation_out_final.stack_outputs.S3UserSecretAccessKey is defined

{{ cloudformation_out_final.stack_outputs.Route53UserAccessKey }}

{{ cloudformation_out_final.stack_outputs.Route53UserSecretAccessKey }}

cloudformation_out_final.stack_outputs.Route53UserAccessKey is defined

cloudformation_out_final.stack_outputs.Route53UserSecretAccessKey is defined

oc create -f /root/pvs-{{ env_type }}-{{ guid }}.yml || oc replace -f /root/pvs-{{ env_type }}-{{ guid }}.yml

oc create -f /root/userpvs-{{ env_type }}-{{ guid }}.yml || oc replace -f /root/userpvs-{{ env_type }}-{{ guid }}.yml

oc adm new-project {{admin_project}} --admin {{admin_user}} --node-selector='node-role.kubernetes.io/infra=true'

oc adm policy remove-cluster-role-from-group self-provisioner system:authenticated system:authenticated:oauth

oc adm policy add-cluster-role-to-group self-provisioner OPENTLC-PROJECT-PROVISIONERS

oc tag openshift/jenkins:v{{ repo_version }} openshift/jenkins:2 -n openshift

docker tag registry.access.redhat.com/openshift3/ose-recycler:latest registry.access.redhat.com/openshift3/ose-recycler:v1.10.0

ansible-playbook -i /etc/ansible/hosts /usr/share/ansible/openshift-ansible/playbooks/openshift-grafana/config.yml

oc policy add-role-to-user admin {{admin_user}} -n openshift-grafana

-A OS_FIREWALL_ALLOW -p tcp -m state --state NEW -m tcp --dport 9100 -j ACCEPT

ansible-playbook -i /etc/ansible/scaleup_hosts /usr/share/ansible/openshift-ansible/playbooks/openshift-node/scaleup.yml

{{ openshift_cli }} new-project {{ project_name }} --description='DO NOT REMOVE THIS PROJECT. NEEDED FOR COOLSTORE DEMO'

{{ openshift_cli }} process -f {{ pipeline_template }} --param=GITHUB_ACCOUNT={{ github_account }} --param=GITHUB_REF={{ github_ref }} --param=MAVEN_MIRROR_URL={{ maven_mirror_url }} -n {{ project_name }} | {{ openshift_cli }} create -f - -n {{ project_name }}

{{ ANSIBLE_REPO_PATH }}/configs/{{env_type}}/create_oc_config.yml

maven_mirror_url is not defined or maven_mirror_url is none or maven_mirror_url|trim() == ""

http://gogs-{{ project_cicd }}.{{ apps_hostname_suffix }}/{{ gogs_user }}/coolstore-microservice

http://hystrix-dashboard-{{ project_prod }}.{{ apps_hostname_suffix }}

{{ openshift_cli }} delete project {{ project_cicd }} {{ project_prod }} {{ project_stage }} {{ project_test }} {{ project_dev }}

{{ openshift_cli }} scale --replicas={{ item.metadata.annotations['idling.alpha.openshift.io/previous-scale'] }} dc {{ item.metadata.name }} -n {{ project_default }}

{{ deploymentconfigs_list.stdout|from_json|json_query('items') }}

result|success and item.metadata.annotations is defined and item.metadata.annotations['idling.alpha.openshift.io/previous-scale'] is defined and item.metadata.annotations['idling.alpha.openshift.io/previous-scale'] is not none and item.metadata.annotations['idling.alpha.openshift.io/previous-scale']|trim() != ""

{{ openshift_cli }} scale --replicas={{ item.metadata.annotations['idling.alpha.openshift.io/previous-scale'] }} dc {{ item.metadata.name }} -n {{ project_cicd }}

{{ openshift_cli }} scale --replicas={{ item.metadata.annotations['idling.alpha.openshift.io/previous-scale'] }} dc {{ item.metadata.name }} -n {{ project_prod }}

{{ openshift_cli }} scale --replicas={{ item.metadata.annotations['idling.alpha.openshift.io/previous-scale'] }} dc {{ item.metadata.name }} -n {{ project_stage }}

{{ openshift_cli }} scale --replicas={{ item.metadata.annotations['idling.alpha.openshift.io/previous-scale'] }} dc {{ item.metadata.name }} -n {{ project_test }}

{{ openshift_cli }} scale --replicas={{ item.metadata.annotations['idling.alpha.openshift.io/previous-scale'] }} dc {{ item.metadata.name }} -n {{ project_dev }}

oc get pods -n {{ project_cicd }} -l comp-type=database | grep '\-deploy\s' | grep 'Running'

oc get pods -n {{ project_prod }} -l comp-type=database | grep '\-deploy\s' | grep 'Running'

oc get pods -n {{ project_test }} -l comp-type=database | grep '\-deploy\s' | grep 'Running'

oc get pods -n {{ project_dev }} -l comp-type=database | grep '\-deploy\s' | grep 'Running'

oc get pods -n {{ project_cicd }} -l comp-type!=database | grep '\-deploy\s' | grep 'Running'

oc get pods -n {{ project_prod }} -l comp-type!=database | grep '\-deploy\s' | grep 'Running'

oc get pods -n {{ project_stage }} -l comp-type!=database | grep '\-deploy\s' | grep 'Running'

oc get pods -n {{ project_test }} -l comp-type!=database | grep '\-deploy\s' | grep 'Running'

oc get pods -n {{ project_dev }} -l comp-type!=database | grep '\-deploy\s' | grep 'Running'

{{ openshift_cli }} get dc -l {{ selector }} -o jsonpath='{.items[*].metadata.name}' -n {{ project_cicd }}

{{ openshift_cli }} get dc {{ deploymentconfigs_list.stdout }} -o json -n {{ project_cicd }}

{{ openshift_cli }} rollout cancel dc/{{ dc.metadata.name }} -n {{ project_cicd }} | true
sleep 30
{{ openshift_cli }} rollout latest dc/{{ dc.metadata.name }} -n {{ project_cicd }}
{{ openshift_cli }} rollout status dc/{{ dc.metadata.name }} -n {{ project_cicd }}

{{ openshift_cli }} get dc -l {{ selector }} -o jsonpath='{.items[*].metadata.name}' -n {{ project_prod }}

{{ openshift_cli }} get dc {{ deploymentconfigs_list.stdout }} -o json -n {{ project_prod }}

{{ openshift_cli }} rollout cancel dc/{{ dc.metadata.name }} -n {{ project_prod }} | true
sleep 30
{{ openshift_cli }} rollout latest dc/{{ dc.metadata.name }} -n {{ project_prod }}
{{ openshift_cli }} rollout status dc/{{ dc.metadata.name }} -n {{ project_prod }}

{{ openshift_cli }} get dc -l {{ selector }} -o jsonpath='{.items[*].metadata.name}' -n {{ project_stage }}

{{ openshift_cli }} get dc {{ deploymentconfigs_list.stdout }} -o json -n {{ project_stage }}

{{ openshift_cli }} rollout cancel dc/{{ dc.metadata.name }} -n {{ project_stage }} | true
sleep 30
{{ openshift_cli }} rollout latest dc/{{ dc.metadata.name }} -n {{ project_stage }}
{{ openshift_cli }} rollout status dc/{{ dc.metadata.name }} -n {{ project_stage }}

{{ openshift_cli }} get dc -l {{ selector }} -o jsonpath='{.items[*].metadata.name}' -n {{ project_test }}

{{ openshift_cli }} get dc {{ deploymentconfigs_list.stdout }} -o json -n {{ project_test }}

{{ openshift_cli }} rollout cancel dc/{{ dc.metadata.name }} -n {{ project_test }} | true
sleep 30
{{ openshift_cli }} rollout latest dc/{{ dc.metadata.name }} -n {{ project_test }}
{{ openshift_cli }} rollout status dc/{{ dc.metadata.name }} -n {{ project_test }}

{{ openshift_cli }} get dc -l {{ selector }} -o jsonpath='{.items[*].metadata.name}' -n {{ project_dev }}

{{ openshift_cli }} get dc {{ deploymentconfigs_list.stdout }} -o json -n {{ project_dev }}

{{ openshift_cli }} rollout cancel dc/{{ dc.metadata.name }} -n {{ project_dev }} | true
sleep 30
{{ openshift_cli }} rollout latest dc/{{ dc.metadata.name }} -n {{ project_dev }}
{{ openshift_cli }} rollout status dc/{{ dc.metadata.name }} -n {{ project_dev }}

'database', 'redis' and 'quay_enterprise' groups must be specified

'redis' not in groups or groups['redis']| length == 0 or 'database' not in groups or groups['database']| length == 0 or 'quay_enterprise' not in groups or groups['quay_enterprise']| length == 0

aws route53 change-resource-record-sets --hosted-zone-id {{internal_zone_id}} --change-batch file://{{ ANSIBLE_REPO_PATH }}/workdir/internal_dns-{{ env_type }}-{{ guid }}_DELETE.json --region={{aws_region_final|d(aws_region)}}

src="{{ item }}" dest="/home/{{ system_user }}/" owner="{{ system_user }}" group="{{ system_user }}"

dest="/home/{{ system_user }}/ansible.cfg" src=ansible.cfg.j2 owner="{{ system_user }}" group="{{ system_user }}"

src="{{ item.src }}" dest="/home/{{ system_user }}/walkthrough/{{ item.dest }}" mode=0755 owner="{{ system_user }}" group="{{ system_user }}"

tower-cli organization create --name {{ item.org_name }} --description {{ item.org_description }}

tower-cli team create --name {{ item.team_name }} --description {{ item.team_description }} --organization {{ item.team_org_name }}

tower-cli user create  --username {{ item.username }}  --first-name {{ item.first_name }}  --last-name {{ item.last_name }}  --email {{ item.email }}  --password {{ item.password }}   --is-superuser "{{ item.superuser | bool }}"  --is-system-auditor "{{ item.auditor | bool }}"

tower-cli team associate --user {{ item.username }} --team "Lab-Team"

tower-cli organization associate --user {{ item.username }} --organization "Lab-Organization"

{{ ANSIBLE_REPO_PATH }}/configs/{{ env_type }}/files/repos_template.j2

/usr/bin/yum -y localinstall http://{{satellite_url}}/pub/katello-ca-consumer-latest.noarch.rpm

subscription-manager repos --enable=rhel-7-server-satellite-tools-6.2-rpms

/usr/bin/subscription-manager list --all --available --matches="*OpenShift Container Platform*" | awk '/Pool ID/ {print $3}' | head -1

/usr/bin/subscription-manager attach --pool={{ pool_id.stdout }}

subscription-manager register --username="{{ username }}" --password="{{ password }}" --force

subscription-manager repos --list-enabled | egrep 'rhel-7-server-extras-rpms|rhel-7-server-optional-rpms|rhel-7-server-rpms' | wc -l

subscription-manager repos --enable="rhel-7-server-rpms" --enable="rhel-7-server-extras-rpms" --enable="rhel-7-server-optional-rpms"

/usr/sbin/ipa-client-install --domain=OPENTLC.COM -w '{{ipa_host_password}}' -N -U --mkhomedir --no-dns-sshfp --hostname={{bastion_public_dns_chomped}} {{ipa_additional_options|d('')}}

/usr/sbin/ipa-client-install --uninstall; rm -f /var/lib/ipa-client/sysrestore.state; /usr/sbin/ipa-client-install --domain=OPENTLC.COM -w '{{ipa_host_password}}' -N -U --mkhomedir --no-dns-sshfp --hostname={{bastion_public_dns_chomped}} {{ipa_additional_options|d('')}}

/usr/sbin/ipa-client-install --domain=OPENTLC.COM -p {{ipa_kerberos_user}} -w '{{ipa_kerberos_password}}' -N -U --mkhomedir --no-dns-sshfp --hostname={{bastion_public_dns_chomped}} {{ipa_additional_options|d('')}}

/usr/sbin/ipa-client-install --uninstall; rm -f /var/lib/ipa-client/sysrestore.state; /usr/sbin/ipa-client-install --domain=OPENTLC.COM -p {{ipa_kerberos_user}} -w '{{ipa_kerberos_password}}' -N -U --mkhomedir --no-dns-sshfp --hostname={{bastion_public_dns_chomped}} {{ipa_additional_options|d('')}}

/usr/bin/subscription-manager list --all --available --matches="*{{rhn_pool_id_string}}*" | awk '/Pool ID/ {print $3}' | head -1

{{ lookup('password', '/dev/null length=5 chars=ascii_letters') | lower }}

mysql_root_username is undefined and mysql_root_username|trim == ""

{{ lookup('password', '/dev/null length=10 chars=ascii_letters,digits,hexdigits') }}

mysql_root_password is undefined and mysql_root_password|trim == ""

postgresql_username is undefined and postgresql_username|trim == ""

postgresql_password is undefined and postgresql_password|trim == ""

postgresql_admin_user is undefined and postgresql_admin_user|trim == ""

postgresql_admin_password is undefined and postgresql_admin_password|trim == ""

{{ remote_container_credentials_file.content| b64decode | from_json }}

{ '{{quay_registry_server}}':{ 'email': '{{ quay_registry_email }}', 'auth': '{{ quay_registry_auth }}' } }

{{ container_credentials_file_content | combine(quay_container_credentials, recursive=True) }}

Invalid Database Type. 'database_type' must be 'postgresql' or 'mysql'

ansible-playbook -i /etc/ansible/hosts /root/openshift-ansible/playbooks/byo/config.yml

ansible-playbook -i /etc/ansible/hosts /usr/share/ansible/openshift-ansible/playbooks/byo/config.yml

ansible-playbook -i /etc/ansible/hosts /root/openshift-ansible/playbooks/prerequisites.yml

ansible-playbook -i /etc/ansible/hosts /usr/share/ansible/openshift-ansible/playbooks/prerequisites.yml

ansible-playbook -i /etc/ansible/hosts /root/openshift-ansible/playbooks/deploy_cluster.yml

ansible-playbook -i /etc/ansible/hosts /usr/share/ansible/openshift-ansible/playbooks/deploy_cluster.yml

for i in $(seq 40); do
  docker pull {{item}}:v{{osrelease}}
  RET=$?
  [ $RET = 0 ] && exit 0
  sleep 5
done
exit $RET

  docker pull {{item}}
  RET=$?
  sleep 5
done
exit $RET

  docker pull openshift3/{{item}}
  RET=$?
  sleep 5
done
exit $RET

{{ANSIBLE_REPO_PATH}}/workdir/{{ env_type }}.{{ guid }}.{{cloud_provider}}_cloud_template-orig

jq -c . < {{ ANSIBLE_REPO_PATH }}/workdir/{{ env_type }}.{{ guid }}.{{cloud_provider}}_cloud_template-orig >  ../workdir/{{ env_type }}.{{ guid }}.{{cloud_provider}}_cloud_template

cp {{ ANSIBLE_REPO_PATH }}/workdir/{{ env_type }}.{{ guid }}.{{cloud_provider}}_cloud_template-orig ../workdir/{{ env_type }}.{{ guid }}.{{cloud_provider}}_cloud_template

aws cloudformation validate-template --region {{ aws_region_final | d(aws_region) | default(region) | default('us-east-1')}} --template-body file://../workdir/{{ env_type }}.{{ guid }}.{{cloud_provider}}_cloud_template

oc new-project aws-service-broker --node-selector='node-role.kubernetes.io/infra=true'

/root/acme.sh/acme.sh {{ acme_args|d('') }} --issue -d {{ master_lb_dns }} -d *.{{ cloudapps_suffix }} --dns dns_aws

/root/acme.sh/acme.sh {{ acme_args|d('') }} --issue -d {{ master_lb_dns }} -d *.{{ cloudapps_suffix }} --dns dns_azure

oc new-app -f /root/nexus-template.yaml --param=VOLUME_CAPACITY=10Gi --param=MAX_MEMORY=8Gi -n {{desired_project}}

oc process -f https://raw.githubusercontent.com/apache/incubator-openwhisk-deploy-openshift/master/persistent-template.yml|oc create -f - -n openwhisk

oc process -f https://raw.githubusercontent.com/apache/incubator-openwhisk-deploy-openshift/master/persistent-template.yml > /root/openwhisk.json

oc label node infranode1.{{ chomped_zone_internal_dns }} prometheus-host=true --overwrite

oc new-project prometheus --display-name="Prometheus Monitoring" && oc project default

oc set env dc router -n default --list|grep STATS_PASSWORD|awk -F"=" '{print $2}'

oc new-app -f https://raw.githubusercontent.com/wkulhanek/openshift-prometheus/{{ prometheus_tag }}/prometheus.yaml --param ROUTER_PASSWORD={{ router_password.stdout }} -n prometheus

oc adm policy add-scc-to-user privileged system:serviceaccount:prometheus:prometheus

oc adm policy add-scc-to-user privileged system:serviceaccount:prometheus:default

oc new-app -f https://raw.githubusercontent.com/wkulhanek/openshift-prometheus/{{ prometheus_tag }}/node-exporter/node-exporter.yaml -n prometheus

oc new-app -f https://raw.githubusercontent.com/wkulhanek/openshift-prometheus/{{ prometheus_tag }}/alertmanager/alertmanager.yaml --param "WEBHOOK_URL={{ webhook_url }}" -n prometheus

oc patch dc alertmanager --patch '{ "spec": { "template": { "spec": { "nodeSelector": { "env":"infra"}}}}}' -n prometheus

oc new-app -f https://raw.githubusercontent.com/wkulhanek/docker-openshift-grafana/{{ grafana_tag }}/grafana.yaml -n prometheus

oc patch dc grafana --patch '{ "spec": { "template": { "spec": { "nodeSelector": { "env":"infra"}}}}}' -n prometheus

tower-cli credential create --credential-type 'Amazon Web Services' --name "AWS Access Key"  --organization Default --inputs @/tmp/read_only.json

ip addr show eth0 | grep 'inet ' | awk '{print $2}' | cut -d/ -f1

ipa-server-install -U --setup-dns --ip-address={{local_ip.stdout}} --hostname={{ ipa_public_dns_chomped }} --domain={{ ipa_domain }} --realm={{ ipa_realm }} --ds-password={{ ipa_directory_manager_password }} --admin-password={{ ipa_principal_user_password }}  --no-forwarders

curl --insecure -X POST 'https://secure-sso-{{sso_project}}.{{ocp_apps_domain}}/auth/realms/master/protocol/openid-connect/token' -H 'Content-Type: application/x-www-form-urlencoded' -d 'username=keyadmin' -d 'password=keypassword' -d 'grant_type=password' -d 'client_id=admin-cli'

curl --insecure 'https://secure-sso-{{sso_project}}.{{ocp_apps_domain}}/auth/admin/realms/insurance/clients' -H 'Content-Type: application/json' -H 'Authorization: Bearer {{TKN}}'

curl --insecure 'https://secure-sso-{{sso_project}}.{{ocp_apps_domain}}/auth/admin/realms/insurance/clients/1/service-account-user' -H 'Content-Type: application/json' -H 'Authorization: Bearer {{TKN}}'

curl --insecure 'https://secure-sso-{{sso_project}}.{{ocp_apps_domain}}/auth/admin/realms/insurance/users/{{IdUser}}/role-mappings/clients/{{IdClient}}/available' -H 'Content-Type: application/json' -H 'Authorization: Bearer {{TKN}}'

curl --insecure -X POST 'https://secure-sso-{{sso_project}}.{{ocp_apps_domain}}/auth/admin/realms/insurance/users/{{IdUser}}/role-mappings/clients/{{IdClient}}' -H 'Content-Type: application/json' -H 'Authorization: Bearer {{TKN}}' -d '{{IdRole | to_json}}'

curl --insecure 'https://secure-sso-{{sso_project}}.{{ocp_apps_domain}}/auth/admin/realms/insurance/clients/1/client-secret' -H 'Content-Type: application/json' -H 'Authorization: Bearer {{TKN}}'

oc get dc system-app -o jsonpath='{.spec.template.spec.containers[?(@.name=="system-provider")].env[?(@.name=="ADMIN_ACCESS_TOKEN")].value}' -n {{ threescale_project }}

oc delete clusterresourcequota clusterquota-{{ocp_username}}-{{guid}}

oc new-project {{sso_project}} --display-name='Red Hat Single Sign On'

oc create -f https://raw.githubusercontent.com/jboss-openshift/application-templates/{{sso_version}}/secrets/sso-app-secret.json -n {{sso_project}}

oc policy add-role-to-user view system:serviceaccount:{{sso_project}}:sso-service-account -n {{sso_project}}

oc new-app sso71-https -p HTTPS_NAME=jboss -p HTTPS_PASSWORD=mykeystorepass -p SSO_ADMIN_USERNAME=keyadmin -p SSO_ADMIN_PASSWORD=keypassword -n {{sso_project}}

oc new-project {{service_project}} --display-name='Alert Center Backend Service'

oc process -f https://raw.githubusercontent.com/jbossdemocentral/3scale-security-oidc-demo/master/support/templates/amq63-basic-template.json -p MQ_USERNAME=admin -p MQ_PASSWORD=admin | oc create -n {{service_project}} -f -

oc process -f https://raw.githubusercontent.com/jbossdemocentral/3scale-security-oidc-demo/master/support/templates/accidentalert-backend-template.json -p APP_NAME=accidentalert-backend -p GIT_REPO=https://github.com/jbossdemocentral/3scale-security-oidc-demo.git -p GIT_REF=master -p CONTEXT_DIR=/projects/myaccidentalert -p ACTIVEMQ_BROKER_USERNAME=admin -p ACTIVEMQ_BROKER_PASSWORD=admin -p CPU_REQUEST=1 -p MEMORY_REQUEST=512Mi -p MEMORY_LIMIT=1024Mi | oc create -n {{service_project}} -f -

oc new-project {{www_project}} --display-name='Alert Center Web Application'

oc process -f https://raw.githubusercontent.com/jbossdemocentral/3scale-security-oidc-demo/master/support/templates/accidentalert-ui-template.json -p SSO_URL='http://sso-{{sso_project}}.{{ocp_apps_domain}}' -p BACKEND_URL='http://accidentalert-backend-{{service_project}}.{{ocp_apps_domain}}' -p APPLICATION_HOSTNAME='www-accidentalert-{{guid}}.{{ocp_apps_domain}}' | oc -n {{www_project}} create -f -

oc new-project {{threescale_project}} --display-name='3scale API Management'

oc new-app -f https://raw.githubusercontent.com/jbossdemocentral/3scale-security-oidc-demo/master/support/templates/amp-template.json --param WILDCARD_DOMAIN={{guid}}.{{ocp_apps_domain}} --param ADMIN_PASSWORD=password --param WILDCARD_POLICY=Subdomain -n {{threescale_project}}

oc policy add-role-to-user admin {{ocp_username}} -n {{sso_project}}

oc policy add-role-to-user admin {{ocp_username}} -n {{threescale_project}}

oc policy add-role-to-user admin {{ocp_username}} -n {{service_project}}

oc policy add-role-to-user admin {{ocp_username}} -n {{www_project}}

oc create clusterquota clusterquota-"{{ocp_username}}-{{guid}}" \
--project-annotation-selector=openshift.io/requester="{{ocp_username}}" \
--hard requests.cpu="{{quota_requests_cpu}}" \
--hard limits.cpu="{{quota_limits_cpu}}"  \
--hard requests.memory="{{quota_requests_memory}}" \
--hard limits.memory="{{quota_limits_memory}}" \
--hard configmaps="{{quota_configmaps}}" \
--hard pods="{{quota_pods}}" \
--hard persistentvolumeclaims="{{quota_persistentvolumeclaims}}"  \
--hard services="{{quota_services}}" \
--hard secrets="{{quota_secrets}}" \
--hard requests.storage="{{quota_requests_storage}}"

item.metadata.annotations['openshift.io/requester'] == "{{ocp_username}}"

items[?  (status.phase != 'Complete') ].metadata.annotations."openshift.io/build-config.name"

build_state.stdout |from_json |json_query(query) |intersect(build_to_wait) |length == 0

rc_state.stdout |from_json |json_query('items[?  (status.readyReplicas == ""|| status.readyReplicas == `0`) ].metadata.annotations."openshift.io/deployment-config.name"') |intersect(pod_to_wait) |length == 0

oc new-app -f "{{ modified_template_path }}" \
           -p "ADMIN_PASSWORD={{ amp_admin_passwd }}" \
           -p "TENANT_NAME={{ocp_project}}" \
           -p "MASTER_NAME={{ocp_project}}-master" \
           -p "MASTER_PASSWORD={{master_passwd}}" \
           -p "MASTER_ACCESS_TOKEN={{master_access_token}}" \
           -p "WILDCARD_DOMAIN={{ ocp_apps_domain }}" \
           -n "{{ ocp_project }}" \
           > {{new_app_output}}

Creation of tenants complete.  output files available at {{tenant_output_dir}}

ansible-playbook -i "enmasse," -c local {{enmasse_dest_dir}}/ansible/playbooks/openshift/{{enmasse_template_file}} \
-e namespace={{namespace}} \
-e multitenant=true \
-e address_space_type=standard \
-e address_space_plan=unlimited-standard \
> /tmp/{{namespace}}/enmasse_install_standard.log

oc annotate namespace {{namespace}} openshift.io/requester={{ocp_username}} --overwrite

oc policy add-role-to-user admin {{ocp_username}} -n {{namespace}}

oc create clusterresourcequota clusterquota-"{{ocp_username}}-{{guid}}" \

oc policy add-role-to-user view {{ocp_username}} -n {{gpte_jenkins_project}}

oc policy remove-role-from-user view {{ocp_username}} -n {{gpte_jenkins_project}}

oc policy add-role-to-user admin {{ocp_username}} -n {{ocp_constraints_project}}

oc delete limitrange {{ocp_constraints_project}}-core-resource-limits -n {{ocp_constraints_project}}

oc annotate namespace {{ocp_constraints_project}} openshift.io/requester={{ocp_username}} --overwrite

oc create -f https://raw.githubusercontent.com/gpe-mw-training/bxms_decision_mgmt_foundations_lab/master/resources/rhdm7-full-ng.yaml -n {{ocp_project}}

oc new-app --name=dm-demo -n {{ocp_project}} --template=rhdm7-full-ng \
-p RHT_IMAGE_STREAM_NAMESPACE={{ocp_project}} \
-p KIE_ADMIN_PWD=test1234! \
-p MAVEN_REPO_PASSWORD=test1234! \
-p CLUSTER={{ocp_apps_domain}} \
-p PROJECT={{ocp_project}} \
-p APPLICATION_NAME=gpte > /tmp/{{guid}}/gpte-dm-demo.txt

oc annotate namespace {{ocp_project}} openshift.io/requester={{ocp_username}} --overwrite

oc policy add-role-to-user admin {{ocp_username}} -n {{ocp_project}}

oc create -f /tmp/{{guid}}/rhpam70-image-streams.yaml -n {{ocp_project}}

oc new-app --template={{pam_secrets_template_name}} \
-p SECRET_NAME={{kserver_app_secret}} \
-n {{ocp_project}}

-p SECRET_NAME={{bcentral_app_secret}} \

oc new-app --name=pam-lab -n {{ocp_project}} --template={{pam_template_name}} \
-p IMAGE_STREAM_NAMESPACE={{ocp_project}} \
-p KIE_ADMIN_PWD={{kie_admin_passwd}} \
-p MAVEN_REPO_URL={{MAVEN_REPO_URL}} \
-p APPLICATION_NAME={{app_name}} \
-p BUSINESS_CENTRAL_HTTPS_SECRET={{bcentral_app_secret}} \
-p KIE_SERVER_HTTPS_SECRET={{kserver_app_secret}} \
-n {{ocp_project}} > /tmp/{{guid}}/gpte-pam-lab.txt

item.metadata.annotations['openshift.io/requester'] == ocp_username

item.metadata.labels is not defined or item.metadata.labels['AAD'] is not defined

oc new-project {{ocp_project}} \
--display-name="Client Onboarding" \
--description="Red Hat JBoss BPM Suite & Entando 'Client Onboarding' FSI Demo"

oc create -f https://raw.githubusercontent.com/jboss-openshift/application-templates/master/processserver/processserver64-image-stream.json -n {{ocp_project}}

oc create -f https://raw.githubusercontent.com/jboss-openshift/application-templates/master/processserver/processserver64-postgresql-s2i.json -n {{ocp_project}}

oc process -f /tmp/{{guid}}/secrets-and-accounts.yaml | oc create -n {{ocp_project}} -f  -

oc policy add-role-to-user view system:serviceaccount:{{ocp_project}}:processserver-service-account

oc new-app https://github.com/entando/fsi-customer-openshift --name fsi-customer -n {{ocp_project}}

oc expose svc fsi-customer --name=entando-fsi-customer --path=/fsi-customer/ -n {{ocp_project}}

oc new-app entando-base-image-432:latest~https://github.com/entando/fsi-backoffice-openshift --name fsi-backoffice --strategy=docker --allow-missing-imagestream-tags -n {{ocp_project}}

oc expose svc fsi-backoffice --name=entando-fsi-backoffice --path=/fsi-backoffice/ -n {{ocp_project}}

oc process \
-f "/tmp/{{guid}}/client-onboarding-process.yaml" \
-p GIT_URI="https://github.com/entando/fsi-onboarding-bpm" \
-p GIT_REF="master" \
-p ENTANDO_BASE_URL="http://{{fsi_customer_route}}/fsi-customer/" \
-n {{ocp_project}} | oc create -f - -n {{ocp_project}}

oc patch bc/co --type="json" \
-p="[{'op': 'replace', 'path': '/spec/strategy/sourceStrategy/from/namespace', 'value': '{{ocp_project}}'}]"

oc new-app {{ignite_template_name}} \
-p ROUTE_HOSTNAME=fuse.{{ocp_project}}.{{ocp_apps_domain}} \
-p OPENSHIFT_MASTER=https://master.{{ocp_domain}} \
-p OPENSHIFT_PROJECT={{ocp_project}} \
-p POSTGRESQL_MEMORY_LIMIT={{POSTGRESQL_MEMORY_LIMIT}} \
-p PROMETHEUS_MEMORY_LIMIT={{PROMETHEUS_MEMORY_LIMIT}} \
-p META_MEMORY_LIMIT={{META_MEMORY_LIMIT}} \
-p SERVER_MEMORY_LIMIT={{SERVER_MEMORY_LIMIT}} \
-p OPENSHIFT_OAUTH_CLIENT_SECRET=$(oc sa get-token syndesis-oauth-client -n {{ocp_project}}) \
-p MAX_INTEGRATIONS_PER_USER={{MAX_INTEGRATIONS_PER_USER}} \

oc rollout resume dc/syndesis-oauthproxy dc/syndesis-db -n {{ocp_project}}

oc create configmap app-config --from-file=/tmp/{{ocp_project}}/app-config.yaml -n {{ocp_project}}

oc new-app \
-f /tmp/{{ocp_project}}/coolstore-catalog-mongodb-persistent.yaml \
-p CATALOG_DB_USERNAME=mongo \
-p CATALOG_DB_PASSWORD=mongo \
-n {{ocp_project}} 

oc create -f {{fuse_artifact_base_url}}/quickstarts/{{item}} -n openshift

--display-name="IoT Demo - {{guid}}" \
--description="Industry 4.0 IoT Demo"

oc adm policy add-scc-to-user anyuid -z default -n {{ocp_project}}

oc create -f /tmp/{{guid}}/redhat-iot-rhpds-secret.yml -n {{ocp_project}}

oc create secret generic ec-db --from-literal=name=ecdb --from-literal=username=redhat --from-literal=password=RedHat123 -n {{ocp_project}}

openssl req -new
  -x509
  -nodes
  -days {{ item.days | default(3650) }}
  -subj "/C={{ item.country | default('') }}/ST={{ item.state | default('') }}/L={{ item.city | default('') }}/O={{ item.organization | default('') }}/OU={{ item.unit | default('') }}/CN={{ item.name }}/emailAddress={{ item.email | default('') }}"
  -newkey rsa:2048
  -keyout /tmp/{{guid}}/certs/key.pem
  -out /tmp/{{guid}}/certs/cert.pem

oc create secret generic ec-crt --from-file=crt=/tmp/{{guid}}/certs/cert.pem --from-file=key=/tmp/{{guid}}/certs/key.pem --from-file=ca=/tmp/{{guid}}/certs/cert.pem -n {{ocp_project}}

oc new-app -e MYSQL_USER=redhat -e MYSQL_PASSWORD=RedHat123 -e MYSQL_DATABASE=ecdb -e MYSQL_LOWER_CASE_TABLE_NAMES=1 -e NAMESPACE=openshift -e VOLUME_CAPACITY=1Gi -e MARIADB_VERSION=10.2 mariadb:10.2 -n {{ocp_project}}

oc new-app -e 'ES_JAVA_OPTS=-Des.cluster.name=kapua-datastore -Des.http.cors.enabled=true -Des.http.cors.allow-origin=* -Xms256m -Xmx256m' elasticsearch:5.4 -n {{ocp_project}}

oc new-app -f /tmp/{{guid}}/broker.yml -p IMAGE_VERSION=5.0.0 -p NAMESPACE={{ocp_project}} -p EC_SECRET_DB=ec-db -p DISABLE_SSL=true -n {{ocp_project}}

oc new-app -f /tmp/{{guid}}/console.yml -p 'IMAGE_VERSION=5.0.0' -p 'NAMESPACE={{ocp_project}}' -p 'EC_SECRET_DB=ec-db' -n {{ocp_project}}

oc new-app -f /tmp/{{guid}}/api.yml -p 'IMAGE_VERSION=5.0.0' -p 'NAMESPACE={{ocp_project}}' -p 'EC_SECRET_DB=ec-db' -n {{ocp_project}}

EC Console is running at http://ec-console-{{ocp_project}}.{{ocp_apps_domain}}

EC Broker is running at: mqtt://ec-broker-mqtt.{{ocp_project}}.{{ocp_apps_domain}}:1883

oc new-project {{ocp_project_completed}} \
--display-name="Parksmap (completed)" \
--description="Project with the Parksmap demo completed (and guides)"

oc apply -f /tmp/{{guid}}/workshop-parksmap.yaml -n {{ocp_project_completed}}

oc apply -f /tmp/{{guid}}/workshop-nationalparks.yaml -n {{ocp_project_completed}}

oc apply -f /tmp/{{guid}}/workshop-mlbparks.yaml -n {{ocp_project_completed}}

oc apply -f /tmp/{{guid}}/workshopper-template.yaml -n {{ocp_project_completed}}

oc new-app starter-guides \
-p CONSOLE_ADDRESS={{ocp_master}} \
-p ROUTER_ADDRESS={{ocp_apps_domain}} \
-p USER_PROJECT={{ocp_project}} \
-p INFRA_PROJECT={{ocp_project_completed}} \
-n "{{ocp_project_completed}}"

Guide has been installed in http://guides-{{ocp_project_completed}}.{{ocp_apps_domain}}

git clone https://github.com/openshift-roadshow/nationalparks.git

git remote add developer http://developer:developer@{{ gogs_hostname }}/developer/nationalparks.git
git config --local user.email "developer@example.com"
git config --local user.name "developer"
git push -f --all developer

oc annotate namespace {{ocp_project_completed}} openshift.io/requester={{ocp_username}} --overwrite

oc policy add-role-to-user admin {{ocp_username}} -n {{ocp_project_completed}}

--display-name="Parksmap" \
--description="Project to exercise the Parksmap demo"

rs_state.stdout |from_json |json_query('items[?  (status.readyReplicas == ""|| status.readyReplicas == `0`) ].metadata.labels."deployment"') |intersect(pod_to_wait) |length == 0

oc adm policy add-scc-to-group anyuid system:authenticated -n istio-system

oc expose svc istio-ingressgateway -n istio-system && \ 
oc expose svc servicegraph -n istio-system && \
oc expose svc grafana -n istio-system && \
oc expose svc prometheus -n istio-system && \
oc expose svc tracing -n istio-system

oc adm policy add-role-to-user edit {{ocp_username}} -n istio-system

oc adm policy add-scc-to-user privileged -z default -n {{ocp_project}} 

oc create configmap app-config --from-file=/tmp/app-config.yaml -n {{ocp_project}}

-f /tmp/coolstore-catalog-mongodb-persistent.yaml \

oc patch deployment/catalog-service \
   -p "{\"spec\":{\"template\":{\"spec\":{\"containers\":[{\"name\":\"catalog-service\",\"image\":\"{{docker_registry_url}}/{{ocp_project}}/catalog-service\"}]}}}}" \
   -n {{ocp_project}}

{{ openshift_cli }} apply -f /tmp/{{guid}}/etherpad-template.yml -n {{ admin_project }}

{{ openshift_cli }} apply -f /tmp/{{guid}}/guides-template.yml -n {{ admin_project }}

{{ openshift_cli }} new-app etherpad --name=etherpad -n {{ admin_project }} --dry-run -o yaml > etherpad.yml

{{ openshift_cli }} apply -f etherpad.yml -n {{ admin_project }}

{{ openshift_cli }} new-app guide -p HOSTNAME={{ guide_hostname }} -p CONSOLE_ADDRESS={{ openshift_master }} -p ROUTER_ADDRESS={{ ocp_apps_domain }} -p GITLAB_URL_PREFIX={{ gogs_urlprefix }} -p ETHERPAD_URL_PREFIX={{ etherpad_urlprefix }} -n {{ admin_project }} --dry-run -o yaml > guide.yml

start={{user_count_start}} end={{ user_count_end }} format={{ user_format }}

git clone https://github.com/openshift-roadshow/{{ reponame }}.git

for tag in `git branch -a | grep "origin" | grep "\." | cut -d "/" -f 3`
do
  git checkout -b $tag remotes/origin/$tag
done

{{ openshift_cli }} get configmap broker-config -n openshift-ansible-service-broker

{{ openshift_cli }} delete configmap broker-config -n openshift-ansible-service-broker

{{ openshift_cli }} create configmap broker-config --from-file=broker-config=/tmp/broker-config.yml -n openshift-ansible-service-broker

{{ openshift_cli }} rollout cancel dc/asb -n openshift-ansible-service-broker

{{ openshift_cli }} rollout latest dc/asb -n openshift-ansible-service-broker

# avoid 'change-back dir' permission errors
cd /tmp/ 
#set -ue -o pipefail
# temporarly store password in cache
cat <<EOF | sudo -u {{ item.0.name }} git credential-cache store
url={{ item.1.repo }}
username={{ item.1.user }}
password={{ item.1.password }}
EOF
if [ -n "{{ item.1.dest }}" -a -d "{{ item.1.dest }}" ]; then
  cd "{{ item.1.dest }}"
  sudo -u {{ item.0.name }} git reset --hard HEAD
  sudo -u {{ item.0.name }} git pull
  sudo -u {{ item.0.name }} git checkout {{ item.1.version|default('master') }}
else
  sudo -u {{ item.0.name }} git clone "{{ item.1.repo }}" "{{ item.1.dest }}"
fi

ipa-getcert request
  -f /etc/pki/tls/certs/smtp-{{inventory_hostname}}.crt 
  -k /etc/pki/tls/private/smtp-{{inventory_hostname}}.key
  -g 2048 -K smtp/{{inventory_hostname}}
  -I {{inventory_hostname}}_SMTP_CERT

# Client SSL configuration. Outbound only.
#smtp_tls_loglevel = 2
smtp_tls_security_level = encrypt
smtp_tls_mandatory_ciphers = high
smtp_tls_ciphers = $smtp_tls_mandatory_ciphers
smtp_tls_mandatory_protocols = !SSLv2:!SSLv3
smtp_tls_protocols = $smtp_tls_mandatory_protocols
smtp_tls_CAfile = /etc/ipa/ca.crt
smtp_tls_cert_file = /etc/pki/tls/certs/smtp-{{inventory_hostname}}.crt
smtp_tls_key_file = /etc/pki/tls/private/smtp-{{inventory_hostname}}.key
# Relay host
relayhost = mx00.opentlc.com:19587
smtp_fallback_relay = mx01.opentlc.com:19587

rpm -Uvh {{satellite_url}}/pub/katello-ca-consumer-latest.noarch.rpm

subscription-manager register --org="{{satellite_org}}" --activationkey="{{ satellite_activationkey }}"

tower-cli setting modify LICENSE '{{ tower_license }}' -u admin -p "{{ tower_admin_password }}"

tower-cli credential create --organization="{{ org_name }}" --kind=scm --username=test --password=test --name="{{ scm_cred_name }}"

tower-cli project create --organization="{{ org_name }}" --scm-type=git --scm-branch="{{ scm_branch }}" --scm-credential="{{ scm_cred_name }}" --scm-url="{{ scm_url }}" --scm-update-on-launch=True -n "{{ proj_name }}"

tower-cli inventory create  -n "{{ inv_name }}" --organization="{{ org_name }}"

tower-manage inventory_import --inventory-name={{ inv_name }} --source=/etc/ansible/hosts

tower-cli credential create --name="{{ ssh_cred_name }}" --username="{{ user_cred_name }}" --organization="{{ org_name }}" --kind=ssh --ssh-key-data="{{ user_cred_path }}" --become-method=sudo

tower-cli job_template create --name 3tier_app_demo  --project="{{ proj_name }}" --inventory="{{ inv_name }}" --job-type=run --playbook='{{ playbook_name }}' --machine-credential="{{ ssh_cred_name }}"

cp cert.pem /home/{{ system_user }}/.ssh/ chdir="/etc/letsencrypt/live/{{ workshop_prefix | lower }}.{{ hostvars[inventory_hostname]['ec2_tag_Index'] }}.{{ domain_name }}/"

cp privkey.pem /home/{{ system_user }}/.ssh/ chdir="/etc/letsencrypt/live/{{ workshop_prefix | lower }}.{{ hostvars[inventory_hostname]['ec2_tag_Index'] }}.{{ domain_name }}/"

  -x509
  -nodes
  -keyout /home/{{ system_user }}/.ssh/privkey.pem
  -out /home/{{ system_user }}/.ssh/cert.pem

oc adm policy add-cluster-role-to-user cluster-reader system:serviceaccount:default:zabbix -n default

{% raw %}oc get sa/zabbix -n default --template='{{range .secrets}}{{ .name }} {{end}}' | xargs -n 1 oc get secret --template='{{ if .data.token }}{{ .data.token }}{{end}}' | head -n 1 | base64 -d - > /tmp/zabbix.token{% endraw %}

oc get route/hawkular-metrics -n openshift-infra --template='{% raw %}{{ .spec.host }}{% endraw %}'

UserParameter=lvm.data[*],LVM_SUPPRESS_FD_WARNINGS=1 sudo lvs --no-heading -o lv_name,$2|awk '$$1 == "$1" { print $$2 }'

UserParameter=openshift_node.requests[*],/opt/monitoring/requests.sh $1

{{ ANSIBLE_REPO_PATH }}/configs/{{ env_type }}/files/hosts_template.{{ osrelease }}.j2

ansible masters[0] -b -m fetch -a "src=/root/.kube/config dest=/root/.kube/config flat=yes"

oc create -f /root/proj_template.yml -n default || oc replace -f /root/proj_template.yml -n default

oc process -f {{ ANSIBLE_REPO_PATH }}/config/cicd-template.yaml --param BUILD_PROJECT=tasks-build --param DEV_PROJECT=tasks-dev --param STAGE_PROJECT=tasks-test --param PROD_PROJECT=tasks-prod --param=WITH_CHE=false --param=EPHEMERAL=false | oc create -f - -n {{ cicd_project }}

oc get nodes -lenv=app -o custom-columns=NAME:.metadata.name --sort-by=.metadata.name --no-headers=true 2>/dev/null

{{ ANSIBLE_REPO_PATH }}/scripts/label_node {{ item.0 }} {{ item.1 }}

oc new-project {{ item.item.proj }} --display-name='{{ item.item.display }}' >/dev/null 2>&1

{{ ANSIBLE_REPO_PATH }}/scripts/set_node_selector_any {{ item.proj }}

{{ ANSIBLE_REPO_PATH }}/scripts/set_node_selector {{ item.proj }} {{ item.client }}

oc label namespace {{ item.item.proj }} client={{ item.item.client }}

oc create identity htpasswd_auth:{{ item.item.key }} >/dev/null 2>&1

oc create useridentitymapping htpasswd_auth:{{ item.key }} {{ item.key }} >/dev/null 2>&1

oc adm policy add-cluster-role-to-user cluster-admin {{ item.key }} >/dev/null 2>&1

oc adm groups add-users client-group-{{ item.0.client }} {{ item.1 }}

oc adm policy add-role-to-group admin client-group-{{ item.client }} -n {{ item.proj }}

oc policy add-role-to-user edit system:serviceaccount:{{ cicd_project }}:jenkins -n {{ item.proj }} >/dev/null 2>&1

oc adm pod-network join-projects --to={{ cicd_project }} {{ item.proj }} >/dev/null 2>&1

oc delete resourcequotas core-resource-quota -n {{ cicd_project }} >/dev/null 2>&1

{{ ANSIBLE_REPO_PATH }}/config/hosts_template.{{ osrelease }}.j2

{{ ANSIBLE_REPO_PATH }}/scripts/restrict_node {{ item.0 }} {{ item.1 }}

bash -c "test -e /usr/bin/python || (apt -qqy update && apt install -qqy python2.7 python)"

src='revoked_keys.j2' dest='/etc/ssh/revoked_keys' mode=0600 owner="{{ ssh_owner }}" group="{{ ssh_group }}"

src='opensshd.conf.j2' dest='/etc/ssh/sshd_config' mode=0600 owner="{{ ssh_owner }}" group="{{ ssh_group }}" validate="/usr/sbin/sshd -T -f %s"

src='openssh.conf.j2' dest='/etc/ssh/ssh_config' mode=0644 owner="{{ ssh_owner }}" group="{{ ssh_group }}"

awk '$5 >= {{ sshd_moduli_minimum }}' /etc/ssh/moduli > /etc/ssh/moduli.new ; [ -r /etc/ssh/moduli.new -a -s /etc/ssh/moduli.new ] && mv /etc/ssh/moduli.new /etc/ssh/moduli || true

ssh_use_pam and ssh_password_module.stdout.find('ssh_password') == 0

telegraf_plugins_extra is defined and telegraf_plugins_extra is iterable and item.value.state|default('present') != 'absent'

telegraf_plugins_extra is defined and telegraf_plugins_extra is iterable and item.value.state|default('present') == 'absent'

{{ docker_daemon_option_list }} + [ '--tlsverify --tlscacert=/etc/docker/ca.pem --tlscert=/etc/docker/server-cert.pem --tlskey=/etc/docker/server-key.pem' ]

{{ docker_daemon_listen_network | default('tcp://0.0.0.0:2376') }}

{{ docker_daemon_option_list }} + [ '{{ "-H=unix:///var/run/docker.sock -H=" + docker_daemon_listen_network }}' ]

{{ docker_daemon_option_list }} + [ '{{ "--bip=" + docker_daemon_bip }}' ]

##
## This file is managed by Ansible.  ALL CHANGES WILL BE OVERWRITTEN.
##
[Service]
ExecStart=
ExecStart=/usr/bin/dockerd {{ docker_daemon_option_list | join(" ") }}

{% if proftpd_display_connect_context == 'global' %}
<Global>
{% endif -%}
DisplayConnect {{ proftpd_config_dir }}/proftpd_display_connect.txt
</Global>

{{ proftpd_config_include_dir }}/15_virtualhost_{{ item.id }}.conf

{{ '1.5' if '1.5.' in haproxy_version_result.stdout else '1.4' }}

{{ nginx_vhost_path }}/{{ item.filename|default(item.server_name.split(' ')[0] ~ '.conf') }}

[htcondor-stable]
name=HTCondor Stable RPM Repository for RHEL7
baseurl=http://research.cs.wisc.edu/htcondor/yum/stable/rhel7
enabled=1
gpgcheck=1

yum_list.results | selectattr("yumstate", "match", "installed") | list | length != 0

[default]
aws_access_key_id={{ item.access_key }}
aws_secret_access_key={{ item.secret_key }}

influx -ssl -host influxdb.galaxyproject.eu -execute "show users"

influx -ssl -host influxdb.galaxyproject.eu -execute "CREATE USER {{ influxdb.admin.username }} WITH PASSWORD '{{ influxdb.admin.password }}' WITH ALL PRIVILEGES"

not ansible_check_mode and "unable to parse authentication credentials" not in should_create_admin.stdout

{{ postgres_host }}:{{ postgres_port }}:*:{{ postgres_user }}:{{ postgres_pass }}

docker-compose exec -T web sentry createuser --email admin@local.host --password password --superuser

("'already_member' not in rabbitmq_output.stderr") and rabbitmq_output.rc != 0

ansible_selinux.mode == "enforcing" and update_fcontexts.changed

ssh-keygen -s /tmp/server_ca -I key_for_test1 -h -V +520w /etc/ssh/ssh_host_{{ item }}_key.pub

Please add the following to your known_hosts file: @cert-authority <ip-range|*.domain> {{ lookup('file', 'server_ca.pub')  }}

. {{ galaxy_root }}/.bashrc
journalctl -u galaxy-handler@* --since '20 hour ago' | \
    grep "Caught exception while attempting to fail job" | \
    egrep -o '\([0-9]+\) Caught' | \
    sed 's/ Caught//g;s/(//g;s/)//g' | \
    sort -u | \
    xargs -I{} -n1 --no-run-if-empty -P1 gxadmin mutate fail-job {} --commit > /dev/null;
gxadmin mutate fail-terminal-datasets --commit > /dev/null;

gxadmin mutate generate-unset-api-keys --commit

for user in $(gxadmin mutate oidc-role-find-affected); do
    gxadmin mutate oidc-role-fix $user;
done;

journalctl -u galaxy-handler@* --since '20 minutes ago' | \
    grep 'failure running job' | \
    awk '{print $13}' | \
    sort -u | \
    xargs -I{} -n1 --no-run-if-empty -P1 gxadmin mutate fail-job {} --commit;

# Workflows are currently being assigned to _default_ which is wrong
# https://github.com/galaxyproject/galaxy/issues/8209
while true; do
        psql -c "COPY (update workflow_invocation set handler = 'handler_main_' || (random() * 12)::integer where (state = 'new' and handler = '_default_') returning workflow_invocation.id) to STDOUT with CSV DELIMITER ',';" | ts
        sleep 5;
done

cd {{ galaxy_server_dir }}
python scripts/set_user_disk_usage.py -c {{ galaxy_config_file }}

ansible_selinux.mode == "enforcing" and update_fcontexts2.changed

{{ grt_dir }}/venv/bin/python {{ grt_dir }}/code/manage.py collectstatic --noinput

{{ grt_dir }}/venv/bin/python {{ grt_dir }}/code/manage.py migrate --no-input

{{ galaxy_interactive_environment_dir }}/interactive_environments.dtd

{{ galaxy_server_dir }}/config/plugins/interactive_environments/common

{{ galaxy_server_dir }}/config/plugins/interactive_environments/{{ item.name }}/static

{{ galaxy_server_dir }}/config/plugins/interactive_environments/{{ item.name }}/templates

{{ galaxy_interactive_environment_dir }}/{{ item.name }}/templates

{{ galaxy_interactive_environment_dir }}/{{ item.name }}/config/allowed_images.yml

{{ galaxy_interactive_environment_dir }}/{{ item.name }}/config/{{ item.name }}.ini

{{ galaxy_server_dir }}/config/plugins/interactive_environments/{{ item.name }}/config/{{ item.name }}.xml

{{ galaxy_interactive_environment_dir }}/{{ item.name }}/config/{{ item.name }}.xml

location /{{ google_site_verification_id }} {
    root /usr/share/nginx/html;
}

. {{ galaxy_venv_dir }}/bin/activate
python {{ galaxy_server_dir }}/scripts/grt/export.py -g {{ galaxy_config_dir }}/grt.yml -r {{ galaxy_mutable_data_dir }}/reports/ -b 10000 -c {{ galaxy_config_dir }}/galaxy.ini

cd {{ galaxy_root }};
for dir in {custom-tools,dynamic_rules,interactive_environments,mutable-config,mutable-data,server,venv,tool-data}; do
    if [ -d $dir ]; then
        echo "Syncing $dir"
        rsync -avr --delete --exclude client/node_modules $dir/ {{ galaxy_nfs_location }}/$dir/
    else
        echo "Skipping $dir"
    fi
done;
if [ -d shed_tools-local ]; then
    echo "Syncing shed_tools-local"
    rsync -avr --delete shed_tools-local/ {{ galaxy_nfs_location }}/shed_tools/
else
    echo "Skipping shed_tools-local"
fi

{{ multisite_dir }}/{{ item.domain | default([item.name, '.usegalaxy.eu'] | join) }}.html

{{ multisite_dir }}/{{ item.domain | default([item.name, '.usegalaxy.eu'] | join) }}-custom.css

cat {{ galaxy_server_dir }}/static/style/blue/base.css {% if galaxy_custom_site_base_css is defined %}{{ multisite_dir }}/usegalaxy.eu-custom.css {% endif %} > {{ multisite_dir }}/usegalaxy.eu.css

__galaxy_git_update_result is changed or (galaxy_custom_site_base_css is defined and base_css is changed)

cat {{ galaxy_server_dir }}/static/style/blue/base.css {{ multisite_dir }}/{{ item.domain | default([item.name, '.usegalaxy.eu'] | join) }}-custom.css > {{ multisite_dir }}/{{ item.domain | default([item.name, '.usegalaxy.eu'] | join) }}.css

enable_mariadb | bool or enable_external_mariadb_load_balancer | bool

{{ node_config_directory }}/{{ item.key }}/{{ aodh_policy_file }}

set -o pipefail && \ docker exec -t barbican_api openstack \ --os-auth-url={{ openstack_auth.auth_url }} \ --os-password={{ openstack_auth.password }} \ --os-username={{ openstack_auth.username }} \ --os-project-name={{ openstack_auth.project_name }} \ secret store -f value -p kolla | head -1

docker exec -t barbican_api openstack --os-auth-url={{ openstack_auth.auth_url }} --os-password={{ openstack_auth.password }} --os-username={{ openstack_auth.username }} --os-project-name={{ openstack_auth.project_name }} secret get -f value -p {{ barbican_store_secret.stdout }}

docker exec -t barbican_api openstack --os-auth-url={{ openstack_auth.auth_url }} --os-password={{ openstack_auth.password }} --os-username={{ openstack_auth.username }} --os-project-name={{ openstack_auth.project_name }} secret delete {{ barbican_store_secret.stdout }}

{{ node_config_directory }}/{{ item.key }}/{{ barbican_policy_file }}

docker_custom_option is deprecated in favor of docker_custom_config

{{ docker_config | combine({'insecure-registries': registries}) }}

{{ docker_config | combine({'storage-driver': docker_storage_driver}) }}

{{ docker_config | combine({'data-root': docker_runtime_directory}) }}

docker_custom_option | length > 0 or docker_configure_for_zun|bool

docker exec bifrost_deploy bash -c 'mkdir -p /var/log/kolla/ironic && chown ironic:ironic /var/log/kolla/ironic && mkdir -p /var/log/kolla/ironic-inspector && chown ironic:ironic /var/log/kolla/ironic-inspector && mkdir -p /var/log/kolla/nginx && chown {{ nginx_user }}:{{ nginx_user }} /var/log/kolla/nginx'

docker exec bifrost_deploy bash -c 'source /bifrost/env-vars && ansible-playbook -vvvv -i /bifrost/playbooks/inventory/target /bifrost/playbooks/install.yaml -e @/etc/bifrost/bifrost.yml -e @/etc/bifrost/dib.yml -e  skip_package_install=true'

docker exec bifrost_deploy bash -c 'mkdir /root/.ssh ; mkdir /home/ironic/.ssh; cp -f /etc/bifrost/id_rsa /root/.ssh/id_rsa && cp -f /etc/bifrost/id_rsa.pub /root/.ssh/id_rsa.pub && cp -f /etc/bifrost/ssh_config /root/.ssh/config && cp -f /etc/bifrost/id_rsa /home/ironic/.ssh/id_rsa && cp -f /etc/bifrost/id_rsa.pub /home/ironic/.ssh/id_rsa.pub && cp -f /etc/bifrost/ssh_config /home/ironic/.ssh/config && chmod 600 /root/.ssh/id_rsa && chmod 600 /root/.ssh/id_rsa.pub && chmod 600 /root/.ssh/config && chmod 600 /home/ironic/.ssh/id_rsa && chmod 600 /home/ironic/.ssh/id_rsa.pub && chmod 600 /home/ironic/.ssh/config && chown ironic:ironic /home/ironic/.ssh/id_rsa && chown ironic:ironic /home/ironic/.ssh/id_rsa.pub && chown ironic:ironic /home/ironic/.ssh/config'

docker exec bifrost_deploy bash -c 'source /bifrost/env-vars && export BIFROST_INVENTORY_SOURCE=/etc/bifrost/servers.yml && ansible-playbook -vvvv -i /bifrost/playbooks/inventory/bifrost_inventory.py /bifrost/playbooks/enroll-dynamic.yaml -e @/etc/bifrost/bifrost.yml'

docker exec bifrost_deploy bash -c 'source /bifrost/env-vars && export BIFROST_INVENTORY_SOURCE=/etc/bifrost/servers.yml && ansible-playbook -vvvv -i /bifrost/playbooks/inventory/bifrost_inventory.py /bifrost/playbooks/deploy-dynamic.yaml -e @/etc/bifrost/bifrost.yml'

docker exec {{ item.name }} /usr/local/bin/kolla_set_configs --check

docker exec kolla_toolbox openstack --os-interface internal --os-auth-url {{ openstack_auth.auth_url }} --os-identity-api-version 3 --os-project-domain-name {{ openstack_auth.domain_name }} --os-project-name {{ openstack_auth.project_name }} --os-username {{ openstack_auth.username }} --os-password {{ openstack_auth.password }} --os-user-domain-name {{ openstack_auth.user_domain_name }} --os-region-name {{ openstack_region_name }} {% if openstack_cacert != '' %}--os-cacert {{ openstack_cacert }}{% endif %} aggregate create {{ blazar_aggregate_pool_name }}

{{ node_config_directory }}/{{ item.key }}/{{ blazar_policy_file }}

{{ ceilometer_custom_meters_folder.stat.exists and ceilometer_custom_meters_folder.stat.isdir }}

{{ custom_meter_folder_exist and ceilometer_custom_meters_folder_found_files.matched > 0 }}

{{ node_custom_config }}/ceilometer/{{ ceilometer_custom_meters_local_folder }}/

{{ node_config_directory }}/{{ item.key }}/gnocchi_resources.yaml

{{ node_config_directory }}/ceilometer-notification/event_definitions.yaml

{{ node_config_directory }}/ceilometer-notification/event_pipeline.yaml

{{ node_config_directory }}/{{ item.key }}/{{ ceilometer_policy_file }}

creates="{{ item }}" openssl req -new -nodes -sha256 -x509 \ -config {{ certificates_dir }}/openssl-kolla.cnf \ -days 3650 \ -extensions v3_req \ -key {{ certificates_dir }}/private/external/external.key \ -out {{ item }}

creates="{{ item }}" openssl req -new -nodes -sha256 -x509 \ -config {{ certificates_dir }}/openssl-kolla-internal.cnf \ -days 3650 \ -extensions v3_req \ -key {{ certificates_dir }}/private/internal/internal.key \ -out {{ item }}

{{ node_custom_config }}/chrony/{{ inventory_hostname }}/chrony.conf

{{ node_custom_config }}/cinder/{{ inventory_hostname }}/cinder-wsgi.conf

{{ node_config_directory }}/{{ item.key }}/{{ cinder_policy_file }}

{{ node_custom_config }}/cinder/{{ inventory_hostname }}/nfs_shares.j2

{{ node_custom_config }}/cinder/{{ inventory_hostname }}/nfs_shares

{{ not enable_cinder_backend_nfs | bool and not enable_cinder_backend_hnas_nfs | bool }}

{{ node_custom_config }}/cinder/cinder-volume/{{ ceph_cinder_keyring }}

{{ node_custom_config }}/cloudkitty/{{ cloudkitty_custom_metrics_yaml_file }}

{{ node_config_directory }}/{{ item.key }}/{{ cloudkitty_custom_metrics_yaml_file }}

{{ node_config_directory }}/{{ item.key }}/{{ cloudkitty_policy_file }}

{{ node_custom_config }}/collectd/{{ inventory_hostname }}/collectd.conf

{{ docker_runtime_directory or '/var/lib/docker' }}/volumes/kolla_logs/_data

{{ fluentd_labels.images.0.ContainerConfig.Labels.fluentd_binary }}

{{ find_custom_fluentd_inputs.files | map(attribute='path') | map('basename') | list }}

{{ node_config_directory }}/fluentd/input/{{ item.path | basename }}

{{ ( enable_elasticsearch | bool or ( elasticsearch_address != kolla_internal_vip_address )) and not enable_monasca | bool }}

{{ find_custom_fluentd_outputs.files | map(attribute='path') | map('basename') | list }}

{{ node_config_directory }}/fluentd/output/{{ item.path | basename }}

{{ find_custom_fluentd_format.files | map(attribute='path') | map('basename') | list }}

{{ node_config_directory }}/fluentd/format/{{ item.path | basename }}

{{ find_custom_fluentd_filters.files | map(attribute='path') | map('basename') | list }}

{{ fluentd_labels.images.0.ContainerConfig.Labels.fluentd_version | default('0.12') }}

{{ '01-rewrite-0.14' if fluentd_version == '0.14' else '01-rewrite-0.12' }}

{{ node_config_directory }}/fluentd/filter/{{ item.path | basename }}

{{ node_config_directory }}/kolla-toolbox/rabbitmq-erlang.cookie

RABBITMQ_CTL_ERL_ARGS="-proto_dist inet6_tcp"
export ERL_INETRC=/etc/rabbitmq/erl_inetrc

{{ node_config_directory }}/{{ item.key }}/{{ congress_policy_file }}

{{ node_config_directory }}/{{ item.key }}/{{ cyborg_policy_file }}

{{ node_custom_config }}/designate/designate-backend-bind9/{{ inventory_hostname }}/named.conf

{{ node_custom_config }}/designate/designate-backend-bind9/named.conf

designate_backend == 'bind9' and designate_backend_external == 'no'

{{ node_config_directory }}/{{ item.key }}/{{ designate_policy_file }}

docker exec -t designate_worker designate-manage pool update --file /etc/designate/pools.yaml

{{ node_custom_config }}/elasticsearch/elasticsearch-curator-actions.yml

{{ node_config_directory }}/elasticsearch-curator/elasticsearch-curator.crontab

{{ node_config_directory }}/{{ item.key }}/{{ freezer_policy_file }}

{{ node_config_directory }}/{{ item.key }}/{{ glance_policy_file }}

{{ node_config_directory }}/glance-api/{{ ceph_glance_keyring }}

{{ node_config_directory }}/{{ item.key }}/{{ gnocchi_policy_file }}

{{ node_config_directory }}/{{ item }}/{{ ceph_gnocchi_keyring }}

{{ node_custom_config }}/grafana/{{ inventory_hostname }}/prometheus.yaml

{{ node_custom_config }}/haproxy/{{ inventory_hostname }}/haproxy_main.cfg

{{ node_custom_config }}/keepalived/{{ inventory_hostname }}/keepalived.conf

{{ node_custom_config }}/haproxy/{{ inventory_hostname }}/haproxy_run.sh

External haproxy certificate file is not found. It is configured via 'kolla_external_fqdn_cert'

Internal haproxy certificate file is not found. It is configured via 'kolla_internal_fqdn_cert'

msg='Please check the kolla_external_vip_interface property - interface {{ kolla_external_vip_interface }} not found'

msg='Please check the kolla_external_vip_interface settings - interface {{ kolla_external_vip_interface }} is not active'

not hostvars[inventory_hostname]['ansible_' + kolla_external_vip_interface]['active']

( ip_addr_output is failed or
 kolla_internal_vip_address | ipaddr(ip_addr_output.stdout.split()[3]) is none)

echo "show stat" | docker exec -i haproxy socat unix-connect:/var/lib/kolla/haproxy/haproxy.sock stdio

{{ node_custom_config }}/haproxy-config/{{ inventory_hostname }}/{{ haproxy_service_template }}

{{ node_custom_config }}/haproxy-config/{{ haproxy_service_template }}

{{ node_config_directory }}/haproxy/services.d/{{ item.key }}.cfg

{{ node_config_directory }}/{{ item.key }}/{{ heat_policy_file }}

{{ node_custom_config }}/horizon/{{ inventory_hostname }}/horizon.conf

{{ node_custom_config }}/horizon/{{ inventory_hostname }}/local_settings

{{ node_custom_config }}/horizon/{{ inventory_hostname }}/custom_local_settings

{{ supported_policy_format_list | map('regex_replace', '(.+)', '{{ project_name }}_\1') | list }}

{{ custom_policy }} + [ '{{ overwritten_files.results.0.stat.path }}' ]

{{ node_custom_config }}/influxdb/{{ inventory_hostname }}/influxdb.conf

{{ node_custom_config }}/ironic/{{ inventory_hostname }}/ironic-dnsmasq.conf

{{ node_custom_config }}/ironic/{{ inventory_hostname }}/pxelinux.default

{{ node_custom_config }}/ironic/{{ inventory_hostname }}/ironic_pxe_uefi.default

{{ node_custom_config }}/ironic/{{ inventory_hostname }}/inspector.ipxe

{{ node_config_directory }}/{{ item.key }}/{{ ironic_policy_file }}

'No chain/target/match by that name' not in ironic_inspector_chain.stderr

The SCSI target daemon tgtd is not supported on CentOS/RHEL 8 and later

ansible_distribution_major_version is version_compare('8', '>=')

{{ node_custom_config }}/karbor/{{ service_name }}/providers.d/*

{{ node_config_directory }}/{{ item.key }}/{{ keystone_policy_file }}

{{ node_custom_config }}/keystone/{{ inventory_hostname }}/wsgi-keystone.conf

{{ ansible_playbook_python }} {{ role_path }}/files/fernet_rotate_cron_generator.py -t {{ (fernet_key_rotation_interval | int) // 60 }} -i {{ groups['keystone'].index(inventory_hostname) }} -n {{ (groups['keystone'] | length) }}

{% if groups['keystone_fernet_running'] is defined -%} {{ groups['keystone_fernet_running'][0] }} {%- else -%}{{ groups['keystone'][0] }}{%- endif %}

awk '/^fernet_token_expiry/ { print $2 }' "{{ node_config }}/globals.yml"

result.stdout | regex_replace('(60|120|180|240|300|360|600|720|900|1200|1800|3600|7200|10800|14400|21600|28800|43200|86400|604800)', '')  is search(".+")

docker exec keystone kolla_keystone_bootstrap {{ openstack_auth.username }} {{ openstack_auth.password }} {{ openstack_auth.project_name }} admin {{ keystone_admin_url }} {{ keystone_internal_url }} {{ keystone_public_url }} {{ item }}

{{ node_custom_config }}/kibana/{{ inventory_hostname }}/kibana.yml

{{ node_config_directory }}/{{ item.key }}/{{ kuryr_policy_file }}

{{ node_config_directory }}/{{ item.key }}/{{ magnum_policy_file }}

{{ node_config_directory }}/{{ item.key }}/{{ manila_policy_file }}

{{ node_config_directory }}/manila-share/{{ ceph_manila_keyring }}

check_cephfs.rc != 0 and check_cephfs.stderr.find('No such file or directory') == -1

docker exec manila_share ceph mon dump -c /etc/ceph/ceph.conf --name client.manila -f json

{{ ceph_monitor_dump.stdout | from_json | json_query(query) | map('regex_search', regex) | join(',') }}:/

docker exec manila_share ceph-authtool -p /etc/ceph/ceph.client.manila.keyring -n client.manila

docker exec -u 0 manila_share mount -t ceph {{ cephfs_addr }} /tmp/cephfs -o name=manila,secret={{ manila_keyring.stdout }}

docker exec -u 0 manila_share chown manila:manila /tmp/cephfs/volumes

docker exec {{ mariadb_service.container_name }} mysql -uroot -p{{ database_password }} --silent --skip-column-names -e 'SHOW STATUS LIKE "wsrep_local_state_comment"'

docker exec mariadb mysql -h {{ database_address }} -P {{ database_port }} -u haproxy -e 'show databases;'

MariaDB cluster exists but is stopped. Please start it using kolla-ansible mariadb_recovery

MariaDB cluster is not synced. Please wait for WSREP sync before proceeding.

groups.mariadb_sync_status_Synced is not defined or groups.mariadb_port_alive_True | sort != groups.mariadb_sync_status_Synced | sort

docker cp {{ mariadb_service.container_name }}:/var/log/kolla/mariadb/mariadb.log /tmp/mariadb_tmp.log

tail -n 200 /tmp/mariadb_tmp.log | awk -F" " '$0~/Recovered position/{print $NF;exit;}' | awk -F":" '{print $2}'

if [[ ! -z {{ hostvars[inventory_hostname]['seqno'] }} && ! -z {{ hostvars[item]['seqno'] }} &&
{{ hostvars[inventory_hostname]['seqno'] }} =~ ^[0-9]+$ && {{ hostvars[item]['seqno'] }} =~ ^[0-9]+$ &&
{{ hostvars[inventory_hostname]['seqno'] }} -lt {{ hostvars[item]['seqno'] }} ]]; then echo {{ hostvars[item]['seqno'] }}; fi

seqno_compare.results | map(attribute='stdout') | join('') == ""

{{ lookup('file', '/tmp/kolla_mariadb_recover_inventory_name') }}

docker cp {{ mariadb_service.container_name }}:/var/lib/mysql/grastate.dat /tmp/kolla_mariadb_grastate.dat

docker cp /tmp/kolla_mariadb_grastate.dat mariadb:/var/lib/mysql/grastate.dat

docker exec {{ mariadb_service.container_name }} mysql -uroot -p{{ database_password }} -e "SET GLOBAL wsrep_provider_options='pc.bootstrap=yes';"

docker exec {{ mariadb_service.container_name }} mysql -uroot -p{{ database_password }} --silent --skip-column-names -e 'SHOW STATUS LIKE "wsrep_evs_state"'

not mariadb_cluster_exists or (groups.mariadb_port_alive_True is defined and inventory_hostname in groups.mariadb_port_alive_True)

{{ node_config_directory }}/{{ item }}/{{ masakari_policy_file }}

{{ node_config_directory }}/{{ item.key }}/{{ mistral_policy_file }}

{{ node_config_directory }}/mistral-event-engine/event_definitions.yaml

{{ node_custom_config }}/mistral/{{ inventory_hostname }}/event_definitions.yaml

docker exec influxdb influx -host {{ monasca_influxdb_address }} -port {{ monasca_influxdb_http_port }} -execute 'show databases'

docker exec influxdb influx -host {{ monasca_influxdb_address }} -port {{ monasca_influxdb_http_port }} -execute 'CREATE DATABASE {{ monasca_influxdb_name }} WITH DURATION {{ monasca_influxdb_retention_policy.duration }} REPLICATION  {{ monasca_influxdb_retention_policy.replication_count }} NAME {{ monasca_influxdb_retention_policy.name }}'

monasca_influxdb_name not in monasca_influxdb_database.stdout_lines

{{ node_config_directory }}/monasca-agent-collector/plugins/{{ item.path | basename }}

{{ node_config_directory }}/monasca-log-transformer/log-transformer.conf

{{ node_custom_config }}/monasca/{{ inventory_hostname }}/log-transformer.conf

{{ role_path }}/templates/monasca-log-transformer/log-transformer.conf.j2

{{ node_config_directory }}/monasca-log-transformer/logstash_patterns

{{ node_config_directory }}/monasca-log-transformer/logstash_patterns/{{ item.path | basename }}

{{ node_config_directory }}/monasca-log-persister/log-persister.conf

{{ node_custom_config }}/monasca/{{ inventory_hostname }}/log-persister.conf

{{ role_path }}/templates/monasca-log-persister/log-persister.conf.j2

{{ node_config_directory }}/monasca-log-persister/elasticsearch-template.json

{{ node_custom_config }}/monasca/{{ inventory_hostname }}/elasticsearch-template.json

{{ role_path }}/templates/monasca-log-persister/elasticsearch-template.json

{{ node_config_directory }}/monasca-log-metrics/log-metrics.conf

{{ node_custom_config }}/monasca/{{ inventory_hostname }}/log-metrics.conf

{{ role_path }}/templates/monasca-log-metrics/log-metrics.conf.j2

{{ node_custom_config }}/monasca/{{ inventory_hostname }}/thresh-config.yml

{{ node_custom_config }}/monasca/{{ inventory_hostname }}/storm.yml

notification_templates.stat.exists and notification_templates.stat.isdir

{{ monasca_control_plane_project }}@{{ default_project_domain_id }}

docker exec -t mongodb mongo --host {{ 'api' | kolla_address }} --port {{ mongodb_port }} --quiet --eval rs.status().ok

docker exec -t mongodb mongo --host {{ api_interface_address }} --port {{ mongodb_port }} --quiet --eval '{{ lookup('file','/tmp/mongodb_bootstrap_replication_set.js') }}'

MongoDB deployment role is deprecated in Ussuri and will be removed in Victoria. Please read release notes for more background.

{{ node_config_directory }}/{{ item.key }}/{{ murano_policy_file }}

docker exec murano_api murano --os-username {{ openstack_auth.username }} --os-password {{ keystone_admin_password }} --os-project-name {{ openstack_auth.project_name }} --os-auth-url {{ keystone_admin_url }} --murano-url {{ admin_protocol }}://{{ api_interface_address | put_address_in_context('url') }}:{{ murano_api_port }} package-list

docker exec murano_api murano --os-username {{ openstack_auth.username }} --os-password {{ keystone_admin_password }} --os-project-name {{ openstack_auth.project_name }} --os-auth-url {{ keystone_admin_url }} --murano-url {{ admin_protocol }}://{{ api_interface_address | put_address_in_context('url') }}:{{ murano_api_port }} package-import --exists-action u --is-public /io.murano.zip

status.stdout.find("io.murano") == -1 or kolla_action == "upgrade"

docker exec murano_api murano --os-username {{ openstack_auth.username }} --os-password {{ keystone_admin_password }} --os-project-name {{ openstack_auth.project_name }} --os-auth-url {{ keystone_admin_url }} --murano-url {{ admin_protocol }}://{{ api_interface_address | put_address_in_context('url') }}:{{ murano_api_port }} package-import --exists-action u --is-public /io.murano.applications.zip

status.stdout.find("io.murano.applications") == -1 or kolla_action == "upgrade"

{{ node_config_directory }}/neutron-openvswitch-agent-fake-{{ item }}

{{ node_config_directory }}/neutron-openvswitch-agent-fake-{{ item }}/config.json

{{ node_custom_config }}/neutron/{{ inventory_hostname }}/dnsmasq.conf

{{ node_config_directory }}/{{ service_name }}/neutron-l3-agent-wrapper.sh

{{ node_config_directory }}/{{ service_name }}/{{ item.2.path | basename }}

Number of network agents are less than two when enabling agent ha

groups['neutron-dhcp-agent'] | length < 2 or groups['neutron-l3-agent'] | length < 2

{{ neutron_type_drivers.replace(' ', '').split(',') | reject('equalto', '') | list }}

{{ neutron_tenant_network_types.replace(' ', '').split(',') | reject('equalto', '') | list }}

Tenant network type '{{ item }}' is not in type drivers [{{ neutron_type_drivers }}]

Ironic must be enabled when using networking-baremetal/ironic-neutron-agent

docker exec -t neutron_server neutron-db-manage --subproject {{ item }} has_offline_migrations

{{ node_config_directory }}/{{ item.key }}/{{ nova_policy_file }}

kill -HUP `docker inspect -f '{% raw %}{{ .State.Pid }}{% endraw %}' nova_scheduler`

See the detail at https://docs.openstack.org/nova/latest/cli/nova-status.html#nova-status-checks

hostvars[first_nova_api_host]['nova_upgrade_check_stdout']['rc'] not in [0, 1]

xenapi_bootstrap -i {{ xenserver_himn_ip }} -u {{ xenserver_username }} -p {{ xenserver_password }} -f {{ xenapi_facts_path }}

{{ node_custom_config }}/nova/nova-libvirt/{{ inventory_hostname }}/{{ file }}

{{ node_config_directory }}/nova-compute-fake-{{ item }}/config.json

{{ lookup('file', xenapi_facts_root + '/' + inventory_hostname + '/' + xenapi_facts_file) | from_json }}

{{ node_custom_config }}/nova_compute/{{ inventory_hostname }}/release

{{ groups[nova_cell_compute_group] |
   intersect(ansible_play_batch) |
   map('extract', hostvars, 'ansible_nodename') |
   list }}

{{ (groups[nova_cell_compute_ironic_group] |
    intersect(ansible_play_batch) |
    map('extract', hostvars, 'ansible_hostname') |
    map('regex_replace', '^(.*)$', '\1-ironic') |
    list)
   if nova_cell_services['nova-compute-ironic'].enabled | bool else [] }}

inventory_hostname == groups[nova_cell_conductor_group][0] | default(None)

docker exec kolla_toolbox openstack --os-interface internal --os-auth-url {{ keystone_admin_url }} --os-identity-api-version 3 --os-project-domain-name {{ openstack_auth.domain_name }} --os-tenant-name {{ openstack_auth.project_name }} --os-username {{ openstack_auth.username }} --os-password {{ keystone_admin_password }} --os-user-domain-name {{ openstack_auth.domain_name }} --os-region-name {{ openstack_region_name }} {% if openstack_cacert != '' %}--os-cacert {{ openstack_cacert }}{% endif %} compute service list --format json --column Host --service nova-compute

(nova_compute_services.stdout | from_json | map(attribute='Host') | list) is superset(expected_compute_service_hosts)

Unable to find settings for {{ nova_cell_name or 'the default cell' }}.

docker exec nova_conductor nova-manage cell_v2 discover_hosts --by-service --cell_uuid {{ nova_cell_settings.cell_uuid }}

{{ node_config_directory }}/nova-libvirt/secrets/{{ item.uuid }}.xml

{{ lookup('file', nova_cephx_keyring_file.stat.path) | regex_search('key\s*=.*$', multiline=True) | regex_replace('key\s*=\s*(.*)\s*', '\1') }}

{{ lookup('file', cinder_cephx_keyring_file.stat.path) | regex_search('key\s*=.*$', multiline=True) | regex_replace('key\s*=\s*(.*)\s*', '\1') }}

{{ node_config_directory }}/nova-libvirt/secrets/{{ item.uuid }}.base64

inventory_hostname == groups[nova_conductor.group][0] | default(None)

At least 1 compute node required in inventory when ironic is disabled.

Nova Hyper-V deployment role is deprecated in Ussuri and will be removed in Victoria. Please read release notes for more background.

{{ node_config_directory }}/{{ item.key }}/{{ octavia_policy_file }}

{{ node_config_directory }}/openvswitch-db-server/start-ovsdb-server

docker exec openvswitch_db /usr/local/bin/kolla_ensure_openvswitch_configured {{ item.0 }} {{ item.1 }}

inventory_hostname in groups["network"] or (inventory_hostname in groups["compute"] and computes_need_external_bridge | bool )

docker exec "{{ service.container_name }}" ovs-vsctl --no-wait show

docker exec {{ service.container_name }} /bin/sh -c 'CONFIG_FILE={{ container_config_directory }}/ovs-dpdkctl.conf {{ container_config_directory }}/ovs-dpdkctl.sh init'

(inventory_hostname in groups['compute'] or (enable_manila | bool and inventory_hostname in groups['manila-share']) or inventory_hostname in groups['neutron-dhcp-agent'] or inventory_hostname in groups['neutron-l3-agent'] or inventory_hostname in groups['neutron-metadata-agent'])

docker exec -t mongodb mongo --host {{ mongodb_replication_set_name }}/{{ panko_database_mongodb_address }} --eval 'db = db.getSiblingDB("{{ panko_database_name }}"); db.createUser({user':' "{{ panko_database_user }}", pwd':' "{{ panko_database_password }}", roles':' [ "readWrite", "dbAdmin" ]})'

{{ node_config_directory }}/{{ item.key }}/{{ panko_policy_file }}

{{ node_config_directory }}/placement-api/placement-api-wsgi.conf

{{ placement_config_directory }}/{{ item.key }}/{{ placement_policy_file }}

Host OS distribution {{ ansible_distribution }} is not supported. Supported distributions are: {{ host_os_distributions.keys() | join(', ') }}

{{ ansible_distribution }} release {{ ansible_distribution_release }} version {{ ansible_distribution_version }} is not supported. Supported releases are: {{ host_os_distributions[ansible_distribution] | join(', ') }}

ansible_distribution_release not in host_os_distributions[ansible_distribution]

ansible_distribution_version not in host_os_distributions[ansible_distribution]

ansible_distribution_major_version not in host_os_distributions[ansible_distribution]

{{ ansible_python.executable }} -c "import docker; print(docker.__version__)"

result is failed or result.stdout is version(docker_py_version_min, '<')

Ansible version should be between {{ ansible_version_min }} and {{ ansible_version_max }}. Current version is {{ ansible_version.full }} which is not supported.

ansible_version_host is version(ansible_version_min, '<') or ansible_version_host is version(ansible_version_max, '>')

msg='Please check the api_interface property - interface {{ api_interface }} not found'

msg='Please check the api_interface settings - interface {{ api_interface }} is not active'

not hostvars[inventory_hostname]['ansible_' + api_interface]['active']

msg='Please check the api_interface settings - interface {{ api_interface }} ip address problem'

result is failed or result.stdout | regex_replace('.*(\\d+\\.\\d+\\.\\d+).*', '\\1')  is version(docker_version_min, '<')

result.stdout | regex_replace('(.*ssh_key.*)', '')  is search(":")

Service nscd is running. This is known to cause issues with Docker's user namespaces in
Kolla. Please disable it before proceeding.

kolla_external_vip_address and kolla_internal_vip_address must not be the same when only one network has TLS enabled

kolla_enable_tls_external | bool or kolla_enable_tls_internal | bool

not (kolla_enable_tls_external | bool and kolla_enable_tls_internal | bool)

We are sorry but enable_ceph is no longer supported. Please use external ceph support.

{{ node_config_directory }}/prometheus-server/{{ item.path | basename }}

service.enabled | bool and enable_prometheus_alertmanager | bool

prometheus_alert_rules is defined and prometheus_alert_rules.files | length > 0

{{ node_custom_config }}/prometheus/{{ inventory_hostname }}/prometheus.yml

{{ node_config_directory }}/prometheus-alertmanager/prometheus-alertmanager.yml

{{ node_custom_config }}/prometheus/{{ inventory_hostname }}/prometheus-alertmanager.yml

{{ node_config_directory }}/prometheus-openstack-exporter/clouds.yml

{{ node_custom_config }}/prometheus-openstack-exporter/{{ inventory_hostname }}/clouds.yml

{{ node_custom_config }}/prometheus-openstack-exporter/clouds.yml

{{ node_custom_config }}/prometheus/{{ inventory_hostname }}/prometheus-blackbox-exporter.yml

{{ node_custom_config }}/prometheus/prometheus-blackbox-exporter.yml

set -o pipefail && \ echo {{ qdrouterd_password }} | \ docker exec -u root -i qdrouterd saslpasswd2 -c -p -f /var/lib/qdrouterd/qdrouterd.sasldb -u AMQP {{ qdrouterd_user }}

{{ node_custom_config }}/qdrouterd/{{ inventory_hostname }}/qdrouterd.conf

{{ node_custom_config }}/qdrouterd/{{ inventory_hostname }}/qdrouterd-sasl.conf

{{ 'ahostsv4' if api_address_family == 'ipv4' else 'ahostsv6' }}

getent {{ nss_database }} {{ hostvars[item]['ansible_hostname'] }}

{{ node_config_directory }}/{{ item.key }}/{{ qinling_policy_file }}

{{ node_custom_config }}/qinling/qinling-engine/kubernetes_ca.crt

docker exec {{ service.container_name }} rabbitmqctl wait {{ rabbitmq_pid_file }}

{{ node_config_directory }}/{{ project_name }}/rabbitmq-env.conf

{{ node_custom_config }}/rabbitmq/{{ inventory_hostname }}/rabbitmq-env.conf

{{ node_custom_config }}/rabbitmq/{{ inventory_hostname }}/rabbitmq.conf

{{ node_custom_config }}/rabbitmq/{{ inventory_hostname }}/erl_inetrc

{{ node_custom_config }}/rabbitmq/{{ inventory_hostname }}/definitions.json

Hostname has to resolve uniquely to the IP address of api_interface

not item.1 is match('^'+('api' | kolla_address(item.0.item))+'\\b')

{{ node_config_directory }}/{{ item.key }}/{{ rally_policy_file }}

docker exec redis redis-cli -h {{ api_interface_address }} -a {{ redis_master_password }} ping

{{ node_config_directory }}/{{ item.key }}/{{ sahara_policy_file }}

{{ node_config_directory }}/{{ item.key }}/{{ searchlight_policy_file }}

{{ node_config_directory }}/{{ item.key }}/{{ senlin_policy_file }}

{{ node_custom_config }}/storm/{{ inventory_hostname }}/storm.yml

docker exec -t kolla_toolbox ansible localhost -m kolla_sanity -a "service=swift project=service user={{ openstack_auth.username }} password={{ swift_keystone_password }} role=admin region_name={{ openstack_region_name }} auth={{ '{{ openstack_swift_auth }}' }} {% if openstack_cacert != '' %}cacert={{ openstack_cacert }}{% endif %}" -e "{'openstack_swift_auth':{{ openstack_swift_auth }}}"

swift_sanity.stdout.find('localhost | SUCCESS => ') != -1 and (swift_sanity.stdout.split('localhost | SUCCESS => ')[1]|from_json).changed

inventory_hostname in groups['swift-account-server'] or inventory_hostname in groups['swift-container-server'] or inventory_hostname in groups['swift-object-server']

Swift ring files do not exist. Ensure .builder and .gz are available for each of account/container/object under {{ node_custom_config }}/swift before deploying Swift.

docker exec -u root {{ item.name }} /usr/local/bin/kolla_set_configs --check

docker exec -t kolla_toolbox sudo -E ansible localhost -m find_disks -a "name={{ swift_devices_name }} match_mode={{ swift_devices_match_mode }}"

swift_disk_lookup.stdout.find('localhost | SUCCESS => ') != -1 and (swift_disk_lookup.stdout.split('localhost | SUCCESS => ')[1]|from_json).changed

{{ (swift_disk_lookup.stdout.split('localhost | SUCCESS => ')[1]|from_json).disks|from_json }}

{{ node_config_directory }}/{{ item.key }}/{{ tacker_policy_file }}

In Train, Tacker started using local filesystem to store VNF packages and CSAR files. Kolla Ansible provides no shared filesystem capabilities, hence only one instance of each Tacker service is deployed and all on the same host. Previous multinode deployments will be descaled when running upgrade.

{{ node_custom_config }}/telegraf/{{ inventory_hostname }}/telegraf.conf

{{ node_config_directory }}/{{ item.key }}/{{ trove_policy_file }}

{{ node_config_directory }}/{{ item.key }}/{{ vitrage_policy_file }}

{{ node_config_directory }}/{{ item.key }}/{{ watcher_policy_file }}

{{ node_config_directory }}/{{ item.key }}/{{ zun_policy_file }}

{{ managed_network_prefix }}{{ groups['all'].index(inventory_hostname) + 1 }}

{{ managed_interface_address }}/{{ managed_network_prefix_length }}

ip address add {{ managed_network_cidr }} broadcast {{ managed_network_broadcast_address }} dev {{ managed_interface_name }}

ip address add {{ managed_interface_address }}/{{ managed_network_prefix_length }} dev {{ managed_interface_name }}

{{ 'ping' if managed_network_address_family == 'ipv4' else 'ping6' }}

{{ ping_command }} -c1 {{ hostvars[item].managed_interface_address }}

ip link add {{ vxlan_interface_name }} type vxlan id {{ vxlan_vni }} local {{ tunnel_local_address }} dstport {{ vxlan_dstport }}

{{ ansible_interfaces |
    map('extract', ansible_facts) |
    selectattr('ipv4.address', 'defined') |
    selectattr('ipv4.address', 'equalto', tunnel_local_address) |
    first }}

bridge fdb append 00:00:00:00:00:00 dev {{ vxlan_interface_name }} dst {{ dest_ip }}

{{ ansible_os_family == 'RedHat' and ansible_distribution_major_version | int == 8 }}

{{ ansible_env.PWD }}/src/{{ zuul.project.canonical_hostname }}/openstack/kolla-ansible

{{ zuul.executor.work_root }}/src/{{ zuul.project.canonical_hostname }}/openstack/kolla-ansible

{{ scenario in ['core', 'ceph-ansible', 'zun', 'cells', 'swift', 'linuxbridge'] }}

{{ '2' if is_upgrade and previous_release == 'train' and not is_centos8 else '3' }}

git checkout stable/{{ previous_release | lower }}
echo "kolla-ansible checked out to:"
git log --pretty=oneline  -1

{{ scenario == 'ceph-ansible' and is_previous_release and previous_release == 'train' }}

python{{ playbook_python_version }} -m ara.setup.callback_plugins

{{ kolla_ansible_local_src_dir }}/tests/templates/ansible.cfg.j2

{{ (passwords_yml.content | b64decode | from_yaml).kolla_ssh_key.private_key }}

ansible all -i {{ kolla_inventory_path }} -e ansible_user={{ ansible_user }} -m setup > /tmp/logs/ansible/initial-setup

{{ build_image_tag if need_build_image else zuul.branch | basename }}

{{ cert_dir }}/{{ ipxe_ca_filename }},{{ cert_dir }}/{{ cert_file_filename }}

make clean
make CROSS_COMPILE=aarch64-linux-gnu- ARCH=arm64 \
EMBED={{ bootloader_filename }} \
     TRUST={{ trust_files }} \
     bin-arm64-efi/snp.efi

make clean
make EMBED={{ bootloader_filename }} \
     bin-x86_64-efi/ipxe.efi \
     bin-x86_64-efi/snp.efi \
     bin-x86_64-efi/snponly.efi

mkdir -p efi_tmp
dd if=/dev/zero of=efi_tmp/ipxe.img count=2880
mformat -i efi_tmp/ipxe.img -m 0xf8 -f 2880
mmd -i efi_tmp/ipxe.img ::efi ::efi/boot
mcopy -i efi_tmp/ipxe.img bin-x86_64-efi/ipxe.efi ::efi/boot/bootx64.efi
genisoimage -o ipxe-efi.eiso -eltorito-alt-boot -eltorito-boot ipxe.img -no-emul-boot efi_tmp

truncate -s 3MiB ipxe-efi.usb
mkfs.vfat ipxe-efi.usb
mmd -i ipxe-efi.usb "::/efi"
mmd -i ipxe-efi.usb "::/efi/boot"
mcopy -i ipxe-efi.usb bin-x86_64-efi/ipxe.efi "::/efi/boot/bootx64.efi"

make clean
make EMBED={{ bootloader_filename }} TRUST={{ trust_files }} bin/ipxe.dsk bin/ipxe.iso bin/ipxe.lkrn bin/ipxe.usb bin/ipxe.kpxe bin/undionly.kpxe

{{ netbootxyz_root }}/ipxe/{{ bootloader_filename }}-undionly.kpxe

{{ netbootxyz_root }}/custom/{{ item.path | regex_replace('.j2','') }}

openssl cms -sign -binary -noattr -in {{ netbootxyz_root }}/{{ item }} \
-signer {{ codesign_cert_filename }} -inkey {{ codesign_key_filename }} -certfile {{ cert_file_filename }} -outform DER \
-out {{ sigs_dir }}/{{ item }}.sig

ansible-galaxy install -r "{{ requirements_path }}" -p "{{ ANSIBLE_REPO_PATH }}/configs/{{ env_type }}/roles"

{{ instances | json_query("
    [?name == '" + instance_canonical_name + "']
    | [].volumes[]
  ")
}}

{{ hostvars[lab_host]['ansible_host'] | default(hostvars[lab_host]['ansible_ssh_host']) | default(hostvars[lab_host]['inventory_hostname']) }}

user.info: Login is ssh student1@{{ hostvars[groups['control_nodes'][0]]['ansible_host'] }}

/bin/ansible-playbook -i /etc/ansible/hosts -e hosts_to_apply="masters" -e cuda_driver_repo_base_url="http://admin.na.shared.opentlc.com/repos/nvidia/" -e cuda_driver_repo_suffix="cuda/" /root/openshift-psap/playbooks/nvidia-driver-install.yaml

/bin/ansible-playbook -i /etc/ansible/hosts -e hosts_to_apply="masters" -e nvidia_container_hook_repo_base_url="http://admin.na.shared.opentlc.com/repos/nvidia/" -e libnvidia_container_suffix="libnvidia-container" -e libnvidia_container_repo_gpgcheck="false" -e nvidia_container_runtime_suffix="nvidia-container-runtime" -e nvidia_container_runtime_repo_gpgcheck="false" /root/openshift-psap/playbooks/nvidia-container-runtime-hook.yaml

{{ ANSIBLE_REPO_PATH }}/configs/{{ env_type }}/files/labs_hosts_template.{{ osrelease }}.j2

{{ ANSIBLE_REPO_PATH }}/configs/{{ env_type }}/files/prometheus_alerts_rules.yml

'quay_database', 'redis' and 'quay_enterprise' groups must be specified

'redis' not in groups or groups['redis']| length == 0 or 'quay_database' not in groups or groups['quay_database']| length == 0 or 'quay_enterprise' not in groups or groups['quay_enterprise']| length == 0

'clair' and 'clair_database' groups must be defined when quay_clair_enable=True

'clair' not in groups or groups['clair']|length == 0 or 'clair_database' not in groups or groups['clair_database']|length == 0

qe_quay_ssl_key_file is undefined or qe_quay_ssl_cert_file is undefined

qe_quay_ssl_cert_file is not defined or qe_quay_ssl_cert_file|trim == ""

infranode_cluster_1 is not defined or infranode_cluster_2 is not defined or infranode_cluster_1 == "" or infranode_cluster_2 == ""

Password needs to be provided to the role as parameter 'student_password'

quay_enterprise_address is undefined or quay_enterprise_address|trim == ""

http://{{ hostvars[inventory_hostname]['ansible_eth0']['ipv4']['address'] }}

quay_enterprise_hostname is undefined or quay_enterprise_hostname|trim == ""

Invalid Database Type. 'quay_database_type' must be 'postgres' or 'mysql'

quay_clair_enable is defined and quay_clair_enable|bool and (quay_clair_endpoint is not defined or quay_clair_endpoint|trim == "")

quay_ssl_enable|bool and (quay_ssl_key_file|trim != "" and quay_ssl_cert_file|trim != "")

quay_ssl_enable|bool and (quay_ssl_key_file|trim == "" or quay_ssl_cert_file|trim == "")

(git_installed_version.rc == 0) and (git_installed_version.stdout | regex_replace("^.*?([0-9\.]+)$", "\\1") | version_compare(git_version, operator="!="))

make prefix={{ git_install_path }} {{ item }} chdir={{ workspace }}/git-{{ git_version }}

jenkins_protocol variable is undefined or has a wrong value. Available options: http, https

curl -D - --silent --max-time 5 {{ jenkins_protocol }}://{{ jenkins_hostname }}:{{ jenkins_port }}{{ jenkins_url_prefix }}/cli/ -k

(result.stdout.find("403 Forbidden") != -1) or (result.stdout.find("200 OK") != -1) and (result.stdout.find("Please wait while") == -1)

{{ adminpasswordfile['stdout'] | default(jenkins_admin_password) }}

openssl req -x509 -new -nodes -key {{ jenkins_ca_key_path }} -sha256 -days {{ jenkins_cert_expiration_days }} -out {{ jenkins_ca_cert_path }} -subj "{{ jenkins_ca_subject_value }}"

openssl req -new -subj "{{ jenkins_ca_subject_value }}" -key {{ jenkins_key_path }} -out {{ jenkins_csr_path }}

openssl x509 -req -in {{ jenkins_csr_path }} -CA {{ jenkins_ca_cert_path }} -CAkey {{ jenkins_ca_key_path }} -CAcreateserial -out {{ jenkins_cert_path }} -sha256 -days {{ jenkins_cert_expiration_days }}

(jenkins_users_config is defined and jenkins_users_config.changed) or (jenkins_http_config is defined and jenkins_http_config.changed) or (jenkins_https_config is defined and jenkins_https_config.changed) or (jenkins_keystore_config is defined and jenkins_keystore_config.changed) or (jenkins_keystore_pass_config is defined and jenkins_keystore_pass_config.changed) or (jenkins_https_listen_address_config is defined and jenkins_https_listen_address_config.changed) or (jenkins_home_config is defined and jenkins_home_config.changed)

openssl pkcs12 -export -out {{ jenkins_pkcs12_path }} -passout pass:{{ jenkins_keystore_pass }} -inkey {{ jenkins_key_path }} -in {{ jenkins_cert_path }} -certfile {{ jenkins_ca_cert_path }} -name {{ jenkins_target_domain }}

keytool -importkeystore -srckeystore {{ jenkins_pkcs12_path }} -srcstoretype pkcs12 -srcstorepass {{ jenkins_keystore_pass }} -srcalias {{ jenkins_target_domain }} -destkeystore {{ jenkins_keystore_path }} -deststoretype jks -deststorepass {{ jenkins_keystore_pass }} -destalias {{ jenkins_target_domain }}

AWS Credentials are required when requesting certificates for a wildcard domain

(acme_aws_access_key is not defined or acme_aws_access_key|trim == "" or acme_aws_secret_access_key is not defined or acme_aws_secret_access_key|trim == "")

{{ (acme_wildcard_domain|length|int>0)|ternary('true','false') }}

{{ ANSIBLE_REPO_PATH }}/configs/{{env_type}}/files/htpasswd.openshift

sg_map -x | awk '($2 == 5 && $5 == {{ disk_map_device.lun }}) {print $7}'

{{ disk_map_device.name }}  (LUN={{ disk_map_device.lun }}) : {{ result.stdout }}

{{ANSIBLE_REPO_PATH}}/workdir/{{ env_type }}.{{ guid }}.{{cloud_provider}}_cloud_template

aws cloudformation validate-template --region {{ aws_region_final | d(aws_region) | default(region) | default('us-east-1')}} --template-url https://s3.amazonaws.com/{{bucket_templates}}/{{env_type}}.{{guid}}.{{cloud_provider}}_cloud_template

oc adm new-project aws-service-broker --node-selector='env=infra'

oc adm new-project aws-service-broker --node-selector='node-role.kubernetes.io/infra=true'

oc create configmap webconsole-customization --from-file=custom-categories.js=/root/custom-categories.js -n openshift-web-console

oc new-app nginx:1.12~https://github.com/siamaksade/web-console-customization.git --name=static -n openshift-web-console

oc set volume dc/static --add --name=custom --configmap-name=webconsole-customization --mount-path=/opt/app-root/src/custom -n openshift-web-console

oc get route/static -n openshift-web-console -o jsonpath='{ .spec.host }'

oc get cm/webconsole-config -n openshift-web-console -o jsonpath='{ .data.webconsole-config\.yaml }' > /tmp/webconsole-config.yaml

oc create configmap webconsole-config --from-file=webconsole-config.yaml=/tmp/webconsole-config.yaml -n openshift-web-console --dry-run -o yaml | oc replace -f -

oc delete pod -l app=openshift-web-console -n openshift-web-console

{{ openshift_cli }} new-app -f {{ installer_product }} --param=OPENSHIFT_ISTIO_MASTER_PUBLIC_URL={{ openshift_master_public }} -n istio-operator

{{ openshift_cli }} new-app -f {{ installer_community }} --param=OPENSHIFT_ISTIO_MASTER_PUBLIC_URL={{ openshift_master_public }} -n istio-operator

{{ openshift_cli }} create -f /tmp/istio-cr.yaml -n istio-operator

{{ openshift_cli }} get deployment istio-sidecar-injector -o jsonpath='{.status.availableReplicas}' -n istio-system

oc new-project {{ nexus_project }} --display-name='{{ nexus_project_display_name }}'

oc new-app -f /root/nexus-template.yaml --param=VOLUME_CAPACITY={{ nexus_volume_capacity }} --param=MEMORY_LIMIT={{ nexus_memory_limit }} --param=MEMORY_REQUEST={{ nexus_memory_request }} --param=CPU_LIMIT={{ nexus_cpu_limit }} --param=CPU_REQUEST={{ nexus_cpu_request}} --param=NEXUS_VERSION={{ nexus_version }} -n {{ nexus_project }}

oc create clusterquota clusterquota-"{{ocp_username}}-{{lab_name}}" \

oc delete clusterresourcequota clusterquota-{{ocp_username}}-{{lab_name}}

oc new-project {{ocp_project}} --description='{{project_description}}' --display-name={{ocp_project}}

oc policy add-role-to-user view system:serviceaccount:{{ocp_project}}:sso-service-account

oc new-app --template=sso72-x509-mysql-persistent --param=SSO_ADMIN_USERNAME={{SSO_ADMIN_USERNAME}} --param=SSO_ADMIN_PASSWORD={{SSO_ADMIN_PASSWORD}}  --param=HOSTNAME_HTTP={{SSO_HOSTNAME_HTTP}} --param=HOSTNAME_HTTPS={{SSO_HOSTNAME_HTTPS}} -n {{ocp_project}}

oc process -f {{sso_oauth_realm_template_url}}  --param=OPENSHIFT_MASTER={{OPENSHIFT_MASTER}} --param=KEYCLOAK_ROUTE_HOSTNAME={{SSO_HOSTNAME_HTTP}} --param=MICROCKS_ROUTE_HOSTNAME={{MICROCKS_ROUTE_HOSTNAME}} --param=APICURIO_UI_ROUTE_HOSTNAME=http://{{APICURIO_UI_ROUTE}} --param=OPENSHIFT_OAUTH_CLIENT_NAME={{OPENSHIFT_OAUTH_CLIENT_NAME}} -n {{ocp_project}}| oc create -f - -n {{ocp_project}} 

oc create -f {{apibiz_url}}/apicurio-template.yml -n {{ocp_project}}

oc new-app --template=apicurio-studio --param=AUTH_ROUTE=http://{{SSO_HOSTNAME_HTTP}}/auth --param=UI_ROUTE={{APICURIO_UI_ROUTE}} --param=API_ROUTE={{APICURIO_API_ROUTE}} --param=WS_ROUTE={{APICURIO_WS_ROUTE}} --param=API_JVM_MAX=2000m --param=API_MEM_LIMIT=3000Mi --param=WS_JVM_MAX=2000m --param=WS_MEM_LIMIT=2500Mi --param=UI_JVM_MAX=1800m --param=UI_MEM_LIMIT=2500Mi -n {{ocp_project}}

oc create -f {{apibiz_url}}/microcks-persistent-no-keycloak-template.yml -n {{ocp_project}}

oc new-app --template=microcks-persistent-no-keycloak --param=APP_ROUTE_HOSTNAME={{MICROCKS_ROUTE_HOSTNAME}} --param=KEYCLOAK_ROUTE_HOSTNAME={{KEYCLOAK_ROUTE_HOSTNAME}} -n {{ocp_project}}

oc create clusterquota clusterquota-"{{admin_username}}-{{ocp_project}}" \
--project-annotation-selector=openshift.io/requester="{{admin_username}}" \

create API Gateways for each tenant = {{create_gws_with_each_tenant}}

oc delete clusterresourcequota clusterquota-{{admin_username}}-{{ocp_project}}

oc annotate namespace {{ocp_project}} openshift.io/requester={{admin_username}} --overwrite

rc_state.stdout | from_json | json_query('items[?  (status.readyReplicas == ""|| status.readyReplicas == `0`) ].metadata.annotations[? "openshift.io/deployment.cancelled"==''true'']."openshift.io/deployment-config.name"') | intersect(pod_to_wait) | length == 0

oc process -f {{pam_template_yml}} -p IMAGE_STREAM_NAMESPACE={{ocp_project}} -p KIE_ADMIN_PWD={{kie_admin_passwd}} -p APPLICATION_NAME={{app_name}} -p BUSINESS_CENTRAL_HTTPS_SECRET={{bcentral_app_secret}} -p KIE_SERVER_HTTPS_SECRET={{kserver_app_secret}} > /tmp/{{guid}}/{{pam_template_name}}.json

oc create -f /tmp/{{guid}}/{{pam_template_name}}.json -n {{ocp_project}}

oc create configmap products-cm --from-file=/tmp/{{guid}}/products.txt -n {{ocp_project}}

oc volume dc/{{app_name}}-kieserver -n {{ocp_project}} \ --overwrite --add -t configmap -m /data --name=products-volume --configmap-name=products-cm

-p OPENSHIFT_MASTER=https://master.{{subdomain_base}} \

git clone --branch {{ release_tag }} https://github.com/integr8ly/installation.git {{ install_dir }}

ansible-playbook -i "{{ inventory_hosts_file }}" \
playbooks/uninstall.yml

playbooks/install.yml -e eval_self_signed_certs="{{ self_signed_certs_enabled }}"

oc get route/tutorial-web-app -o template --template \{\{.spec.host\}\} -n "{{ webapp_namespace }}"

user.info: Cluster Admin User: {{ admin_username }} / {{ admin_password }}

user.info: Evaluation User: {{ evals_username }} / {{ evals_password }}

user.info: Pre-seeded Evaluation Users: evals{01..50}@example.com / {{ evals_password }}

oc secrets link default redhat-iot-rhpds-pull-secret --for=pull -n {{ocp_project}}

oc new-app -f /tmp/{{guid}}/broker.yml -p 'MQTT_NODE_PORT={{mqtt_port}}' -p 'MQTTS_NODE_PORT={{mqtts_port}}' -p IMAGE_VERSION=5.0.0 -p NAMESPACE={{ocp_project}} -p EC_SECRET_DB=ec-db -p DISABLE_SSL=true -n {{ocp_project}}

user.info: Dashboard: http://dashboard-{{ocp_project}}.{{ocp_apps_domain}}

user.info: EC Console: http://ec-console-{{ocp_project}}.{{ocp_apps_domain}} UserID: ec-sys Password: ec-password

user.info: EC Broker MQTT: mqtt://ec-broker-mqtt.{{ocp_project}}.{{ocp_apps_domain}}:{{mqtt_port}} Account: Red-Hat Login: ec-sys Password: ec-password

oc new-app -f /tmp/{{guid}}/dashboard-proxy.yml -p 'BROKER_USERNAME=ec-sys' -p 'BROKER_PASSWORD=ec-password'

oc new-app -f /tmp/{{guid}}/dashboard.yml -p 'BROKER_HOSTNAME=ec-broker-ws-{{ocp_project}}' -p 'BROKER_PASSWORD=ec-password' -p 'BROKER_USERNAME=ec-sys' -p 'DASHBOARD_PROXY_HOSTNAME=dashboard-proxy-{{ocp_project}}'

user.info: ESF Virtual Gateway: http://esf-{{ocp_project}}.{{ocp_apps_domain}} UserID: admin Password: admin

oc create clusterquota clusterquota-"{{admin_username}}-{{lab_name}}" \

oc delete clusterresourcequota clusterquota-{{admin_username}}-{{lab_name}}

oc adm policy add-scc-to-group anyuid system:authenticated -n {{ocp_project}}

oc get deployment istio-sidecar-injector -o jsonpath='{.status.availableReplicas}' -n istio-system

oc policy add-role-to-user admin {{admin_username}} -n {{ocp_project}}

realm_management_log_file = {{realm_output_dir}}/{{realm_provisioning_log_file}}

Management of realms complete.  output files available at {{realm_output_dir}}

    --template={{rhsso_template_name}} \
    --param=SSO_ADMIN_USERNAME={{SSO_SITE_ADMIN_USERNAME}} \
    --param=SSO_ADMIN_PASSWORD={{SSO_SITE_ADMIN_PASSWORD}} \
    --param=MEMORY_LIMIT=2Gi \
    -n {{ocp_project}} \
    > /tmp/sso_provision.txt

rc_state.stdout |from_json | json_query("items[? (kind == 'ReplicationController')].metadata.annotations.\"openshift.io/deployment-config.name\"") |intersect(item) |length >= 1

rc_state.stdout |from_json |json_query("items[? ((status.readyReplicas == \"\" || status.readyReplicas == '`0`') && (metadata.annotations.\"openshift.io/deployment.cancelled\" != 'true'))].metadata.annotations.\"openshift.io/deployment-config.name\"") |intersect(pod_to_wait) |length == 0

--display-name="RHPAM 7 Order IT Hardware Demo" \
--description="Red Hat Process Automation Manager 7 Order IT Hardware Demo"

oc patch is/rhpam71-kieserver-openshift --type='json' -p '[{"op": "replace", "path": "/spec/tags/0/from/name", "value": "registry.access.redhat.com/rhpam-7/rhpam71-kieserver-openshift:1.0"}]'

oc process -f {{pam_secrets_template_yml}} -p SECRET_NAME=businesscentral-app-secret | oc create -f - -n {{ocp_project}}

oc process -f {{pam_secrets_template_yml}} -p SECRET_NAME=kieserver-app-secret | oc create -f - -n {{ocp_project}}

oc create serviceaccount businesscentral-service-account -n {{ocp_project}}

oc create serviceaccount kieserver-service-account -n {{ocp_project}}

oc secrets link --for=mount businesscentral-service-account businesscentral-app-secret -n {{ocp_project}}

oc secrets link --for=mount kieserver-service-account kieserver-app-secret -n {{ocp_project}}

oc create configmap rhpam-bc-setup-config-map --from-file=/tmp/{{guid}}/bc-clone-git-repository.sh,/tmp/{{guid}}/provision-properties-static.sh -n {{ocp_project}}

oc process -f /tmp/{{guid}}/rhpam71-businesscentral-openshift-with-users.yaml -p DOCKERFILE_REPOSITORY="https://github.com/jbossdemocentral/rhpam7-order-it-hw-demo-rhpamcentr" -p DOCKERFILE_REF="master" -p DOCKERFILE_CONTEXT="." -n {{ocp_project}} | oc create -n {{ocp_project}} -f -

oc new-app --template=rhpam71-authoring \
  -p APPLICATION_NAME="rhpam7-oih" \
  -p KIE_ADMIN_USER="adminUser" \
  -p KIE_ADMIN_PWD="test1234!" \
  -p KIE_SERVER_CONTROLLER_USER="controllerUser" \
  -p KIE_SERVER_CONTROLLER_PWD="test1234!" \
  -p KIE_SERVER_USER="executionUser" \
  -p KIE_SERVER_PWD="test1234!" \
  -p BUSINESS_CENTRAL_HTTPS_SECRET="businesscentral-app-secret" \
  -p KIE_SERVER_HTTPS_SECRET="kieserver-app-secret" \
  -p MAVEN_REPO_URL="http://nexus:8081/content/groups/public/" \
  -p MAVEN_REPO_USERNAME="deployment" \
  -p MAVEN_REPO_PASSWORD="deployment123" \
  -p BUSINESS_CENTRAL_MAVEN_USERNAME="mavenUser" \
  -p BUSINESS_CENTRAL_MAVEN_PASSWORD="test1234!" \
  -p BUSINESS_CENTRAL_MEMORY_LIMIT="2Gi" \
  -p IMAGE_STREAM_NAMESPACE={{ocp_project}} -n {{ocp_project}}

oc volume dc/rhpam7-oih-rhpamcentr --add --name=config-volume --configmap-name=rhpam-bc-setup-config-map --mount-path=/tmp/config-files

oc set deployment-hook dc/rhpam7-oih-rhpamcentr --post -c rhpam7-oih-rhpamcentr -e BC_URL="http://rhpam7-oih-rhpamcentr:8080" -v config-volume --failure-policy=abort -- /bin/bash /tmp/config-files/bc-clone-git-repository.sh

oc patch dc/rhpam7-oih-rhpamcentr --type='json' -p '[{"op": "replace", "path": "/spec/triggers/0/imageChangeParams/from/name", "value": "rhpam71-businesscentral-openshift-with-users:latest"}]'

oc new-app java:8~https://github.com/jbossdemocentral/rhpam7-order-it-hw-demo-springboot-app \
  --name rhpam7-oih-order-app \
  -e JAVA_OPTIONS="-Dorg.kie.server.repo=/data -Dorg.jbpm.document.storage=/data/docs -Dorder.service.location=http://rhpam7-oih-order-mgmt-app:8080 -Dorg.kie.server.controller.user=controllerUser -Dorg.kie.server.controller.pwd=test1234! -Dspring.profiles.active=openshift-rhpam" \
  -e KIE_MAVEN_REPO_USER=mavenUser \
  -e KIE_MAVEN_REPO_PASSWORD=test1234! \
  -e KIE_MAVEN_REPO=http://rhpam7-oih-rhpamcentr:8080/maven2 \
  -e GC_MAX_METASPACE_SIZE=192 -n {{ocp_project}}

oc create configmap rhpam7-oih-order-app-settings-config-map --from-file=/tmp/{{guid}}/settings.xml -n {{ocp_project}}

oc volume dc/rhpam7-oih-order-app --add -m /home/jboss/.m2 -t configmap --configmap-name=rhpam7-oih-order-app-settings-config-map -n {{ocp_project}}

oc volume dc/rhpam7-oih-order-app --add --claim-size 100Mi --mount-path /data --name rhpam7-oih-order-app-data -n {{ocp_project}}

oc create configmap rhpam7-oih-order-app-properties-config-map --from-file=/tmp/{{guid}}/application-openshift-rhpam.properties -n {{ocp_project}}

oc volume dc/rhpam7-oih-order-app --add -m /deployments/config -t configmap --configmap-name=rhpam7-oih-order-app-properties-config-map -n {{ocp_project}}

oc new-app java:8~https://github.com/jbossdemocentral/rhpam7-order-it-hw-demo-vertx-app \
  --name rhpam7-oih-order-mgmt-app \
  -e JAVA_OPTIONS='-Duser=maciek -Dpassword=maciek1!' \
  -e JAVA_APP_JAR=order-mgmt-app-1.0.0-fat.jar \
  -n {{ocp_project}}

oc policy add-role-to-user admin system:serviceaccount:{{ocp_project_pipelines}}:jenkins -n {{item}}

oc process openshift//jenkins-ephemeral -n {{ ocp_project_pipelines }}| oc apply -f- -n {{ ocp_project_pipelines }} 

oc process -f {{ springboot_noun_project_deployment_template_url }} -p APPLICATION_NAME=springboot-noun-service -p NAMESPACE={{ ocp_project_dev }} -p SA_NAMESPACE={{ ocp_project_pipelines }} -n {{ ocp_project_dev }}| oc apply -f- -n {{ ocp_project_dev }}

oc process -f {{ springboot_noun_project_deployment_template_url }} -p APPLICATION_NAME=springboot-noun-service -p NAMESPACE={{ ocp_project_tst }} -p SA_NAMESPACE={{ ocp_project_pipelines }} -n {{ ocp_project_tst }}| oc apply -f- -n {{ ocp_project_tst }}

oc process -f {{ springboot_noun_project_build_template_url }} -p APPLICATION_NAME=springboot-noun-service -p NAMESPACE={{ ocp_project_pipelines }} -p SOURCE_REPOSITORY_URL={{ springboot_src_repo_url }} -p SOURCE_REPOSITORY_REF=master -n {{ ocp_project_pipelines }}| oc apply -f- -n {{ ocp_project_pipelines }}

oc process -f {{ wildflyswarm_adjective_project_deployment_template_url }} -p APPLICATION_NAME=wildflyswarm-adj -p NAMESPACE={{ ocp_project_dev }} -p SA_NAMESPACE={{ ocp_project_pipelines }} -n {{ ocp_project_dev }}| oc apply -f- -n {{ ocp_project_dev }}

oc process -f {{ wildflyswarm_adjective_project_deployment_template_url }} -p APPLICATION_NAME=wildflyswarm-adj -p NAMESPACE={{ ocp_project_tst}} -p SA_NAMESPACE={{ ocp_project_pipelines }} -n {{ ocp_project_tst }}| oc apply -f- -n {{ ocp_project_tst }}

oc process -f {{ wildflyswarm_adjective_project_build_template_url }} -p APPLICATION_NAME=wildflyswarm-adj -p NAMESPACE={{ ocp_project_pipelines }} -p SOURCE_REPOSITORY_URL={{ wildfltswarm_src_repo_url }} -p SOURCE_REPOSITORY_REF=master -n {{ ocp_project_pipelines }}| oc apply -f- -n {{ ocp_project_pipelines }}

oc process -f {{ vertx_adjective_project_deployment_template_url }} -p APPLICATION_NAME=vertx-adjective-service -p NAMESPACE={{ ocp_project_dev }} -p SA_NAMESPACE={{ ocp_project_pipelines }} -n {{ ocp_project_dev }}| oc apply -f- -n {{ ocp_project_dev }}

oc process -f {{ vertx_adjective_project_deployment_template_url }} -p APPLICATION_NAME=vertx-adjective-service -p NAMESPACE={{ ocp_project_tst }} -p SA_NAMESPACE={{ ocp_project_pipelines }} -n {{ ocp_project_tst }}| oc apply -f- -n {{ ocp_project_tst }}

oc process -f {{ vertx_adjective_project_build_template_url }} -p APPLICATION_NAME=vertx-adjective-service -p NAMESPACE={{ ocp_project_pipelines }} -p SOURCE_REPOSITORY_URL={{ vertx_adj_src_repo_url }} -p SOURCE_REPOSITORY_REF=master -n {{ ocp_project_pipelines }}| oc apply -f- -n {{ ocp_project_pipelines }}

oc process -f {{ vertx_gateway_project_deployment_template_url }} -p APPLICATION_NAME=vertx-insult-gateway -p NAMESPACE={{ ocp_project_dev }} -p SA_NAMESPACE={{ ocp_project_pipelines }} -n {{ ocp_project_dev }}| oc apply -f- -n {{ ocp_project_dev }}

oc process -f {{ vertx_gateway_project_deployment_template_url }} -p APPLICATION_NAME=vertx-insult-gateway -p NAMESPACE={{ ocp_project_tst}} -p SA_NAMESPACE={{ ocp_project_pipelines }} -n {{ ocp_project_tst }}| oc apply -f- -n {{ ocp_project_tst }}

oc process -f {{ vertx_gateway_project_build_template_url }} -p APPLICATION_NAME=vertx-insult-gateway -p NAMESPACE={{ ocp_project_pipelines }} -p SOURCE_REPOSITORY_URL={{ vertx_gateway_src_repo_url }} -p SOURCE_REPOSITORY_REF=master -n {{ ocp_project_pipelines }}| oc apply -f- -n {{ ocp_project_pipelines }}

oc create -f "{{ modified_nodejs_template_path }}" -n openshift

           -p "APPLICATION_NAME={{ APPLICATION_NAME }}" \
           -p "KIE_ADMIN_USER={{ KIE_ADMIN_USER }}" \
           -p "KIE_ADMIN_PWD={{ KIE_ADMIN_USER }}" \
           -p "KIE_SERVER_USER={{ KIE_SERVER_USER }}" \
           -p "KIE_SERVER_PWD={{ KIE_SERVER_PWD }}" \
           -p "KIE_SERVER_CONTAINER_DEPLOYMENT={{ KIE_SERVER_CONTAINER_DEPLOYMENT }}" \
           -p "SOURCE_REPOSITORY_URL={{ SOURCE_REPOSITORY_URL }}" \
           -p "SOURCE_REPOSITORY_REF={{ SOURCE_REPOSITORY_REF }}" \
           -p "CONTEXT_DIR={{ CONTEXT_DIR }}" \

oc create clusterquota "{{cluster_quota_name}}" \

oc adm policy add-role-to-user view {{ocp_username}} -n istio-system

oc adm policy add-cluster-role-to-user sudoer {{ocp_username}} --as=system:admin

oc new-project {{ocp_1_project}} --display-name={{ocp_1_project}}

oc new-project {{ocp_2_project}} --display-name={{ocp_2_project}}

oc adm policy add-scc-to-user privileged -z default -n {{ocp_1_project}} 

oc create configmap app-config --from-file=/tmp/app-config.yaml -n {{ocp_1_project}}

-n {{ocp_1_project}} 

-f /tmp/coolstore-gateway.yaml \
-n {{ocp_2_project}} 

oc annotate namespace {{ocp_1_project}} openshift.io/requester={{ocp_username}} --overwrite

oc policy add-role-to-user admin {{ocp_username}} -n {{ocp_1_project}}

oc create clusterquota clusterquota-"{{ocp_project}}" \

oc new-app --template {{ spark_dc }} -p APPLICATION_NAME={{ spark_app_2 }} -p APP_MAIN_CLASS=com.redhat.gpte.App -p GIT_URI={{ spark_git }} -p APP_FILE=spark-drools.jar -p OSHINKO_DEL_CLUSTER=false -n {{lab_3_name}}

oc new-app --template=$namespace/apache-zeppelin-openshift -p APPLICATION_NAME={{ spark_app_3 }} -p GIT_URI={{ zeppelin_git }} -p ZEPPELIN_INTERPRETERS=md -n {{lab_4_name}}

oc new-app --template radanalytics-jupyter-notebook -p JUPYTER_NOTEBOOK_PASSWORD=developer -n {{lab_5_name}}

oc new-app --template=$namespace/apache-zeppelin-openshift -p APPLICATION_NAME={{ spark_app_3 }} -p GIT_URI={{ zeppelin_git }} -p ZEPPELIN_INTERPRETERS=md -n {{lab_6_name}}

oc policy add-role-to-user admin {{ocp_username}} -n {{lab_1_name}}

oc apply -f {{ clusteroperator_rolebinding_yaml }} -n {{lab_1_name}}

oc apply -f {{ topicoperator_rolebinding_yaml }} -n {{lab_1_name}}

oc apply -f {{clusteroperator_deployment_yaml}} -n {{lab_1_name}}

subscription-manager register --org="{{satellite_org}}" --activationkey="{{ satellite_activationkey }}" --force

subscription-manager repos --enable=rhel-7-server-satellite-tools-6.3-rpms

hostnamectl --machine="{{ inventory_hostname }}" status | awk '/Machine ID/ {print $3}'

echo stats | nc -w 3 {{ hostvars[memcached_host]['container_address'] }} {{ memcached_port }}

{{ venv_path }}/bin/python2 {{ venv_path }}/rabbitmq-test.py {{ hostvars[groups['rabbitmq_all'][0]]['container_address'] }}

{{ keystone_service_internaluri_insecure | ternary(false, true) }}

[?name == '{{ nova_vm.name }}'].addresses.{{ nova_vm.network }}[] | [?contains(*,'floating')].addr

scp -o StrictHostKeyChecking=no -i {{ ssh_key }} cirros@{{ _floating_ip[0] }}:/etc/fstab /tmp/fstab

Ensure systemd-journal-remote socket is enabled on receiving host

{{ ((((groups['hosts'] | length) * 1.5) + (groups['hosts'] | length)) // 1) | int }}

{{ (ansible_host != systemd_journal_remote_target) | ternary('no', 'yes') }}

{{ (ansible_host != systemd_journal_remote_target) | ternary('stopped', 'started') }}

{{ systemd_utils_prefix }}/systemd-journal-remote --listen-http=-3 --split-mode=host --compress --seal --output=/var/log/journal/remote/

{{ (ansible_host == systemd_journal_remote_target) | ternary('no', 'yes') }}

{{ (ansible_host == systemd_journal_remote_target) | ternary('stopped', 'started') }}

{{ systemd_utils_prefix }}/systemd-journal-upload --save-state --merge --url=http://{{ systemd_journal_remote_target }}:19532

{% for host in ansible_play_hosts %}
hostname: {{ host }}
listening_ports:
{% for port in hostvars[host].listening_ports['stdout_lines'] %}
{{ port }}
{% endfor %}

{{ (groups['cinder_all'] | map('extract', hostvars, ['ansible_local', 'openstack_ansible', 'cinder', 'venv_tag'])) | list }}

{{ (cinder_all_software_versions | select('defined')) | list == cinder_all_software_versions }}

{{ ((cinder_all_software_versions | unique) | length == 1) and (cinder_all_software_deployed | bool) }}

{{ (groups['glance_all'] | map('extract', hostvars, ['ansible_local', 'openstack_ansible', 'glance', 'venv_tag'])) | list }}

{{ (glance_all_software_versions | select('defined')) | list == glance_all_software_versions }}

{{ ((glance_all_software_versions | unique) | length == 1) and (glance_all_software_deployed | bool) }}

{{ (groups['keystone_all'] | map('extract', hostvars, ['ansible_local', 'openstack_ansible', 'keystone', 'venv_tag'])) | list }}

{{ (keystone_all_software_versions | select('defined')) | list == keystone_all_software_versions }}

{{ ((keystone_all_software_versions | unique) | length == 1) and (keystone_all_software_deployed | bool) }}

ansible_local['openstack_ansible']['keystone']['need_db_contract'] | bool

{{ (groups['nova_all'] | map('extract', hostvars, ['ansible_local', 'openstack_ansible', 'nova', 'venv_tag'])) | list }}

{{ (nova_all_software_versions | select('defined')) | list == nova_all_software_versions }}

{{ ((nova_all_software_versions | unique) | length == 1) and (nova_all_software_deployed | bool) }}

ansible_local['openstack_ansible']['nova']['need_online_data_migrations'] | bool

{{ network_address }}={{ hostvars[inventory_hostname] | json_query(query) }}

container_networks.{{ network_address }}.address || ansible_host

"ansible_{{ hostvars[inventory_hostname] | json_query(find_bridge) | replace('-','_') }}".ipv4.address || {{ non_metal_query }}

{{ lxc_default_bind_mounts | default([{"bind_dir_path": "/var/log", "mount_path": "/openstack/log/" ~ inventory_hostname}]) }}

(_mc is defined and _mc is changed) or (_ec is defined and _ec is changed)

lxc-stop --name {{ inventory_hostname }} --logfile {{ lxc_container_log_path }}/lxc-{{ inventory_hostname }}.log --logpriority {{ (debug | bool) | ternary('DEBUG', 'INFO') }}

lxc-start --daemon --name {{ inventory_hostname }} --logfile {{ lxc_container_log_path }}/lxc-{{ inventory_hostname }}.log --logpriority {{ (debug | bool) | ternary('DEBUG', 'INFO') }}

sed -i -e '/proxy = http:\/\/{{ internal_lb_vip_address }}:{{ repo_pkg_cache_port | default('3142') }}/d' /etc/yum.repos.d/*

systemctl list-unit-files --state=enabled --type=service | awk '/^{{ service_name }}.* enabled$/ {print $1}'

{{ (_enabled_services.stdout_lines | difference(service_negate | default([]))) | list }}

{% set _var = [] %}
{% for host in groups[resolvconf_resolver_group] %}
{%   if physical_host is defined and
        hostvars[host]['physical_host'] is defined
        and physical_host == hostvars[host]['physical_host'] %}
{%     set _prio = 100 %}
{%   else %}
{%     set _prio = 50 %}
{%   endif %}
{%   set _ = _var.append({
       'host': hostvars[host]['ansible_host'],
       'priority': _prio
     })
%}
{{ _var |
   sort(reverse=true, attribute='priority') |
   map(attribute='host') |
   list
}}

physical_host in hostvars['localhost']['unbound_physical_hosts']

{{ item.path | default(role_path_default) }}/{{ item.name | default(item.src | basename) }}

(item.path | default(role_path_default) ~ '/' ~ item.name | default(item.src | basename) ~ '/.git') is not directory

{{ (zuul_roles.results | default([]) | selectattr('stat', 'defined') | rejectattr('stat.exists') | map(attribute='item') | list) | default(required_roles, True) }}

set -e
exit_code=0
if [[ -e {{ openstack_config_dir }}/env.d ]]; then
  for f in $(diff --brief --report-identical-files {{ openstack_config_dir }}/env.d {{ openstack_clone_root }}/inventory/env.d | awk '/identical/ {print $2}' 2>/dev/null); do
    echo "Deleting ${f} because it is identical to the defaults."
    rm -f ${f}
    exit_code=2
  done
fi
exit ${exit_code}

There are files in /etc/openstack_deploy/env.d which override the default inventory
layout in {{ repo_root_dir }}/inventory/env.d. The difference between these files
should be carefully reviewed to understand whether the changes are still necessary
and applicable to the environment. If all the user-space env.d files are necessary,
then please export SKIP_CUSTOM_ENVD_CHECK=true and re-run the playbook or
run-upgrade.sh script.

grep '^[a-zA-Z]' {{ repo_root_dir }}/etc/openstack_deploy/user_secrets.yml

{{ repo_root_dir }}/scripts/pw-token-gen.py --file {{ openstack_config_dir }}/user_secrets.yml

if [[ $(df -T / | tail -n 1 | awk '{print $2}') == "btrfs" ]]; then
    btrfs fi usage --kbytes / | awk '/^.*Free / {print $3}'| sed 's/\..*//'
else
    df -BK / | awk '!/^Filesystem/ {print $4}' | sed 's/K//'
fi

{{ (ansible_devices[bootstrap_host_data_disk_device]['sectors'] | int) }}

{{ (ansible_devices[bootstrap_host_data_disk_device]['sectorsize'] | int) }}

{{ ((host_data_disk_sectors | int) * (host_data_disk_sectorsize | int)) | int }}

{{ ((bootstrap_host_data_disk_min_size | int) * 1024**3) | int }}

{{ ((host_root_space_available_bytes | int ) / 1024**3) | round(2, 'floor') }}

{{ ((host_data_disk_size_bytes | int ) / 1024**3) | round(2, 'floor') }}

Not enough space available in /.
Found {{ root_gb_available }} GB, required {{ bootstrap_host_data_disk_min_size }} GB)

(host_root_space_available_bytes | int) < (host_data_disk_min_size_bytes | int)

Not enough disk space available.
Found {{ disk_gb_available }} GB, required {{ bootstrap_host_data_disk_min_size }} GB)

(host_data_disk_size_bytes | int) < (host_data_disk_min_size_bytes | int)

lsblk -brndo NAME,TYPE,RO,SIZE | awk '/d[b-z]+ disk 0/{ if ($4>m && $4>={{ bootstrap_host_data_disk_min_size }}){m=$4; d=$1}}; END{print d}'

/opt/ansible-runtime/bin/python {{ bootstrap_host_aio_script_path }}/pw-token-gen.py --file /etc/openstack_deploy/{{ bootstrap_host_user_secrets_filename }}

{{ playbook_dir }}/../etc/openstack_deploy/env.d/calico.yml.example

truncate -s {{ bootstrap_host_loopback_ceph_size }}G /openstack/{{ item }}.img

---
lvm_volumes:
{% for d in ceph_create_loopback | json_query('results[].stdout') %}
  - data_vg: vg-{{ d | basename }}
    data: lv-{{ d | basename }}
cinder_backends:
  "RBD":
    volume_driver: cinder.volume.drivers.rbd.RBDDriver
    rbd_pool: volumes
    rbd_ceph_conf: /etc/ceph/ceph.conf
    rbd_store_chunk_size: 8
    volume_backend_name: rbddriver
    rbd_user: cinder
    rbd_secret_uuid: "{% raw %}{{ cinder_ceph_client_uuid }}{% endraw %}"
    report_discard_supported: true

parted --script -l -m | egrep -q ':{{ bootstrap_host_data_disk_fs_type }}:openstack-data[12]:;$'

{{ (bootstrap_host_data_disk_device | regex_replace('!','/')).strip() }}

parted --script /dev/{{ _bootstrap_host_data_disk_device }} mklabel gpt

parted --align optimal --script /dev/{{ _bootstrap_host_data_disk_device }} mkpart openstack-data1 {{ bootstrap_host_data_disk_fs_type }} 0% 40%

parted --align optimal --script /dev/{{ _bootstrap_host_data_disk_device }} mkpart openstack-data2 {{ bootstrap_host_data_disk2_fs }} 40% 100%

zpool create pool "/dev/{{ _bootstrap_host_data_disk_device }}2"

(zfs list | grep lxc) || zfs create -o mountpoint=/var/lib/lxc pool/lxc

pvcreate /dev/{{ _bootstrap_host_data_disk_device }}2 && touch /openstack/lxc.pvcreate

127.0.0.1 localhost
172.29.236.100 aio1.openstack.local aio1

# The following lines are desirable for IPv6 capable hosts
::1 ip6-localhost ip6-loopback
fe00::0 ip6-localnet
ff00::0 ip6-mcastprefix
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters
ff02::3 ip6-allhosts

truncate -s {{ bootstrap_host_loopback_btrfs_size }}G /openstack/lxc-btrfs.img

truncate -s {{ bootstrap_host_loopback_cinder_size }}G /openstack/cinder.img

pvcreate {{ cinder_losetup.stdout }} && touch /openstack/cinder.pvcreate

truncate -s {{ bootstrap_host_loopback_machines_size }}G /openstack/machines.img

truncate -s {{ bootstrap_host_loopback_manila_size }}G /openstack/manila.img

pvcreate {{ manila_losetup.stdout }} && touch /openstack/manila.pvcreate

truncate -s {{ bootstrap_host_loopback_nova_size }}G /openstack/nova.img

dd if=/dev/zero of=/openstack/swap.img bs=1M count={{ bootstrap_host_loopback_swap_size }}

truncate -s {{ bootstrap_host_loopback_swift_size }}G /openstack/{{ item }}.img

truncate -s {{ bootstrap_host_loopback_zfs_size }}G /openstack/lxc-zfs.img

(zfs list | grep lxc) || zfs create -o mountpoint=/var/lib/lxc osa-test-pool/lxc

not ssh_key_public.stat.exists or not ssh_key_private.stat.exists

{{ ansible_user_dir }}/src/opendev.org/openstack/openstack-ansible

{% set _scenario = [] %}
{# Add the scenarios based on the job name #}
{# ex. openstack-ansible-deploy-$scenario1_$scenario2-$os #}
{% if zuul.job is match('^openstack-ansible-(deploy|upgrade)-([^-]+)-.*$') %}
{%   set _ = _scenario.extend(
       (zuul.job |
        regex_replace('^openstack-ansible-[a-z]*-([^-]+)-.*$', '\\1')).split('_')
     )
%}
{#   If testing a role, add the role service name to the scenario list #}
{%   if zuul.project.short_name is match('^openstack-ansible-os_(.*)$') %}
{%     set role_service_name = zuul.project.short_name |
                             regex_replace('^openstack-ansible-os_(.*)$', '\\1')
%}
{%     set _ = _scenario.append(role_service_name) %}
{#     Add special scenarios based on the project name #}
{%     if role_service_name in scenario_map %}
{%       set _ = _scenario.append(scenario_map[role_service_name]) %}
{%     endif %}
{%   endif %}
{% endif %}
{# If running linters we need to provide name of the role as a scenario w/o splitting #}
{% if zuul.job is match('^openstack-ansible-linters-.*$') %}
{%   for prefix in ['openstack-ansible', 'ansible-role'] %}
{%     if zuul.project.short_name is match('^' ~ prefix ~ '-([^-]+)$') %}
{%        set _ = _scenario.append(
            zuul.project.short_name | regex_replace('^' ~ prefix ~'-([^-]+)$', '\\1')
          )
%}
{%     endif%}
{%   endfor %}
{% endif %}
{{ _scenario | join('_') }}

{{ zuul.job | regex_replace('^openstack-ansible-([^-]+)-.*$', '\1') }}

Running gate-check-commit with the following arguments:
Scenario: {{ scenario }}
Action: {{ action }}
Install Method: {{ install_method }}
Zuul project name: {{ zuul.project.short_name }}

scripts/gate-check-commit.sh {{ scenario | quote }} {{ action | quote }} {{ install_method | quote }}

. {{ ansible_env.HOME }}/openrc
openstack compute service delete {{ results.stdout }}

neutron agent-delete {{ item }}

python /opt/openstack-ansible/scripts/inventory-manage.py -r {{ host_to_be_removed }}

{{ swift_vars.mount_point | default(swift.mount_point) }}/{{ item.name }}

influx -username {{ influxdb_db_root_name }} -password {{ influxdb_db_root_password }} -execute "{{ item }}"

CREATE RETENTION POLICY {{ influxdb_db_retention_policy }} ON {{ influxdb_db_name }} DURATION {{ influxdb_db_retention }} REPLICATION {{ influxdb_db_replication }}

CREATE USER {{ influxdb_db_metric_user }} WITH PASSWORD '{{ influxdb_db_metric_password }}'

GRANT ALL ON {{ influxdb_db_name }} TO {{ influxdb_db_metric_user }}

kapacitord config > /etc/kapacitor/kapacitor.conf;kapacitord -config /etc/kapacitor/kapacitor.conf -log-file /var/log/kapacitor/kapacitor.log &

chmod 755 /opt/kapacitor/kapacitor_files/*.*;bash /opt/kapacitor/kapacitor_files/run_all.sh

src=templates/rotate-topbeatdata.sh dest=/root/rotate-topbeatdata.sh mode=0755

curl -XPUT 'http://localhost:{{ elastic_port }}/_template/topbeat' -d@topbeat.template.json

{{
  inventory_hostname in (groups['nova_compute'] | default([]))
}}

--host {{ (monitorstack_memcached_access.stdout_lines[0] | default("127.0.0.1:11211")).split(":")[0] }} --port {{ (monitorstack_memcached_access.stdout_lines[0] | default("127.0.0.1:11211")).split(":")[1] }}

{{
  inventory_hostname in (groups['memcached_all'] | default([]))
}}

{{
  (clouds_config.stat.exists | bool) and
  (inventory_hostname in (groups['utility_all'] | default([]))) and
  (inventory_hostname == (groups['utility_all'] | default([null]))[0])
}}

(openstack_release.stat.exists | bool) or (rhosp_release.stat.exists | bool)

{{ monitorstack_distro_packages[(ansible_distribution | lower)] }}

virtualenv --no-setuptools --system-site-packages /var/lib/monitorstack/venv

git+https://github.com/openstack/monitorstack@{{ monitorstack_release | default('master') }}

[elasticsearch]
hosts = {{ elasticsearch_data_hosts | join(',') }}
port = {{ elastic_port }}

{% set services = [] %}
{% for item in monitorstack_config_enabled %}
{%   if item.condition | bool %}
{%
   set check = {
     "service_name": ("monitorstack-" ~ item.check),
     "execstarts": ("/var/lib/monitorstack/venv/bin/monitorstack --format elasticsearch --config-file /etc/monitorstack/monitorstack.ini " ~ item.check ~ ' ' ~ item.options),
     "timer": {
       "state": "started",
       "options": {
         "OnBootSec": "5min",
         "OnUnitActiveSec": "10m",
         "Persistent": true
       }
     }
   }
%}
{%     set _ = services.append(check) %}
{%   endif %}
{{ services }}

/opt/elasticdump/node_modules/elasticdump/bin/elasticdump --input=/tmp/openstack-log-dashboard.json --output={{ kibana_index_on_elasticsearch }} --type=data

/usr/share/elasticsearch/bin/elasticsearch-plugin remove --verbose {{ item }}

/usr/share/elasticsearch/bin/elasticsearch-plugin install --batch --verbose {{ item }}

{{ auditbeat_service_state in ['running', 'started', 'restarted'] }}

To use this role the variable `coordination_nodes` must be defined.

To use this role the variable `elastic_beat_name` must be defined.

{% if item == '--dashboards' %}
  sed -i 's@\\\"index\\\": \\\"{{ elastic_beat_name }}-\*\\\"@\\\"index\\\": \\\"{{ elastic_beat_name }}\\\"@g' /usr/share/{{ elastic_beat_name }}/kibana/6/dashboard/*.json
  sed -i 's@"id": "{{ elastic_beat_name }}\-\*",@"id": "{{ elastic_beat_name }}",@g' /usr/share/{{ elastic_beat_name }}/kibana/6/index-pattern/*.json
{% endif %} {{ elastic_beat_name }} setup {{ item }} {{ elastic_beat_setup_options }} -e -v

((ansible_local['elastic']['setup'][elastic_beat_name + '_loaded_templates'] is undefined) or (not (ansible_local['elastic']['setup'][elastic_beat_name + '_loaded_templates'] | bool))) or ((elk_package_state | default('present')) == "latest") or (elk_beat_setup | default(false) | bool)

virtualenv --never-download --no-site-packages /opt/elasticsearch-curator

{{ filebeat_service_state in ['running', 'started', 'restarted'] }}

{{ heartbeat_service_state in ['running', 'started', 'restarted'] }}

{{ journalbeat_service_state in ['running', 'started', 'restarted'] }}

{{ (inventory_hostname in logstash_nodes) | ternary('restarted', 'stopped') }}

/usr/local/bin/logstash --modules arcsight {{ (ansible_local['arcsight'][item.host] is defined) | ternary('', '--setup') }}
  -M "arcsight.var.input.smartconnector.bootstrap_servers={{ item.host }}:{{ item.port }}"
  -M "arcsight.var.elasticsearch.hosts=localhost:{{ elastic_port }}"
  -M "arcsight.var.kibana.host={{ hostvars[groups['kibana'][0]]['ansible_host'] }}:{{ kibana_port }}"

  -M "arcsight.var.input.eventbroker.bootstrap_servers={{ item.host }}:{{ item.port }}"

/var/lib/logstash/{{ logstash_kafka_ssl_keystore_location | basename }}

/var/lib/logstash/{{ logstash_kafka_ssl_truststore_location | basename }}

{% set ceph_stats = [] %}
{% if (ceph_mons is defined) and (ceph_mons | length > 0) %}
{%   for mon in ceph_mons %}
{%     set _ = ceph_stats.insert(loop.index, (mon + ":5000")) %}
{% else %}
{%   set ceph_stats = [ ansible_hostname + ":5000" ] %}
{% endif %}
{{ ceph_stats }}

{{ (apache2.stat.exists | bool) or (httpd.stat.exists | bool) }}

{% set ceph_detect = false %}
{% if ceph_restapi_listening is defined %}
{%   if (ceph_mons is defined) and (ceph_mons | length > 0) and (inventory_hostname in groups[ceph_metricbeat_group])  %}
{%     set ceph_detect = true %}
{%   else %}
{%     set ceph_detect = ceph.stat.exists | bool %}
{%   endif %}
{% endif %}
{{ ceph_detect }}

{% if ceph_prometheus_listening is defined and (inventory_hostname in groups[ceph_metricbeat_group])  %}
{%   set ceph_detect = true %}
{% endif %}

{{ metricbeat_service_state in ['running', 'started', 'restarted'] }}

{{ packetbeat_service_state in ['running', 'started', 'restarted'] }}

An existing rollup job was found for {{ index_name }}. In order to re-create this rollup job the old job will need to be purged. If you're OK with the old rollup job being purged, add the following option `elastic_allow_rollup_purge=yes` to the command line and rerun the playbook.

${HOME}/ansible_venv/bin/ansible-galaxy install --force --ignore-errors --roles-path=${HOME}/ansible_venv/repositories/roles -r ansible-role-requirements.yml

${HOME}/ansible_venv/bin/ansible-playbook -i {{ inventory_file }} -e @test-vars.yml _key-setup.yml

ansible_service_mgr != 'systemd' or not (container_inventory | bool)

${HOME}/ansible_venv/bin/ansible-playbook -i {{ inventory_file }} -e @test-vars.yml _container-setup.yml

${HOME}/ansible_venv/bin/ansible-playbook -i tests/{{ inventory_file }} -e @tests/test-vars.yml site.yml

${HOME}/ansible_venv/bin/ansible-playbook -i tests/{{ inventory_file }} -e @tests/test-vars.yml showElasticCluster.yml

{% set masters = 0 %}
{% if (item | int) < 3 %}
{%   set masters = 1 %}
{% elif (item | int) == 3 %}
{%   set masters = 3 %}
{% else %}
{%   set masters = (item | int ) // 2 %}
{%   if ((masters | int) % 2 == 0) %}
{%     set masters = (masters | int) + 1 %}
{%   endif %}
{% endif %}
{{ masters }}

{{ masters|default([]) + [ { 'nodes': item.item, 'masters': (item.ansible_facts.master_node_count|int) } ] }}

{% endif %} {{ elastic_beat_name }} setup {% if elastic_beat_name == "heartbeat" and item == "--index-management" -%}
  --template
{%- else -%}
  {{ item }}
{%- endif %} {{ elastic_beat_setup_options }} -e -v

(((ansible_local['elastic']['setup'][elastic_beat_name + '_loaded_templates'] is undefined) or (not (ansible_local['elastic']['setup'][elastic_beat_name + '_loaded_templates'] | bool))) or ((elk_package_state | default('present')) == "latest") or (elk_beat_setup | default(false) | bool)) and not (elastic_beat_name == "heartbeat" and item == "--pipelines")

{{ ((ansible_facts.services['haproxy.service'] | default({}) )['state'] | default('')) == 'running' }}

{{ ((ansible_facts.services['mdmonitor.service'] | default({}) )['state'] | default('')) == 'running' }}

{{ ansible_user_dir }}/src/opendev.org/openstack/openstack-ansible-ops/

find /etc/openstack_deploy/ansible_facts/ -type f -exec rm {} \;

(is_metal is defined and is_metal != true) or container_name != physical_host

In order to continue you must perform a manual migration of the cinder volume container [ {{ container_name }} ] to the physical host [ {{ physical_host }} ]. The leap upgrade can NOT continue until this task has been accomplished.

uses_lvm | default(false) == true and in_container | default(false) == true

mysql -e "SELECT T.table_schema, T.table_name FROM information_schema.`TABLES` T,
 information_schema.`COLLATION_CHARACTER_SET_APPLICABILITY` CCSA
 WHERE CCSA.collation_name = T.table_collation AND CCSA.CHARACTER_SET_NAME = 'utf8'
 AND CCSA.COLLATION_NAME = 'utf8_unicode_ci';"

mysql -e
  "ALTER TABLE {{ item.split()[1] }} CONVERT TO CHARACTER SET utf8 COLLATE utf8_general_ci;"
  {{ item.split()[0] }}

mysql -e "SELECT SCHEMA_NAME FROM information_schema.SCHEMATA
 WHERE DEFAULT_CHARACTER_SET_NAME = 'utf8' AND DEFAULT_COLLATION_NAME = 'utf8_unicode_ci';"

mysql -e "ALTER DATABASE {{ item }} CHARACTER SET utf8 COLLATE utf8_general_ci;"

{{ venv_path }}/bin/nova-manage db null_instance_uuid_scan --delete

{{ venv_path }}/bin/neutron-db-manage --config-file {{ neutron_db_config }} --config-file {{ neutron_db_plugin }} upgrade {{ neutron_db_revision }}

{{ venv_path }}/bin/neutron-db-manage history | grep -w 'Revision ID: {{ neutron_db_revision }}'

{{ venv_path }}/bin/neutron-db-manage --config-file {{ neutron_db_config }} --config-file {{ neutron_db_plugin }} stamp {{ neutron_db_revision }}

mysql --unbuffered -sNL -e 'drop database {{ horizon_galera_database | default('dash') }}'

mysql -Be 'select `binary`,`host` from services;' cinder | awk '{if (NR!=1) {print $1, $2}}'

mysql --verbose --unbuffered -e "desc image_locations_keystone_v3_mig_pre_liberty" glance

mysql --verbose --unbuffered -e "create table image_locations_keystone_v3_mig_pre_liberty (select * from image_locations);" glance

mysql --verbose --unbuffered -e "update image_locations set value=replace(value, '{{ keystone_service_port }}/v2.0/', '{{ keystone_service_port }}/v3/')
 where value like 'swift%{{ internal_lb_vip_address }}:{{ keystone_service_port }}/v2.0/%' and status='active';" glance

mysql -sNL \
      --unbuffered \
      -e "SELECT network_id, network_type, physical_network FROM ml2_network_segments WHERE network_type IN ('vlan','flat','vxlan','gre') AND network_id IN (select id from networks where mtu=0);" {{ neutron_galera_database | default('neutron') }} | tr "\t" "|"

{% for item in networks.stdout_lines %}
{% set network_mtu = [] %}
{%-   for pn in provider_networks %}
{%     if not network_mtu %}
{%       if pn['network']['net_name'] is defined and
            pn['network']['net_name'] == item.split('|')[-1] and
            pn['network']['container_mtu'] is defined %}
{%         if not network_mtu %}
{%           if network_mtu.append(pn['network']['container_mtu']) %}{% endif %}
{%         endif %}
# Defined network mtu: {{ network_mtu }} {{ item.split('|')[-1] }}
{%       endif %}
{%     endif %}

{%-  if neutron_network_device_mtu is defined and not network_mtu %}
{%       if not network_mtu %}
{%         if network_mtu.append(neutron_network_device_mtu) %}{% endif %}
{%       endif %}
# Global Defined network mtu: {{ network_mtu }} {{ item.split('|')[-1] }}
{%  endif %}

{%-   if not network_mtu %}
{%     if item.split('|')[1] == 'vlan' or item.split('|')[1] == 'flat' %}
{%         if network_mtu.append('1500') %}{% endif %}
{%       endif %}
# Using standard fallback MTU of 1500 for {{ item.split('|')[1] }} type network
{%     elif item.split('|')[1] == 'gre' %}
{%         if network_mtu.append('1476') %}{% endif %}
{%       endif %}
# Using gre fallback MTU of 1476 for {{ item.split('|')[1] }} type network
{%     elif item.split('|')[1] == 'vxlan' or item.split('|')[1] == 'NULL' %}
{%         if network_mtu.append('1450') %}{% endif %}
{%       endif %}
# Using vxlan fallback MTU of 1450 for {{ item.split('|')[1] }} type network
{%     endif %}
{%   endif %}

{%-   if network_mtu %}
mysql -sNL --unbuffered -e "UPDATE networks SET mtu={{ network_mtu[0] }} WHERE id='{{ item.split('|')[0] }}';" {{ neutron_galera_database | default('neutron') }}
{%   endif %}

. /root/openrc
/opt/neutron-ha-tool.py --l3-agent-migrate --now --insecure
/opt/neutron-ha-tool.py --replicate-dhcp --now --insecure

mv /var/lib/libvirt/qemu/save/{{ item }} {{ nova_libvirt_save_path }}/{{ item }}

/opt/leap42/openstack-ansible-{{ release_version }}/global-requirement-pins.txt

{{ item.name }} {{ openrc_insecure |default(false) |bool |ternary('--insecure','') }} {{ item.list_command}} | awk '{{ item.awk_filter }}{print {{ item.awk_print_column }} }'

We will delete the following item for {{ item.0.item.name }}: {{ item.1 }}

{{ item.0.item.name }} {{ openrc_insecure |default(false) |bool |ternary('--insecure','') }} {{ item.0.item.delete_command }} {{ item.1 }}
{{ item.0.item.post_command | default('')}}

. /openstack/venvs/cinder-{{openstack_release}}/bin/activate
cinder-manage {{ openrc_insecure |default(false) |bool |ternary('--insecure','') }} service list \
  | awk '/.*_container.*XXX/{print $1" "$2}'\
  | while read line; do
    cinder-manage {{ openrc_insecure |default(false) |bool |ternary('--insecure','') }} service remove $line;
    done

  | awk '/volume.*_container.*XXX/{print $2 }'\
  | while IFS=@ read cinderhost cinderbackend; do
    cinder-manage {{ openrc_insecure |default(false) |bool |ternary('--insecure','') }} volume update_host \
      --currenthost $cinderhost@$cinderbackend \
      --newhost ${cinderhost//_/-}@$cinderbackend;
    done

neutron {{ openrc_insecure |default(false) |bool |ternary('--insecure','') }} port-list -c id -c device_owner -c binding:host_id -c status \
  -c network_id  -f value | sort -k 5 -k 4 -r | \
  awk '/dhcp.*BUILD/{net=$5}; /dhcp.*ACTIVE/{if(net==$5){print $1}}' | \
  while read portid; do
    neutron {{ openrc_insecure |default(false) |bool |ternary('--insecure','') }} port-update --admin-state-up False $portid
    sleep 1
    neutron {{ openrc_insecure |default(false) |bool |ternary('--insecure','') }} port-delete $portid
    done

for i in $(ls /etc/init /etc/init.d | grep "{{ item }}"); do
  service ${i%".conf"*} stop || true;
done

for i in $(ls /etc/init /etc/init.d | grep "swift"); do
done

virtualenv-tools --update-path=auto /opt/{{ file_name.split('.tgz')[0] }}

if [ ! -h "/var/log/{{ item }}" ] && [ -d "/var/log/{{ item }}" ];then
  mv /var/log/{{ item }} /openstack/log/{{ inventory_hostname }}-{{ item }}
  ln -s /openstack/log/{{ inventory_hostname }}-{{ item }} /var/log/{{ item }}
else
  # Exit 99 when nothing found to change
  exit 99
fi

UBUNTU_RELEASE=$(lsb_release -sc)
UBUNTU_REPO=$(awk "/^deb .*ubuntu\/? ${UBUNTU_RELEASE} main/ {print \$2; exit}" /etc/apt/sources.list)
UBUNTU_BACKPORTS="deb ${UBUNTU_REPO} ${UBUNTU_RELEASE}-backports main restricted universe multiverse"
if ! grep "^$UBUNTU_BACKPORTS" /etc/apt/sources.list; then
  echo $UBUNTU_BACKPORTS | tee -a /etc/apt/sources.list
  apt-get update
else
  exit 1
fi

grep '^[a-zA-Z]' {{ osa_playbook_dir }}/etc/openstack_deploy/user_secrets.yml

if ! grep '^{{ item }}' /etc/openstack_deploy/user_secrets.yml; then
  echo {{ item }} | tee -a /etc/openstack_deploy/user_secrets.yml
fi

{{ osa_playbook_dir }}/scripts/pw-token-gen.py --file /etc/openstack_deploy/user_secrets.yml

{{ playbook_dir }}/../scripts/add_new_neutron_env.py {{ repo_root_dir }}

{{ playbook_dir }}/../scripts/migrate_openstack_vars.py {{ item }} {{ (item | basename)[:-4] }}

/etc/openstack_deploy.KILO/VARS_MIGRATED_{{ (item | basename)[:-4] }}

echo 'flush_all' | nc $(awk '/^\-l/ {print $2}' /etc/memcached.conf) $(awk '/^\-p/ {print $2}' /etc/memcached.conf)

/etc/openstack_deploy.LIBERTY/VARS_MIGRATED_{{ (item | basename)[:-4] }}

mysql --verbose --unbuffered -e "delete from service where host like '%\_%';" heat

rsync -avun "{{ repo_root_dir }}/playbooks/inventory/env.d/" "/etc/openstack_deploy/env.d/" | grep "yml$"

msg="All new env.d files are placed in the stock repo. No new changes"

/etc/openstack_deploy.NEWTON/VARS_MIGRATED_{{ (item | basename)[:-4] }}

LBaaS v1 has been removed from OpenStack in Newton and there is no migration path for it.
Please implement LBaaS v2.
https://docs.openstack.org/openstack-ansible-os_neutron/latest/configure-network-services.html#special-notes-about-lbaas

echo 'flush_all' | nc $(awk '/^\-l/ {print $2}' /etc/memcached.conf | awk -F, '{ print $1 }') $(awk '/^\-p/ {print $2}' /etc/memcached.conf)

grep '^[a-zA-Z]' /etc/openstack_deploy/{{ _osa_secrets_file_name }}

{{ osa_playbook_dir }}/scripts/pw-token-gen.py --file /etc/openstack_deploy/{{ _osa_secrets_file_name }}

curl https://www.centos.org/download/full-mirrorlist.csv | sed 's/^.*"http:/http:/' | sed 's/".*$//' | grep ^http >/etc/apt-cacher-ng/centos_mirrors
echo "http://mirror.centos.org/centos/" >>/etc/apt-cacher-ng/centos_mirrors

tmux send-keys "cd /opt/openstack-ansible-ops/elk_metrics_6x" C-m

ELK 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.

rsync -av --include='*.yml' --include='*/' --exclude='*' /opt/openstack-ansible/etc/openstack_deploy/ /etc/openstack_deploy/

./scripts/pw-token-gen.py --file /etc/openstack_deploy/user_secrets.yml

tmux send-keys "openstack-ansible setup-hosts.yml setup-infrastructure.yml setup-openstack.yml" C-m

OSA deploy running. To check on the state of this deployment, login

/var/www/pxe/networking/{{ hostvars[item]['server_hostname'] }}-bridges.cfg

/var/lib/tftpboot/ipxe/{{ hostvars[item]['server_mac_address'] | replace(':', '-') | lower }}

pxe/configs/{{ images[default_vm_image]['image_type'] | lower }}/vm.config.j2

pxe/configs/{{ images[default_vm_image]['image_type'] | lower }}/vm-compute.config.j2

{{ _virt_pools.pools.default.path | default('/data/images') }}/{{ item }}.img

qemu-img create -f qcow2 {% if hostvars[item]['vm_use_snapshot'] | bool %} -b {{ hostvars[item]['virt_pools'].pools.default.path | default('/data/images') }}/{{ server_hostname }}-base.img {% endif %} {{ hostvars[item]['virt_pools'].pools.default.path | default('/data/images') }}/{{ server_hostname }}.img {{ default_vm_storage }}m

{% for item in _manifest_content.files %}
{{ manifest_url | regex_replace('/[^/]*$', '') }}/{{ item.path | basename}}
  dir={{ item.path | dirname }}
  checksum=sha-1={{ item.checksum }}

aria2c --input-file=/tmp/aria2c.input --log={{ aria2c_log_path }}/aria2c.log {{ aria2c_parameters }}

source openrc ; openstack security group list -f yaml | awk '/ID/ {print $2}'

if [[ -e {{ item }}.img ]]; then
  if [[ -e {{ item }}-base.img ]]; then
    qemu-img commit {{ item }}.img
  else
    qemu-img convert -O qcow2 -c {{ item }}.img {{ item }}-base.img
    qemu-img create -f qcow2 -b {{ item }}-base.img {{ item }}.img
  fi
  exit 2
fi

{ 'openstack-ansible-ops_SHA1': '{{ _repo_sha.stdout }}', 'files': {{ _manifest_files.files | json_query('[*].{path: path, checksum: checksum}') | sort(attribute='path') }} }

{{ _virt_pools.pools.default.path | default('/data/images') }}/manifest.json

set -e
TEST_FILE_PATH='/usr/lib/x86_64-linux-gnu/guestfs/supermin.d/zz-dash-packages'
if [[ ! -e ${TEST_FILE_PATH} ]] || ! grep -q dash ${TEST_FILE_PATH}; then
  echo dash > ${TEST_FILE_PATH}
  rm -rf /var/tmp/.guestfs*
  exit 2
fi

(_libguestfs_version.stdout is version('1.38.1', '<')) or ((_libguestfs_version.stdout is version('1.39.0', '>=')) and (_libguestfs_version.stdout is version('1.39.1', '<')))

set -e
INTEL_NESTED=/sys/module/kvm_intel/parameters/nested
if grep -q kvm_intel /proc/modules; then
  echo "Intel CPU found. Checking for nested virtualization capabilities."
  if [ -f ${INTEL_NESTED} ]; then
    echo "Nested virtualization capability found. Checking if it is enabled."
    v=$(cat ${INTEL_NESTED})
    if [ "x${v}" != "xY" ]; then
      echo "Nested virtualization not enabled. Enabling it now."
      rmmod kvm_intel && modprobe kvm_intel
      exit 2
    else
      echo "Nested virtualization already enabled."
    fi
  else
    echo "Nested virtualization capability not found."
    exit 3
  fi
else
  echo "Intel CPU not found."
  exit 3
fi

if ! iptables -w -t {{ item.table }} -C {{ item.rule }};then
  iptables -w -t {{ item.table }} -I {{ item.rule }}
fi

POSTROUTING -s 10.0.2.0/22 -o vm-br-dhcp -p udp -m udp --dport 68 -j CHECKSUM --checksum-fill

if ! iptables -w -t nat -C PREROUTING -p tcp -d {{ ansible_default_ipv4.address }} --dport {{ item.host_port }} -j DNAT --to {{ item.vm_ip }}:{{ item.vm_port }};then
  iptables -w -t nat -I PREROUTING -p tcp -d {{ ansible_default_ipv4.address }} --dport {{ item.host_port }} -j DNAT --to {{ item.vm_ip }}:{{ item.vm_port }}
fi

for mod in $(find /lib/modules/$(uname -r) -type f -name 'virtio*.ko'); do
  module=$(echo $(basename $mod) | sed 's/\.ko//g')
  modprobe ${module}
  if ! grep ${module} /etc/modules; then
    echo ${module} | tee -a /etc/modules
  fi
done

pxe/configs/{{ ansible_os_family | lower }}/systemd-networkd-bridges-netdev.j2

pxe/configs/{{ ansible_os_family | lower }}/systemd-networkd-bridges-network.j2

The DB password for the Kolide / Fleet cluster is not defined. To proceed with this installation define the variable `kolide_fleet_db_password` in line or within a variable file.

The shared token for the Kolide / Fleet cluster is not defined. To proceed with this installation define the variable `kolide_fleet_jwt_key` in line or within a variable file.

The admin password for the Kolide / Fleet cluster is not defined. To proceed with this installation define the variable `kolide_fleet_admin_password` in line or within a variable file.

/usr/local/bin/fleetctl convert -f {{ item }} > /tmp/{{ item | basename }}.yaml

/usr/local/bin/fleetctl apply -f /tmp/{{ item | basename }}.yaml

/usr/local/bin/fleet prepare db --config=/etc/fleet/fleet_config.yml  --no-prompt

/usr/local/bin/fleetctl config set --address https://127.0.0.1:{{ kolide_fleet_port }} --tls-skip-verify

/usr/local/bin/fleetctl setup --email {{ kolide_fleet_admin_email }} --password {{ kolide_fleet_admin_password }}

/usr/local/bin/fleetctl login --email {{ kolide_fleet_admin_email }} --password {{ kolide_fleet_admin_password }}

osqueryi --config_path /etc/osquery/osquery.conf --config_check --verbose

ln -f /var/www/pxe/{{ default_pxelinux_short_name }}/bios/com32/elflink/ldlinux/ldlinux.c32 /var/lib/tftpboot/ldlinux.c32
ln -f /var/www/pxe/{{ default_pxelinux_short_name }}/bios/core/pxelinux.0 /var/lib/tftpboot/pxelinux.0
ln -f /var/www/pxe/{{ default_pxelinux_short_name }}/bios/com32/lib/libcom32.c32 /var/lib/tftpboot/boot-screens/libcom32.c32
ln -f /var/www/pxe/{{ default_pxelinux_short_name }}/bios/com32/libutil/libutil.c32 /var/lib/tftpboot/boot-screens/libutil.c32
ln -f /var/www/pxe/{{ default_pxelinux_short_name }}/bios/com32/menu/vesamenu.c32 /var/lib/tftpboot/boot-screens/vesamenu.c32

/var/lib/tftpboot/pxelinux.cfg/01-{{ hostvars[item]['server_mac_address'] | replace(':', '-') | upper }}

templates/pxe/{{ item.value.image_type }}/{{ item.value.image_preseed }}-post-install-script.sh.j2

/var/www/pxe/scripts/{{ item.value.image_preseed }}-post-install-script.sh

templates/pxe/{{ item.value.image_type }}/{{ item.value.image_preseed }}.preseed.j2

/var/lib/tftpboot/preseed/{{ item.value.image_preseed }}.preseed

# Fix perms if needed
find /var/lib/tftpboot -type d -exec chmod 0755 {} \;
find /var/lib/tftpboot -type f -exec chmod 0644 {} \;
find /var/www/pxe -type d -exec chmod 0755 {} \;

{{ racadm }} config -g cfgServerInfo -o cfgServerFirstBootDevice HDD

{{ racadm }} config -g cfgServerInfo -o cfgServerFirstBootDevice PXE

{{ racadm }} config -g cfgLanNetworking -o cfgDNSServersFromDHCP 0

{{ racadm }} config -g cfgLanNetworking -o cfgDNSRacName {{ server_hostname }}

{{ racadm }} config -g cfgLanNetworking -o cfgNicIpAddress {{ server_obm_ip }}

{{ racadm }} config -g cfgLanNetworking -o cfgDNSServer1 {{ server_gateway }}

{{ racadm }} config -g cfgLanNetworking -o cfgDNSServer2 {{ server_dns }}

{{ racadm }} config -g cfgLanNetworking -o cfgNicNetmask {{ server_netmask }}

{{ racadm }} config -g cfgLanNetworking -o cfgNicGateway {{ server_gateway }}

{{ racadm }} config -g cfgLanNetworking -o cfgDNSDomainName {{ server_domain_name }}

{{ racadm }} config -g cfgLanNetworking -o cfgDNSDomainNameFromDHCP 0

{{ racadm }} config -g cfgIpmiLan -o cfgIpmiEncryptionKey 0000000000000000000000000000000000000000

{{ racadm }} config -g cfgIpmiLan -o cfgIpmiPetCommunityName public

skydive client status --username {{ skydive_username }} --password {{ skydive_password }}

GOROOT=/opt/go{{ go_download_version }}/go
GOPATH=/usr/local
PATH=${PATH}:${GOROOT}/bin

{{ skydive_build_project_path }}/github.com/skydive-project/skydive

source /etc/default/go
export PATH="{{ skydive_build_go_path }}/bin:${PATH}"
export GOPATH="{{ skydive_build_go_path }}"
make static {{ skydive_build_use_flags }}

export PATH="{{ traefik_build_go_path }}/bin:${PATH}"
export GOPATH="{{ traefik_build_go_path }}"
go get github.com/containous/go-bindata/...

{{ traefik_build_project_path }}/github.com/containous/traefik/traefik

go generate

go build ./cmd/traefik

{{ (ansible_local['skydive']['skydive']['needs_restart_agent'] | bool) | ternary('restarted', skydive_agent_service_state) }}

{{ skydive_agent_service_state in ['running', 'started', 'restarted'] }}

{{ (ansible_local['skydive']['skydive']['needs_restart_analyzers'] | bool) | ternary('restarted', skydive_analyzer_service_state) }}

{{ skydive_analyzer_service_state in ['running', 'started', 'restarted'] }}

The skydive password is undefined. Set the `skydive_password` option before continuing.

The elasticsearch backend for skydive is undefined. Set the `skydive_elasticsearch_servers` option before continuing.

The following variable "{{ item.default }}" is undefined and no known value was defined in the "{{ skydive_os_cloud_file }}" file.

clouds_yaml['clouds'][skydive_os_cloud]['auth'][item.cfg] is undefined

{{ (skydive_template_create is changed) or (skydive_basic_auth_create is changed) }}

openssl x509 -req -days 3650 -in {{ skydive_ssl_csr }} -CA {{ skydive_ssl_ca_cert }} -CAkey {{ skydive_ssl_ca_key }} -out {{ skydive_ssl_cert }} -set_serial 01 -extensions v3_req -extfile {{ skydive_ssl_cnf }}

{{ traefik_analyzer_service_state in ['running', 'started', 'restarted'] }}

${HOME}/ansible_venv/bin/ansible-playbook -i tests/{{ inventory_file }} -e @tests/test-vars.yml installElastic.yml

Switching installation methods for OpenStack services is not supported

ansible_local.openstack_ansible.mistral.install_method is defined

ansible_local.openstack_ansible.mistral.install_method != mistral_install_method

for ns_pid in $(pgrep neutron-ns-meta); do
  echo $(readlink -f "/proc/$ns_pid/exe") | grep -qv "{{ neutron_venv_tag }}"
  if [ $? -eq 0 ]; then
    if kill -9 "$ns_pid"; then
      logger -s "old metadata proxy pid found and has been cleaned up on: \"$ns_pid\""
    fi
  fi
done

'neutron-metadata-agent' in (filtered_neutron_services | map(attribute='service_key') | list)

ansible_local['openstack_ansible']['neutron']['need_db_contract'] | bool

inventory_hostname == ((groups[neutron_services['neutron-server']['group']] | intersect(ansible_play_hosts)) | list)[0]

# empty line to workaround bug in EnvVarsInCommandRule.py lint test
# https://github.com/willthames/ansible-lint/issues/275
set -o pipefail
if aa-status | grep -q {{ item.process  }} ; then
   aa-disable {{ item.profile }}
   if [[ $? == 0 ]]; then
     exit_code=2
   fi
fi

FWaaS v1 and v2 cannot be enabled at the same time.
Verify that your neutron_plugin_base variable is correct.

ansible_local.openstack_ansible.neutron.install_method is defined

ansible_local.openstack_ansible.neutron.install_method != neutron_install_method

ansible_local['openstack_ansible']['neutron']['need_db_expand'] | bool

'Need to apply migrations' not in _offline_migrations_check.stdout

{%- set apparmor_hosts = [] -%}
{%- set physical_hosts = [] -%}
{%- for host in groups[neutron_role_project_group] -%}
{%-   if hostvars[host]['physical_host'] is defined -%}
{%-     set phost = hostvars[host]['physical_host'] -%}
{%-     if phost not in physical_hosts -%}
{%-       set _ = apparmor_hosts.append(host) -%}
{%-       set _ = physical_hosts.append(phost) -%}
{%-     endif -%}
{%-   else -%}
{%-     set _ = apparmor_hosts.append('localhost') -%}
{%-   endif -%}
{%- endfor -%}
{{ apparmor_hosts | unique }}

{{ neutron_conf_dir }}/plugins/{{ neutron_plugin_type.split('.')[0] }}

neutron_install_method == 'distro' and ansible_os_family == 'RedHat'

{{ (neutron_install_method == 'distro') | ternary(neutron_conf_dir, (neutron_bin | dirname) + '/etc/neutron') }}

{{ neutron_bin | dirname | regex_replace('^/', '../') }}/etc/neutron

neutron_services['neutron-openvswitch-agent']['group'] in group_names

ovs-vsctl --no-wait set Open_vSwitch . other_config:dpdk-lcore-mask={{ ovs_dpdk_lcore_mask }}

ovs-vsctl --no-wait set Open_vSwitch . other_config:pmd-cpu-mask={{ ovs_dpdk_pmd_cpu_mask }}

ovs-vsctl --no-wait set Open_vSwitch . other_config:dpdk-socket-mem={{ ovs_dpdk_socket_mem }}

ovs-vsctl --no-wait set Open_vSwitch . other_config:dpdk-init=true

{{ neutron_bin }}/neutron-odl-ovs-hostconfig --noovs_dpdk {% if neutron_provider_networks.network_mappings is defined and 'odl-router_v2' in neutron_plugin_base or 'odl-router' in neutron_plugin_base %}--datapath_type=system --bridge_mappings={{ neutron_provider_networks.network_mappings }} {% endif %}

ovs-vsctl set Open_vSwitch . other_config:local_ip={{ neutron_local_ip }}

ovs-vsctl set Open_vSwitch . other_config:provider_mappings={{ neutron_provider_networks.network_mappings }}

(neutron_plugin_base == 'odl-router' or neutron_plugin_base == 'odl-router_v2')

ovs-vsctl set open_vswitch . external-ids:hostname='{{ ansible_hostname }}'

(neutron_services['neutron-ovn-northd']['group'] in group_names) or (neutron_services['neutron-ovn-controller']['group'] in group_names)

ovn-nbctl set-connection ptcp:6641:0.0.0.0 -- set connection . inactivity_probe=60000

ovn-sbctl set-connection ptcp:6642:0.0.0.0 -- set connection . inactivity_probe=60000

ovs-vsctl set open . external-ids:ovn-cms-options=enable-chassis-as-gw

neutron_services['neutron-ovn-controller']['group'] in group_names

ovs-vsctl set open . external-ids:ovn-remote=tcp:{{ neutron_ovn_ip }}:6642

ovs-vsctl set open . external-ids:ovn-encap-ip={{ neutron_local_ip }}

ovs-vsctl set open . external-ids:ovn-bridge-mappings={{ neutron_provider_networks.network_mappings }}

ansible_nodename in (calico_felix_agent.stdout
                    | from_json
                    | selectattr('Binary', 'equalto', 'calico-felix')
                    | map(attribute='Host') | list)

TCP and TLS connectivity are currently enabled for libvirtd. This
combination prevents libvirtd from starting properly since this role
does not generate TLS certificates for libvirtd at this time.

To enable TCP connectivity without TLS, set the following variables:

    nova_libvirtd_listen_tcp: 1
    nova_libvirtd_listen_tls: 0

Please note that this configuration does not encrypt communication with
libvirtd.

ansible_local.openstack_ansible.nova.install_method != nova_install_method

{{ hostvars[nova_conductor_setup_host]['nova_bin'] | default(nova_bin) }}

{{ _wait_nova_bin }}/openstack --os-cloud default compute service list --service nova-compute --format value --column Host

{{ hostvars[nova_conductor_setup_host]['nova_system_user_name'] | default(nova_system_user_name) }}

{{ _db_nova_bin }}/nova-manage cell_v2 discover_hosts{{ (debug | bool) | ternary(' --verbose', '') }}{{ (nova_virt_type == 'ironic') | ternary(' --by-service', '') }}

{{ nova_bin }}/nova-manage cell_v2 map_cell0
  --database_connection mysql+pymysql://{{ nova_api_galera_user }}:{{ nova_api_container_mysql_password }}@{{ nova_api_galera_address }}/{{ nova_cell0_database }}?charset=utf8

{{ nova_bin }}/nova-manage cell_v2 create_cell
  --name {{ nova_cell1_name }}
  --database_connection mysql+pymysql://{{ nova_galera_user }}:{{ nova_container_mysql_password }}@{{ nova_galera_address }}/{{ nova_galera_database }}?charset=utf8

{{ nova_bin }}/nova-manage cell_v2 list_cells | grep ' {{ nova_cell1_name }} '

{{ nova_bin }}/nova-manage cell_v2 map_instances --cell_uuid {{ cell1_uuid['stdout'].split()[3] }}

item.key not in hostvars[inventory_hostname] or item.key is undefined

{{ (nova_install_method == 'distro') | ternary('/etc/nova', (nova_bin | dirname) + '/etc/nova') }}

cpuinfo_contents.stdout.find('vmx') != -1 or cpuinfo_contents.stdout.find('svm') != -1 or cpuinfo_contents.stdout.find('PowerNV') != -1 or (cpuinfo_contents.stdout.find('pSeries') != -1 and cpuinfo_contents.stdout.find('qemu') != -1 and ansible_architecture == 'ppc64le') or (dev_kvm.stat.ischr is defined and dev_kvm.stat.ischr and ansible_architecture == 'aarch64')

EXIT_CODE=0
FOLDER_PATH="/usr/share/novnc"
if [[ -e ${FOLDER_PATH} ]]; then
  if [[ ! -d "${FOLDER_PATH}/.git" ]]; then
    echo "${FOLDER_PATH} is not a git repo, deleting..."
    EXIT_CODE=2
  elif test -n "$(cd ${FOLDER_PATH}; git status --porcelain)"; then
    echo "${FOLDER_PATH} is a dirty git repo, deleting..."
  fi
  if [[ "${EXIT_CODE}" == "2" ]]; then
    rm -rf ${FOLDER_PATH}
  fi
fi
exit ${EXIT_CODE}

FOLDER_PATH="/usr/share/spice-html5"
  fi
  fi
fi

{{ (ansible_os_family == 'RedHat') | ternary('/usr/share/OVMF/OVMF_CODE.secboot.fd', '/usr/share/qemu/ovmf-x86_64-ms-code.bin') }}

{{ kernels.files | map(attribute='path') | sort(reverse=True) | first }}

dpkg-statoverride --update --add root nova 0640 {{ latest_kernel }}

'an override for \'{{ latest_kernel }}\' already exists; aborting' not in dpkg_statoverride_result.stderr

(dpkg_statoverride_result.rc != 0) and ('an override for \'{{ latest_kernel }}\' already exists; aborting' not in dpkg_statoverride_result.stderr)

The only supported rabbitmq_install_method for RedHat is 'external_repo'.

The only supported rabbitmq_install_method for openSUSE is 'external_repo'.

rabbitmqctl -q cluster_status | sed 's/ //g' | grep -oP '(?<=Clustername:).*'

rabbitmqctl join_cluster "rabbit@{{ rabbitmq_primary_cluster_node.split('.')[0] }}"

openssl req -new -nodes -sha256 -x509 -subj "{{ rabbitmq_ssl_self_signed_subject }}" -days 3650 -keyout {{ rabbitmq_ssl_key }} -out {{ rabbitmq_ssl_cert }} -extensions v3_ca creates={{ rabbitmq_ssl_cert }}

{{ hostvars[groups[rabbitmq_host_group][0]]['rabbitmq_ssl_key_fact'] | b64decode }}

{{ hostvars[groups[rabbitmq_host_group][0]]['rabbitmq_ssl_cert_fact'] | b64decode }}

To install a new major/minor version of RabbitMQ set '-e rabbitmq_upgrade=true'.

not installed_rabbitmq.stdout is search(rabbitmq_package_version)

cat /tmp/{{ manifest }}.yaml > /tmp/logs/armada/{{ manifest }}.yaml

set -xe;
./tools/deployment/common/000-install-packages.sh
./tools/deployment/common/005-deploy-k8s.sh
sudo -H pip install yq bandit

set -xe;
make all
mkdir -p python-files
./tools/gate/template-python.sh

find . -not -path "*/\.*" -not -path "*/doc/build/*" -not -name "*.tgz" -type f -exec egrep -l " +$" {} \;

set -e; [ "x$($(type -p helm) version --client --short | awk '{ print $NF }' | awk -F '+' '{ print $1 }')" == "x${HELM_VERSION}" ] || exit 1

TMP_DIR=$(mktemp -d)
curl -sSL ${GOOGLE_HELM_REPO_URL}/helm-${HELM_VERSION}-linux-amd64.tar.gz | tar -zxv --strip-components=1 -C ${TMP_DIR}
sudo mv ${TMP_DIR}/helm /usr/bin/helm
rm -rf ${TMP_DIR}

set -xe
systemctl enable apparmor
systemctl start apparmor
systemctl status apparmor.service

ansible_distribution == 'CentOS' or ansible_distribution == 'Red Hat Enterprise Linux' or ansible_distribution == 'Fedora'

( ansible_distribution == 'CentOS' or ansible_distribution == 'Red Hat Enterprise Linux' ) and ( need_docker is failed )

( ansible_distribution == 'Fedora' ) and ( need_docker is failed )

( ansible_distribution == 'Debian' or ansible_distribution == 'Ubuntu' ) and ( need_docker is failed )

ansible_distribution == 'CentOS' or ansible_distribution == 'Red Hat Enterprise Linux'

{% if nodes.labels.all is defined %}{% set comma = joiner(",") %}{% for item in nodes.labels.all %}{{ comma() }}{{ item.name }}={{ item.value }}{% endfor %}{% else %}""{% endif %}

{% set comma = joiner(",") %}{% for group in group_names %}{% if nodes.labels[group] is defined %}{% for item in nodes.labels[group] %}{{ comma() }}{{ item.name }}={{ item.value }}{% endfor %}{% else %}""{% endif %}{% endfor %}

{% set comma = joiner(",") %}{% for item in kubeadm_kubelet_labels_node %}{{ comma() }}{{ item }}{% endfor %}

{{ hostvars[(groups['primary'][0])]['ansible_default_ipv4']['address'] }}

kubernetes_network_default_device is defined and kubernetes_network_default_device

kubectl get node "{{ kube_node_hostname }}" -o jsonpath="{$.status.conditions[?(@.reason=='KubeletReady')]['type']}" || echo "Not registered yet"

set -ex
wget -q -O - https://dl-ssl.google.com/linux/linux_signing_key.pub | apt-key add -
sh -c 'echo "deb [arch=amd64] http://dl.google.com/linux/chrome/deb/ stable main" >> /etc/apt/sources.list.d/google.list'
wget --directory-prefix=/tmp/ https://chromedriver.storage.googleapis.com/2.44/chromedriver_linux64.zip

set -e
export OBJECT_TYPE=node,clusterrole,clusterrolebinding,storageclass,namespace
export PARALLELISM_FACTOR=2

function list_objects () {
  printf ${OBJECT_TYPE} | xargs -d ',' -I {} -P1 -n1 bash -c 'echo "$@"' _ {}
}
export -f list_objects

function name_objects () {
  export OBJECT=$1
  kubectl get ${OBJECT} -o name | xargs -L1 -I {} -P1 -n1 bash -c 'echo "${OBJECT} ${1#*/}"' _ {}
}
export -f name_objects

function get_objects () {
  input=($1)
  export OBJECT=${input[0]}
  export NAME=${input[1]#*/}
  echo "${OBJECT}/${NAME}"
  DIR="{{ logs_dir }}/objects/cluster/${OBJECT}"
  mkdir -p ${DIR}
  kubectl get ${OBJECT} ${NAME} -o yaml > "${DIR}/${NAME}.yaml"
  kubectl describe ${OBJECT} ${NAME} > "${DIR}/${NAME}.txt"
}
export -f get_objects

list_objects | \
  xargs -r -n 1 -P ${PARALLELISM_FACTOR} -I {} bash -c 'name_objects "$@"' _ {} | \
  xargs -r -n 1 -P ${PARALLELISM_FACTOR} -I {} bash -c 'get_objects "$@"' _ {}

set -e
export OBJECT_TYPE=configmaps,cronjobs,daemonsets,deployment,endpoints,ingresses,jobs,networkpolicies,pods,podsecuritypolicies,persistentvolumeclaims,rolebindings,roles,secrets,serviceaccounts,services,statefulsets
function get_namespaces () {
  kubectl get namespaces -o name | awk -F '/' '{ print $NF }'
}

function list_namespaced_objects () {
  export NAMESPACE=$1
  printf ${OBJECT_TYPE} | xargs -d ',' -I {} -P1 -n1 bash -c 'echo "${NAMESPACE} $@"' _ {}
}
export -f list_namespaced_objects

  export NAMESPACE=${input[0]}
  export OBJECT=${input[1]}
  kubectl get -n ${NAMESPACE} ${OBJECT} -o name | xargs -L1 -I {} -P1 -n1 bash -c 'echo "${NAMESPACE} ${OBJECT} $@"' _ {}
}

  export NAME=${input[2]#*/}
  echo "${NAMESPACE}/${OBJECT}/${NAME}"
  DIR="{{ logs_dir }}/objects/namespaced/${NAMESPACE}/${OBJECT}"
  kubectl get -n ${NAMESPACE} ${OBJECT} ${NAME} -o yaml > "${DIR}/${NAME}.yaml"
  kubectl describe -n ${NAMESPACE} ${OBJECT} ${NAME} > "${DIR}/${NAME}.txt"
}

get_namespaces | \
  xargs -r -n 1 -P ${PARALLELISM_FACTOR} -I {} bash -c 'list_namespaced_objects "$@"' _ {} | \

set -x
systemd-cgls --full --all --no-pager > {{ logs_dir }}/system/systemd-cgls.txt
ip addr > {{ logs_dir }}/system/ip-addr.txt
ip route > {{ logs_dir }}/system/ip-route.txt
lsblk > {{ logs_dir }}/system/lsblk.txt
mount > {{ logs_dir }}/system/mount.txt
docker images > {{ logs_dir }}/system/docker-images.txt
brctl show > {{ logs_dir }}/system/brctl-show.txt
ps aux --sort=-%mem > {{ logs_dir }}/system/ps.txt

set -e
PARALLELISM_FACTOR=2
}
function get_pods () {
  NAMESPACE=$1
  kubectl get pods -n ${NAMESPACE} -o name | awk -F '/' '{ print $NF }' | xargs -L1 -P 1 -I {} echo ${NAMESPACE} {}
}
export -f get_pods
function get_pod_logs () {
  NAMESPACE=${1% *}
  POD=${1#* }
  INIT_CONTAINERS=$(kubectl get pod $POD -n ${NAMESPACE} -o json | jq -r '.spec.initContainers[]?.name')
  CONTAINERS=$(kubectl get pod $POD -n ${NAMESPACE} -o json | jq -r '.spec.containers[].name')
  for CONTAINER in ${INIT_CONTAINERS} ${CONTAINERS}; do
    echo "${NAMESPACE}/${POD}/${CONTAINER}"
    mkdir -p "{{ logs_dir }}/pod-logs/${NAMESPACE}/${POD}"
    mkdir -p "{{ logs_dir }}/pod-logs/failed-pods/${NAMESPACE}/${POD}"
    kubectl logs ${POD} -n ${NAMESPACE} -c ${CONTAINER} > "{{ logs_dir }}/pod-logs/${NAMESPACE}/${POD}/${CONTAINER}.txt"
    kubectl logs --previous ${POD} -n ${NAMESPACE} -c ${CONTAINER} > "{{ logs_dir }}/pod-logs/failed-pods/${NAMESPACE}/${POD}/${CONTAINER}.txt"
  done
}
export -f get_pod_logs
  xargs -r -n 1 -P ${PARALLELISM_FACTOR} -I {} bash -c 'get_pods "$@"' _ {} | \
  xargs -r -n 2 -P ${PARALLELISM_FACTOR} -I {} bash -c 'get_pod_logs "$@"' _ {}

set -e
NAMESPACES=$(kubectl get namespaces -o json | jq -r '.items[].metadata.name')
for NS in $NAMESPACES; do
  SERVICES=$(kubectl get svc -l component=metrics -n $NS -o json | jq -r '.items[].metadata.name')
  for SVC in $SERVICES; do
    PORT=$(kubectl get svc $SVC -n $NS -o json | jq -r '.spec.ports[].port')
    curl "$SVC.$NS:$PORT/metrics" >> "{{ logs_dir }}"/prometheus/$NS-$SVC.txt || true
  done
done

set -e
curl tiller-deploy.kube-system:44135/metrics >> "{{ logs_dir }}"/prometheus/kube-system-tiller-deploy.txt

set -e
mgr_endpoints=$(kubectl get endpoints -n ceph -l component=manager -o json | jq -r '.items[].subsets[].addresses[].ip')
echo "ceph-mgr endpoints: $mgr_endpoints"
for endpoint in $mgr_endpoints; do
  echo "checking ceph-mgr at $endpoint"
  metrics_curl="curl $endpoint:9283/metrics"
  op=$(eval "$metrics_curl")
  if [[ -n $op ]]; then
    curl $endpoint:9283/metrics >> "{{ logs_dir }}"/prometheus/ceph-ceph-mgr.txt
    break
  else
    echo "$endpoint is a standby ceph-mgr. Trying next endpoint"
  fi
done

set -e
helm status {{ helm_released }}  >> {{ logs_dir }}/helm/releases/{{ helm_release }}.txt
helm get values {{ helm_released }}  >> {{ logs_dir }}/helm/values/{{ helm_release }}.yaml

{{ zuul_osh_infra_relative_path | default('../openstack-helm-infra/') }}

MY_CONTAINER_ID=$(docker inspect --format {% raw %}'{{ .Id }}'{% endraw %} "{{ my_container_name }}"); docker ps --all --no-trunc --quiet | awk '!'"/${MY_CONTAINER_ID}/ { print \$1 }" | xargs -r -l1 -P16 docker rm -f

for MOUNT in $(findmnt --df --output TARGET | grep "^/var/lib/kubelet"); do
 umount --force $MOUNT
done

{% if ansible_domain is defined %}{{ ansible_fqdn }}{% else %}{{ ansible_hostname }}.node.{{ k8s.networking.dnsDomain }}{% endif %}

kubeadm init phase etcd local --config /mnt/rootfs/etc/kubernetes/kubeadm-conf.yaml

kubeadm init phase addon kube-proxy --config /mnt/rootfs/etc/kubernetes/kubeadm-conf.yaml

kubeadm init phase upload-config kubeadm --kubeconfig /mnt/rootfs/etc/kubernetes/admin.conf --config /mnt/rootfs/etc/kubernetes/kubeadm-conf.yaml

kubeadm init phase upload-config kubelet --kubeconfig /mnt/rootfs/etc/kubernetes/admin.conf --config /mnt/rootfs/etc/kubernetes/kubeadm-conf.yaml

kubectl --kubeconfig=/mnt/rootfs/etc/kubernetes/admin.conf  label --overwrite namespace {{ item }} name={{ item }}

kubeadm init phase selfhosting convert-from-staticpods --kubeconfig /mnt/rootfs/etc/kubernetes/admin.conf --config /mnt/rootfs/etc/kubernetes/kubeadm-conf.yaml

{{ lookup('ini', 'dns section=main file=/etc/NetworkManager/NetworkManager.conf') }}

find . \! \( -path "*/\.*" -o -path "*/doc/build/*" -o -name "*.tgz" -o -name "*.png" \) -type f -exec egrep -l " +$" {} \;

{% set _var = [] -%} {% for item in groups['all_containers'] | default([]) -%} {%   if item not in ['ceph_all','rsyslog_all','elasticsearch_all','mons'] -%} {%     if hostvars[item]['physical_host'] | default(false) != item -%} {%       if _var.append(hostvars[item]['physical_host']) -%} {%       endif -%} {%     endif -%} {%   endif -%} {% endfor -%} {{ _var | unique }}

/openstack/backup/control-plane/{{ openstack_release }}-{{ inventory_hostname }}_config.tgz

/openstack/backup/control-plane/{{ openstack_release }}-{{ inventory_hostname }}.tar.tgz

mv -f /openstack/backup/control-plane/{{ inventory_hostname }}.tar.tgz /openstack/backup/control-plane/{{ openstack_release }}-{{ inventory_hostname }}.tar.tgz

tar czf /openstack/backup/control-plane/{{ openstack_release }}-{{ inventory_hostname }}_config.tgz {{ container_config.results[0].stdout |replace('\n', ' ') }}

echo '' |update-alternatives --config editor |grep 'mode' |grep '*'

cat /sys/devices/system/cpu/cpu{{ item }}/cpufreq/scaling_governor

neutron {{ openrc_insecure |default(false) |bool |ternary('--insecure','') }} security-group-list | /bin/grep -w "rpc-support"

neutron {{ openrc_insecure |default(false) |bool |ternary('--insecure','') }} security-group-create rpc-support

neutron {{ openrc_insecure |default(false) |bool |ternary('--insecure','') }} security-group-rule-create \
        --direction ingress \
        --protocol tcp \
        --port-range-min {{ item }} \
        --port-range-max {{ item }} \
        --remote-ip-prefix 0.0.0.0/0 \
        rpc-support

         --direction ingress \
         --protocol icmp \
         --remote-ip-prefix 0.0.0.0/0 \
         rpc-support

echo unattended-upgrades unattended-upgrades/enable_auto_updates boolean {{ apt_autoupdate_enabled |default(0) |bool |lower }} | debconf-set-selections

ansible_service_mgr == "systemd" or ansible_service_mgr == "upstart"

{{ lxc_default_bind_mounts | default([{"bind_dir_path": "/var/log", "mount_path": "/openstack/log/{{ inventory_hostname }}"}]) }}

find /var/backup/holland_backups/rpc_support -iregex '.*/[0-9]+_[0-9]+/backup.xb' -type f -size +3M

ssh-keygen -lf /root/.ssh/rpc_support.pub |awk '/(RSA|DSA)/ {print $2}'

support_key_check.stat.exists |bool or support_key_create|changed

ssh-keygen -l -E md5 -f /root/.ssh/rpc_support.pub |awk -F'MD5:' '/(RSA|DSA)/ {print substr($2,1,48)}'

{{ ops_venv }}/bin/nova keypair-list | grep rpc_support

{{ ops_venv }}/bin/nova keypair-delete rpc_support

nova_support_key.rc == 0 and support_key_fingerprint.stdout not in nova_support_key.stdout

{{ ops_venv }}/bin/nova keypair-add --pub-key /root/.ssh/rpc_support.pub rpc_support

{{ hostvars[groups['shared-infra_hosts'][0]]['support_key'].content | b64decode }}

{{ hostvars[groups['shared-infra_hosts'][0]]['support_pub_key'].content | b64decode }}

hostvars[groups['shared-infra_hosts'][0]]['support_pub_key'].content |default('') |length > 64

hostvars[groups['shared-infra_hosts'][0]]['support_key'].content |b64decode |hash('sha1') != local_support_key_check.stat.checksum |default('')

blkid -n xfs /dev/sd* |awk '/LABEL=\"disk/ { split($0,blkid,"\n"); for (n in blkid) { if (substr(blkid[n],0,5) == "/dev/") { device=$1; pos=match(blkid[n],"LABEL="); if (pos > 0) { str=device","substr(blkid[n],pos+7,6); gsub(":|\"","",str); print str } } } }'

{{ item.split(',')[1] not in ( exclude_drive_labels | default ({}) ) }}

mkfs.xfs -L {{ item.split(',')[1] }} -f -i size={{ xfs_inode_size |default('1024') | int }} {{ xfs_format_options |default('') }} {{ item.split(',')[0] }}

{{ item.split(',')[1] not in ( exclude_drive_labels_format_option | default ({}) ) }}

mkfs.xfs -L {{ item.split(',')[1] }} -f -i size={{ xfs_inode_size |default('1024') | int }} {{ item.split(',')[0] }}

{{ item.split(',')[1] in ( exclude_drive_labels_format_option | default ({}) ) }}

{{ screen_binary.stdout }} -d -m -L -t "hp_firmware_update" bash -c "source {{ ops_venv + '/bin/activate' }} || true; /usr/local/bin/update_hp_firmware.py -f {{ firmware_use_meltdown | default(false) | bool | ternary('--meltdown', '') }}"

awk -F= '/^DISTRIB_RELEASE/ {print $2}' {{ osa_release_file.stat.path }} | tr -d \"\'

{{ osa_release_output is defined |ternary(osa_release_output.stdout,osp_release_output.stdout) |default('0.0.0') }}

{{ osa_release_output is defined |ternary('RPCO','OSP') |default('RPCO') }}

# Allow user to ssh into localhost
ssh-keygen -f ~/.ssh/id_rsa -N ""
cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
ssh-keyscan localhost >> ~/.ssh/known_hosts
ssh-keyscan 127.0.0.1 >> ~/.ssh/known_hosts

{{ zuul.projects['opendev.org/opendev/system-config'].src_dir }}

echo "" | sudo tee -a /etc/ssh/sshd_config
echo "Match address 127.0.0.1" | sudo tee -a /etc/ssh/sshd_config
echo "    PermitRootLogin without-password" | sudo tee -a /etc/ssh/sshd_config
echo "Match address ::1" | sudo tee -a /etc/ssh/sshd_config
mkdir -p ~/.ssh
ssh-keygen -f ~/.ssh/id_rsa -b 2048 -P ""
sudo mkdir -p /root/.ssh
cat ~/.ssh/id_rsa.pub | sudo tee -a /root/.ssh/authorized_keys
if [ -f /usr/bin/yum ]; then
    sudo systemctl reload sshd
elif [ -f /usr/bin/apt-get ]; then
    sudo service ssh restart
fi

    yum install ruby-devel gcc-c++ -y
    apt-get install ruby-dev -y
fi

gem install bundler --no-ri --no-rdoc --verbose --version '<2.0.0'
$GEM_HOME/bin/bundle install --retry 3
export BEAKER_set={{ nodeset }}
export BEAKER_debug=yes
export BEAKER_color=no
$GEM_HOME/bin/bundle exec rspec spec/acceptance

zuul ALL = NOPASSWD:/usr/local/jenkins/slave_scripts/zuul-sudo-grep.sh

set -eux

# TODO: fedora
YUM=${YUM:-yum}

VERSION=1.6.22.3
SRC_VERSION=${VERSION}-1
SRC_RPM=openafs-${SRC_VERSION}.src.rpm
SRC_URL=https://www.openafs.org/dl/openafs/${VERSION}/${SRC_RPM}

UPSTREAM_BASE=https://tarballs.openstack.org/project-config/package-afs-centos7
UPSTREAM_CHECK=${UPSTREAM_BASE}/openafs-client-${SRC_VERSION}.el7.x86_64.rpm
if wget -O/dev/null -q $UPSTREAM_CHECK; then
    echo "Found existing upstream RPM build, nothing to do"
    # scp should just publish nothing
    exit 0
fi

# some common prereqs
sudo yum -y groupinstall "Development Tools" "Development Libraries"
sudo yum -y install rpm-build kernel-devel createrepo

wget $SRC_URL
# install the build dependencies for the package
sudo yum-builddep -y ./${SRC_RPM}

# install source-rpm
# (this installs to ~/rpmbuild)
rpm -i ./${SRC_RPM}

# build everything
pushd ~/rpmbuild/SPECS/
rpmbuild -ba ./openafs.spec
popd

# create final repo for copying
createrepo ~/rpmbuild/RPMS/x86_64

set -eux

VERSION=1.8.4

UPSTREAM_BASE=https://tarballs.openstack.org/project-config/package-afs-centos8
UPSTREAM_CHECK=${UPSTREAM_BASE}/openafs-client-${SRC_VERSION}.el8.x86_64.rpm
    exit 0
fi

sudo dnf -y group install "Development Tools"
sudo dnf -y install rpm-build kernel-devel createrepo

sudo dnf builddep -y ./${SRC_RPM}

# for whatever reason (I think because it is in a macro
# check in the .spec) the above builddep misses this
# dependency
sudo dnf install -y elfutils-devel

popd

mv *.tar.gz {{ zuul.project.short_name }}-{{ zuul.branch | replace('/', '-') }}.tar.gz

src/opendev.org/openstack/releases/tools/announce.sh
  src/{{ zuul.project.canonical_name }} {{ zuul.tag }}

{{ ansible_user_dir }}/.venv/bin/python {{ ansible_user_dir }}/xstatic_check_version.py

grep '^\[testenv:{{ tox_pdf_envlist }}\]' {{ zuul_work_dir }}/tox.ini

mount {{ opt_partition }} /mnt
find /opt/ -mindepth 1 -maxdepth 1 -exec mv {} /mnt/ \;
umount /mnt

{{ configure_swap_size - ansible_memory_mb['swap']['total'] | int }}

dd if=/dev/zero of=/root/swapfile bs=1M count={{ swap_required }}

source {{ zuul_work_virtualenv }}/bin/activate
tools/tox_install.sh {{ constraints_file }}

mv {{ doc_build_dir }}/tmp {{ doc_build_dir }}/html/{{ zuul.branch }}

Project: {{ zuul.project.name }} Branch: {{ zuul.branch }} Build: {{ zuul.build }} Revision: {{ zuul.ref }}

set -xe
DOCBUILD="{{ sphinx_build_dir }}"
if [[ {{ zuul.ref }} =~ ^refs/tags/ ]]; then
    # This job should not be configured to run for
    # pre-releases, so if we have a tag we want to use it as
    # the publishing location.
    tag=$(echo {{ zuul.ref }} | cut -d/ -f3-)
    branch_name=""
else
    # If the ref was not a tag, assume it is a branch.
    branch_name={{ zuul.branch }}
    tag=""
fi
# Rearrange the build output to reflect the end publishing
# location, so we can use doc/publish as the source for the
# publisher step.
mkdir -p doc/publish
if [[ ! -z "$tag" ]]; then
    # We will have already moved the content inside
    # a directory named for the tag, so we move that
    # directory to the publish location.
    mv $DOCBUILD/html/$tag doc/publish/
elif [[ $branch_name = master ]]; then
    # The above tasks does not rename the output directory, but
    # we want it to be called "latest".
    mv $DOCBUILD/html doc/publish/latest
elif [[ $branch_name =~ stable/ ]]; then
    # a directory named for the branch, so move that to the
    # publish location.
    mv $DOCBUILD/html/$(basename $branch_name) doc/publish/
elif [[ $branch_name =~ feature/ ]]; then
    echo "Docs should not be published for feature branches"
    exit 1
elif [[ $branch_name =~ driverfixes/ ]]; then
    exit 1
else
    # What is this even?
    echo "Could not determine publishing location for branch_name $branch_name"
    exit 1
fi
# Move back into doc/build/html for artifact publisher.
rm -rf $DOCBUILD/html
mv doc/publish $DOCBUILD/html

mv {{ doc_build_dir }}/tmp
  {{ doc_build_dir }}/html/{{ zuul.branch | replace('stable/', '') }}

mv {{ doc_build_dir }}/tmp {{ doc_build_dir }}/html/{{ zuul.tag }}

Project: {{ zuul.project.name }} Tag: {{ zuul.tag }} Build: {{ zuul.build }} Revision: {{ zuul.ref }}

/opt/zanata/zanata-cli-{{ zanata_client_version }}/bin/zanata-cli

Project: {{ zuul.project.name }} Branch: {{ zuul.branch | default('') }} Build: {{ zuul.build }} Revision: {{ zuul.ref }}

su apache -s /bin/bash -c "/usr/bin/graphite-manage syncdb --noinput"

htpasswd -b {{ kibana_proxy_htpasswd }} \ {{ item['username'] }} {{ item['password'] }}

(database_host == 'localhost') or (database_host == '127.0.0.1')

manage_repos|default(false) and ansible_distribution != 'CentOS'

repoquery --installed --whatprovides '{{ sensu_package_name }} <= {{ sensu_minimum_version }}'

cat $HOME/overcloudrc | grep {{ item.rc_param }} | sed -e 's/export.*=\(.*\)/\1/' | sed -e 's/\s*//'g

source ~/stackrc && openstack stack output show -f shell overcloud HostsEntry | grep overcloud.ctlplane.localdomain | awk '{print $1}' | head -n 1

ssh -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null heat-admin@{{ controllerip.stdout }} "sudo awk 'BEGIN {PRINT=0;}{if( \$2 == \"haproxy.stats\") {PRINT=1;} else if ( PRINT==1 ) {if (\$1 == \"bind\") URI=\$2; if (\$1 == \"mode\") MODE=\$2;if (\$1 == \"stats\" && \$2 == \"auth\") USER=\$3; if (\$1 == \"listen\" ) { exit }} }END{ print MODE\"://\"URI\"\n\"USER}' /etc/haproxy/haproxy.cfg"

htpasswd -b {{ uchiwa_proxy_htpasswd }} \ {{ item['username'] }} {{ item['password'] }}

{{ couchdb_backup_install_location }}/backup-{{ couchdb_backup_database }}.sh

{{ couchdb_lucene_local_checkout_path }}/target/couchdb-lucene-{{ couchdb_lucene_version_number }}-dist.tar.gz

{{ couchdb_lucene_local_package_directory }}/{{ couchdb_lucene_version_name }}.tar.gz

{{ couchdb_lucene_install_path }}/couchdb-lucene-{{ couchdb_lucene_version_number }}/conf/couchdb-lucene.ini

{{ couchdb_lucene_install_path }}/couchdb-lucene-{{ couchdb_lucene_version_number }}/bin/run

openssl dhparam -out {{ ssl_file_dir }}/dhparam.pem 2048 creates={{ ssl_file_dir }}/dhparam.pem

{{ openmrs_home_directory }}/openmrs-runtime.propeties file doesn't exist on the server

{{ openmrs_tomcat_user_home }}/{{ openmrs_tomcat_instance }}/webapps/{{ openmrs_install_name }}.war

{{ openmrs_tomcat_user_home }}/{{ openmrs_tomcat_instance }}/webapps/{{ openmrs_install_name }}

Please make sure openmrs_encryption_vector and openmrs_encryption_key are set.
Check the {{ openmrs_home_directory }}/openmrs-runtime.properties file currently
in the server if these variables are not yet set in the inventories.

openmrs_require_encryption and (openmrs_encryption_vector|length == 0 or openmrs_encryption_key|length == 0)

{{ openmrs_tomcat_user_home }}/{{ openmrs_tomcat_instance }}/conf/logging.properties

{{ opensrp_local_checkout_path }}/configs/assets/config/{{ item }}.properties

{{ opensrp_local_checkout_path }}/src/main/resources//{{ item }}.properties

{{ opensrp_local_checkout_path }}/src/main/resources/spring/{{ item }}.xml

{{ opensrp_local_checkout_path }}/src/main/webapp/META-INF/{{ item }}.xml

cd {{ opensrp_local_checkout_path }} && mvn package -Dmaven.test.skip=true -P {{ opensrp_maven_package_profiles | join(',') }}

{{ opensrp_user_home }}/{{ opensrp_tomcat_instance }}/webapps/{{ opensrp_install_name }}.war

{{ opensrp_user_home }}/{{ opensrp_tomcat_instance }}/webapps/{{ opensrp_install_name }}

{{ opensrp_local_checkout_path }}/configs/assets/migrations/environments/{{ opensrp_mybatis_env }}.properties

{{ opensrp_mybatis_install_dir }}/mybatis-migrations-{{ opensrp_mybatis_version }}/bin/migrate up --path={{ opensrp_local_checkout_path }}/configs/assets/migrations --env={{ opensrp_mybatis_env }} {{ opensrp_mybatis_migration_extra_args }}

tomcat7-instance-create -p {{ tomcat_http_port }} -c {{ tomcat_shutdown_port }} {{ tomcat_instance }}

set -euox
{{ ansible_python.executable }} -m pip install --user 'tox>=3.8.0'
{{ ansible_python.executable }} -m tox --version

# This builder, when run from a child job of validate-buildsys-tags
# configures the temporary repositories created by it
# This allows to install the packages in that repository and test
# them.
set +e -x
# This job requires variable 'release' to be defined.

if [ -z "{{ release|default("") }}" ]; then
    echo "ERROR in job definition"
    exit 1
fi

logs={{ buildset_artifacts_url|default("") }}

# If we could not find a working repository, give up
curl -o /dev/null -sIf "${logs}" || exit 1

# Use the latest repository hash
# If DLRN built multiple packages, there will be multiple repositories.
# We want the latest repository which contains all of the packages that were just built.
repository="${logs}/centos/current"

# The rdoinfo-DLRN-check job may create different repos (centos-rpm-master, centos-pike-rdo)
# when it builds packages for more than one release. In that case, let us try to find the
# right one
curl -o /dev/null -sIf "${repository}"
if [ $? -ne 0 ]; then
  releases="rpm-master train-rdo stein-rdo rocky-rdo queens-rdo"
  for release in $releases; do
      repository="${logs}/centos-${release}/current"
      curl -o /dev/null -sIf "${repository}" || continue
      break
  done
fi

curl -o /dev/null -sIf "${repository}" || exit 1
echo ${repository}

# them.
set +e -x
# This job requires variables 'rdoinfo_release' and 'rdoinfo_phase' to be defined.

REQUIRED=0
CREPOS_FILE=changed_repos.txt

if [ -z "{{ rdoinfo_phase|default("") }}" -o -z "{{ rdoinfo_release|default("") }}" ]; then
    exit 1
fi

# Set log path
if [ -z "{{ buildset_artifacts_url|default("") }}" ]; then
    echo "buildset_artifacts_url is not defined, job needs to be run with parent job:- validate-buildsys-tags"
    exit 1
fi
logs={{ buildset_artifacts_url }}

curl -o $CREPOS_FILE -sf "$logs/repos/changed_repos.txt" || exit 1

if ! grep -q -E "{{ rdoinfo_release }}-{{ rdoinfo_phase }}" $CREPOS_FILE; then
    echo "INFO: this test is not required"| tee not_required
    exit 0
fi

# them.
set +e -x

    exit 1
fi

if [ "{{ rdoinfo_release }}" = "master" ]; then
    RELEASE="{{ master_release }}"
else
    RELEASE="{{ rdoinfo_release }}"
fi

# Re-construct the expected repository URL
ZUUL_REF=$(echo $ZUUL_REF |cut -f4 -d /)
job="validate-buildsys-tags"
LOG_PATH="$BASE_LOG_PATH/$ZUUL_PIPELINE/$job/$ZUUL_REF"
logs="https://logserver.rdoproject.org/$LOG_PATH/"

# NOTE(pabelanger): Override logs for zuulv3 jobs.
if [[ -d /home/zuul ]]; then
    logs={{ buildset_artifacts_url }}
fi

if ! grep -q -E "$RELEASE-{{ rdoinfo_phase }}" $CREPOS_FILE; then
    exit 0
fi

{{ false if rdoinfo_build_containers|default(false)|bool else true }}

{{ push_registry|default('127.0.0.1:8787') if rdoinfo_build_containers|default(false)|bool else omit }}

set +e
# Setup virtualenv with tox and use it
tox -epy36 --notest
. .tox/py36/bin/activate
# Use latest pymod2pkg from Git, to avoid waiting for new releases
pip install --upgrade git+https://opendev.org/openstack/pymod2pkg
# Prepare config
if [[ "{{ zuul.branch }}" =~ stable/ ]]; then    # stable branch
    repo_branch=$(sed "s#stable/##" <<< "{{ zuul.branch }}")
    baseurl="https://centos8-rpm-packaging-ci.rdoproject.org/$repo_branch/repos/"
    use_version_from_spec="1"
else
    # master
    baseurl="https://centos8-rpm-packaging-ci.rdoproject.org/repos/"
fi

repo="http://opendev.org/openstack/rpm-packaging"
directory="/openstack"
skip="openstack-macros"
pkginfo_driver="dlrn.drivers.gitrepo.GitRepoDriver"
branch="{{ zuul.branch }}"
target=centos8

# Update the configuration
sed -i "s%#repo=.*%repo=$repo%" projects.ini
sed -i "s%#directory=.*%directory=$directory%" projects.ini
sed -i "s%#skip=.*%skip=$skip%" projects.ini
sed -i "s%#use_version_from_spec=.*%use_version_from_spec=$use_version_from_spec%" projects.ini
sed -i "s%#keep_tarball=.*%keep_tarball=1%" projects.ini
sed -i "s%pkginfo_driver=.*%pkginfo_driver=$pkginfo_driver%" projects.ini
sed -i "s%baseurl=.*%baseurl=$baseurl%" projects.ini
sed -i "s%source=.*%source=$branch%" projects.ini
sed -i "s%distro=.*%distro=$branch%" projects.ini
sed -i "s%target=.*%target=$target%" projects.ini

# Prepare directories
mkdir -p data/repos

if [ -d "{{ ansible_user_dir }}/{{ zuul.projects['opendev.org/openstack/rpm-packaging'].src_dir }}" ]; then
  ln -s "{{ ansible_user_dir }}/{{ zuul.projects['opendev.org/openstack/rpm-packaging'].src_dir }}" data/package_info
else
  # We are outside the gate, just do a regular git clone
  pushd data/
  # rm -rf first for idempotency
  rm -rf package_info
  git clone "https://opendev.org/openstack/rpm-packaging" package_info
  cd package_info
  git checkout $branch
  popd
fi

# Find out which packages are being tested
pushd data/package_info
CHANGED_FILES=$(git diff --name-only --diff-filter=ACMTR HEAD~1)
PACKAGES_TO_BUILD=""
for spec in $CHANGED_FILES; do
  filename=$(echo $spec | awk -F/ '{print $NF}')
  extension=$(echo $filename | awk -F. '{print $NF}')
  if [ "$extension" = "j2" ]; then
      # Remove the .spec.j2 extension
      PACKAGES_TO_BUILD="$PACKAGES_TO_BUILD --package-name $(echo $filename | awk 'BEGIN{FS=OFS="."}{NF--; NF--; print}')"
  fi
done
popd
if [ ! -n "$PACKAGES_TO_BUILD" ]; then
  exit 0
fi

TIMEOUT="{{ zuul.timeout | default('10800') }}"
timeout --signal=SIGKILL $TIMEOUT dlrn --config-file projects.ini --head-only $PACKAGES_TO_BUILD --dev --local --verbose-build --sequential
ret=$?

mkdir -p logs
rsync -avzr data/repos logs/centos8
# Clean up mock cache, just in case there is a change for the next run
mock -r data/dlrn-1.cfg --scrub=all
exit $ret

{{ ansible_user_dir }}/{{ zuul.projects['softwarefactory-project.io/DLRN'].src_dir }}

set +e
# FIXME(jpena) some packages are moving to use singlespec, which
# requires an up to date openstack-macros package in the builder,
# and not just in the mock buildroot.
sudo yum -y install https://rpm-packaging-ci.rdoproject.org/repos/deps/openstack-macros-2019.1.1-0.20190225070246.ce6a105.el7.noarch.rpm
tox -epy27 --notest
. .tox/py27/bin/activate
    # We only support Ocata and later as stable repos
    if [ "$repo_branch" = "newton" ]; then
      exit 0
    fi
    baseurl="https://rpm-packaging-ci.rdoproject.org//$repo_branch/repos/"
else
    # master
    baseurl="https://rpm-packaging-ci.rdoproject.org//repos/"
fi

target=centos

else
  popd
fi

  fi
done
popd
  exit 0
fi

TIMEOUT="{{ zuul.timeout | default('5400') }}"
ret=$?

rsync -avzr data/repos logs/centos
exit $ret

BASE="http://{{ mirror_fqdn | default('mirror.centos.org') }}/centos"
sed -e "s|^#baseurl=http://mirror.centos.org/centos|baseurl=$BASE|;/^mirrorlist=/d" -i scripts/centos*.cfg # noqa 303
sed -e "s|^#baseurl=http://mirror.centos.org/\$contentdir|baseurl=$BASE|" -i scripts/centos*.cfg # noqa 303

export TAG="{{  tag | default('') }}"
export CENTOS_VERS="{{  centos_version | default('centos7') }}"
export REPO_SERVER="https://trunk.rdoproject.org"
export TARGET="centos"
if [ ${CENTOS_VERS} = "centos8" ]; then
   export PYTHON_VERSION="py36"
   export TARGET="centos8"
fi
#
if [ -z "$TAG" ];then
ARGS="$TARGET ${REPO_SERVER}/${CENTOS_VERS}/"
else
ARGS="$TARGET ${REPO_SERVER}/${CENTOS_VERS}/ $TAG"
fi
if [[ "{{ zuul.pipeline }}" =~ "openstack-" ]]; then
    ARGS=""
fi
./scripts/run_tests.sh {{ ansible_user_dir }}/{{ zuul.projects['review.rdoproject.org/rdoinfo'].src_dir }} $ARGS

{% set comma = joiner('^') %} {% for chg in zuul['items'] %}{{ comma() }}{{ chg.project.name }}:{{ chg.branch }}:{{ chg.change_url }}{% endfor %}

ansible_distribution == "CentOS" and ansible_distribution_major_version|int >= 8

set +e
# This builder, when run from a child job of a DLRN based job,
# will rebuild and test installation of a src.rpm, when built
# using the repository configuration used by Tripleo CI jobs.
# This ensures that we are not breaking the TripleO gates with a
# packaging change.
#

CENTOS_VERS="{{ centos_version | default('centos7') }}"

if [ "$CENTOS_VERS" = "centos7" ]; then
  repository="${logs}/centos/current"
  mock_cfg=centos.cfg
else
  repository="${logs}/centos8/current"
  mock_cfg=centos8.cfg
fi

# Fetch all src.rpm files, we will rebuild them here
wget -e robots=off -nd -r --accept .src.rpm $repository

# Create mock config file
if [[ "{{ zuul.branch }}" =~ -rdo ]]; then
    branch=$(sed "s/-rdo//" <<< "{{ zuul.branch }}")
else
    branch="master"
fi
baseurl="https://trunk.rdoproject.org/${CENTOS_VERS}-${branch}/"

# Fetch base mock configuration, we will update it to match TripleO requirements
cp "{{ ansible_user_dir }}/{{ zuul.projects['softwarefactory-project.io/DLRN'].src_dir }}/scripts/${mock_cfg}" .
# Remove the last line, then add all required repos
sed -i '$ d' ${mock_cfg}
# current
if [ "$CENTOS_VERS" = "centos7" ]||[ "$CENTOS_VERS" = "centos8" -a "{{ zuul.branch }}" = "train-rdo" ]; then
  curl -o /tmp/delorean-current.repo  ${baseurl}/current/delorean.repo
  sed -i 's/priority=.*/priority=10/' /tmp/delorean-current.repo
  sed -i 's/\[delorean\]/\[delorean-current\]/' /tmp/delorean-current.repo
  echo >> /tmp/delorean-current.repo
  echo "includepkgs=ansible-role-container-registry,ansible-role-tripleo*,ansible-tripleo-ipsec,diskimage-builder,\
instack,instack-undercloud,os-apply-config,os-collect-config,os-net-config,os-refresh-config,openstack-tripleo-*,\
python*-tripleo*,puppet-*,python*-paunch*,paunch-services,tripleo-ansible,\
ansible-config_template" >> /tmp/delorean-current.repo
else
  curl -o /tmp/delorean-current.repo  ${baseurl}/component/tripleo/current/delorean.repo
  sed -i 's/\[delorean-component-tripleo\]/\[delorean-current\]/' /tmp/delorean-current.repo
fi
cat /tmp/delorean-current.repo >> ${mock_cfg}
echo >> ${mock_cfg}
# current-tripleo
curl -o /tmp/delorean-current-tripleo.repo  ${baseurl}/current-tripleo/delorean.repo
sed -i 's/priority=.*/priority=20/' /tmp/delorean-current-tripleo.repo
sed -i 's/\[delorean\]/\[delorean-current-tripleo\]/' /tmp/delorean-current-tripleo.repo
cat /tmp/delorean-current-tripleo.repo >> ${mock_cfg}
# deps
curl ${baseurl}/delorean-deps.repo >> ${mock_cfg}
echo '"""' >> ${mock_cfg}
# Build package
OUTPUT_DIRECTORY="$PWD/build"
mkdir $OUTPUT_DIRECTORY
MOCKOPTS="-v -r ${mock_cfg} --resultdir $OUTPUT_DIRECTORY"
ret=0
/usr/bin/mock ${MOCKOPTS} --rebuild *.src.rpm 2>&1
RC_BUILD=$?
if [ $RC_BUILD -ne 0 ]; then
  ret=$RC_BUILD
else
  sed -i "s/.*chroot_setup_cmd.*/config_opts['chroot_setup_cmd'] = 'install basesystem rpm-build'/" ${mock_cfg}
  sed -i '/^python3/ d' ${mock_cfg}
  /usr/bin/mock ${MOCKOPTS} --disablerepo='*-build-deps' clean 2>&1
  /usr/bin/mock ${MOCKOPTS} --disablerepo='*-build-deps' init 2>&1
  /usr/bin/mock ${MOCKOPTS} --disablerepo='*-build-deps' --install $OUTPUT_DIRECTORY/*[!src].rpm 2>&1
   RC_INSTALL=$?
   if [ $RC_INSTALL -ne 0 ]; then
       ret=$RC_INSTALL
   fi
fi
# Retrieve logs/repositories/packages
mkdir buildset
cp -a ${OUTPUT_DIRECTORY}/* buildset/
exit $ret

echo "[DEBUG]: JJB template name: {template-name}"

# If this is called in a periodic job, these will not be set
echo "Use default for ZUUL_BRANCH and ZUUL_REF if needed"
export ZUUL_BRANCH=${ZUUL_BRANCH:-master}
export ZUUL_REF=${ZUUL_REF:-None}

# In the post pipeline ZUUL_REF is master but does not behave as we want
# So fall back on None
[ "$ZUUL_REF" = "master" ] && ZUUL_REF=None
echo "Clean workspace"
rm -Rf ./*

echo "Clone $ZUUL_PROJECT"
# zuul-cloner is installed as /usr/zuul-env/bin/zuul-cloner
# in upstream images
export PATH=$PATH:/usr/zuul-env/bin

# Note (dmsimard): If we are running for a periodic job, there is no
# incentive in using Zuul cloner because the jobs are not going to
# potentially depend on things from the zuul context (ex: depends-on)
# The zuul git namespace (where the job was triggered from) is also
# wonky for periodic jobs. A periodic pipeline targetted at an
# upstream project would still end up trying to clone from review.rdo.
# This should be revisited in Zuul v3 which is supposedly not a
# problem

# We can receive reviews from review.openstack.org.
# Builds that are run as third party for review.o.o are in the Zuul
# pipelines prefixed by "openstack-".
GIT_SOURCE="https://review.rdoproject.org/r"
if [[ "${ZUUL_PIPELINE}" =~ "openstack-" ]]; then
    GIT_SOURCE="https://opendev.org"
fi

git config --global http.postBuffer 524288000
git config --global https.postBuffer 524288000

if [[ "${ZUUL_PIPELINE}" =~ "periodic" ]]; then
# Note (trown): we need to make sure we clone this to the same
# location as zuul-cloner will so that manual and periodic jobs
# can share builders
    git clone --depth=1 $GIT_SOURCE/$ZUUL_PROJECT $ZUUL_PROJECT
else
    /usr/zuul-env/bin/zuul-cloner -v $GIT_SOURCE $ZUUL_PROJECT
fi

set +e
mkdir $WORKSPACE/logs

sudo yum -y install rubygems
gem install asciidoctor

pushd $ZUUL_PROJECT
~/bin/asciidoctor -v -b html5 *.txt -D $WORKSPACE/logs
popd

set -e
sudo yum -y install rpm-build rpmdevtools centos-release-opstools centos-release-openstack-queens
sudo yum -y groupinstall "Development Tools"
cat << EOF | sudo tee /etc/yum.repos.d/opstools-build.repo
[centos-opstools-perfmon-testing]
name=CentOS-7 - OpsTools Performance monitoring - testing repo
baseurl=http://cbs.centos.org/repos/opstools7-perfmon-common-testing/\$basearch/os
gpgcheck=0
enabled=1

[centos-opstools-sensu-testing]
name=CentOS-7 - OpsTools availability monitoring - testing repo
baseurl=http://cbs.centos.org/repos/opstools7-sensu-common-testing/\$basearch/os
enabled=1

[centos-opstools-sensu-027-testing]
name=CentOS-7 - OpsTools availability monitoring - sensu 0.27 testing repo
baseurl=http://cbs.centos.org/repos/opstools7-sensu-027-testing/\$basearch/os
enabled=1

[centos-opstools-sensu-110-testing]
name=CentOS-7 - OpsTools availability monitoring - sensu 1.1.x testing repo
baseurl=http://cbs.centos.org/repos/opstools7-sensu-110-testing/\$basearch/os
enabled=1

[centos-opstools-common-testing]
name=CentOS-7 - OpsTools common testing
baseurl=http://cbs.centos.org/repos/opstools7-common-testing/\$basearch/os
enabled=1

[centos-opstools-fluent-testing]
name=CentOS-7 - OpsTools fluentd testing
baseurl=http://cbs.centos.org/repos/opstools7-fluentd-012-testing/\$basearch/os
enabled=1
EOF

sudo yum -y update
base=`basename $ZUUL_PROJECT`
if [ -f "$base.spec" ]; then
   specfile="$base.spec"
else
   num_spec=`ls -l *.spec | wc -l`
   if [ ${num_spec} -eq 1 ]; then
     specfile=`ls *.spec`
   else
     echo "** ERROR: There are more than one spec file"
     exit 1
   fi
fi
spectool -g  "$specfile"
sudo yum-builddep -y "$specfile"
rpmbuild -D '_sourcedir '$PWD -D '_specdir '$PWD -D '_topdir '$PWD -ba "$specfile"
# move built rpms to logs for later use
mv SRPMS/* $WORKSPACE/logs
mv RPMS/* $WORKSPACE/logs
popd

set -e
sudo yum -y install rpmlint
else
   else
     exit 1
   fi
fi
rpmlint "$specfile"
popd

set -e
if [ $(grep -c ^CentOS /etc/system-release) -eq 0 ]; then
    PYTHON_VERSION='python3'
    sudo dnf remove -y yum-utils
    sudo dnf install -y createrepo_c dnf-utils fedora-packager
else
    # For CentOS we need to use yum4 repo to use dnf libraries.
    PYTHON_VERSION='python2'
    sudo yum -y install /usr/bin/yum4
    sudo yum4 -y install dnf-plugins-core
    sudo yum -y install createrepo_c centos-packager
fi
virtualenv -p $PYTHON_VERSION --system-site-packages .venv
source .venv/bin/activate
pip install .
# enable debug
set -x
if [ -d functional_tests ]; then
    pushd functional_tests
    for i in $(ls -d scenario*); do
        pushd $i
        OUTPUT_DIR=$(grep output_dir fedora_config | cut -d= -f2 | tr -d '[:space:]')
        rm -rf $OUTPUT_DIR
        mkdir -p $OUTPUT_DIR
        if [ -f comps*xml ];then
            cp comps*xml $OUTPUT_DIR
        fi
        echo "INFO: Running synchronization using sinkhole"
        sinkhole --config fedora_config config_file
        echo "INFO: List of synchronized packages"
        sudo repoquery --repofrompath=temp,file://${OUTPUT_DIR} --disablerepo='*' --enablerepo=temp -q -a
        if [ -f expected_packages ];then
            cat expected_packages|while read pkg
            do
                echo "INFO: checking if $pkg is in the repo"
                sudo repoquery --repofrompath=temp,file://${OUTPUT_DIR} --disablerepo='*' --enablerepo=temp -q $pkg | grep -q -w $pkg
            done
        fi
        popd
    done
    popd
fi
popd

set -e
rm -Rf config build
# in nodepool images
zuul-cloner http://gerrit/r config
# Prepare a default configuration for zuul and nodepool
mkdir -p build/nodepool build/zuul build/repoxplorer
cp ~jenkins/defconf/zuul.conf build/zuul/zuul.conf
cp ~jenkins/defconf/nodepool.yaml build/nodepool/_nodepool.yaml
cp ~jenkins/defconf/repoxplorer.py build/repoxplorer/config.py
# Prepare a fake jenkins-job config file to force offline jobs check
echo -e "[jenkins]\nurl=http://localhost:99" > build/jenkins.ini

cd config
echo "[+] Checking jobs"
jenkins-jobs --conf ../build/jenkins.ini test jobs/ > /dev/null

echo "[+] Checking jobs-zuul"
jenkins-jobs --conf ../build/jenkins.ini test jobs-zuul/ > /dev/null

echo "[+] Checking zuul"
/usr/share/sf-config/scripts/yaml-merger.py zuul | tee ../build/zuul/layout.yaml
cp zuul/*.py ../build/zuul/ || true
zuul-server -c ../build/zuul/zuul.conf -l ../build/zuul/layout.yaml -t

echo "[+] Checking nodepool [v2]"
/usr/share/sf-config/scripts/sf-nodepool-conf-merger.py nodepool/nodepool.yaml ../build/nodepool/nodepool.yaml v2
nodepool -c ../build/nodepool/nodepool.yaml config-validate

if [ -f /usr/bin/nodepool3 ]; then
    echo "[+] Checking nodepool [v3]"
    echo -e "---\n{}" > ../build/nodepool/_nodepool.yaml
    /usr/share/sf-config/scripts/sf-nodepool-conf-merger.py nodepoolV3/nodepool.yaml ../build/nodepool/nodepool.yaml v3
    nodepool3 -c ../build/nodepool/nodepool.yaml config-validate
fi

echo "[+] Checking gerrit replication"
git config -f gerrit/replication.config -l > /dev/null

echo "[+] Checking gerrit commentlinks"
python -c "import yaml; 'commentlinks' in yaml.safe_load(open('gerrit/commentlinks.yaml'))"

echo "[+] Check dashboards"
sf-update-dashboard --check --input dashboards/

echo "[+] Checking syntax errors in policy file"
python -c "import yaml; yaml.safe_load(open('policies/policy.yaml'))"

if [ -f /usr/bin/repoxplorer-config-validate ]; then
    echo "[+] Checking syntax errors in repoxplorer definition files"
    repoxplorer-config-validate --config ../build/repoxplorer/config.py
fi

echo "[+] Checking resources changes"
# Managesf validate can now use directly the local clone
unset ZUUL_REF
unset ZUUL_URL
/usr/local/bin/resources.sh validate

set +e
cd $ZUUL_PROJECT
sudo pip install -r test-requirements.txt
python sanity-check.py

set -e
echo "[+] Updating configuration using $ZUUL_COMMIT"
ssh root@install-server sf_configrepo_update $ZUUL_COMMIT

mkdir -p $WORKSPACE/logs
cp -a /tmp/kolla $WORKSPACE/logs/

# Ensure permissions allow artifact uploading
sudo chown -R "$(id -u).$(id -g)" $WORKSPACE/logs

set -e
set -x
cat > clonemap.yaml << EOF
clonemap:
  - name: openstack-infra/devstack-gate
    dest: devstack-gate
EOF
/usr/zuul-env/bin/zuul-cloner -m clonemap.yaml --cache-dir /opt/git \
    https://opendev.org \
    openstack-infra/devstack-gate

git clone https://review.rdoproject.org/r/p/rdo-infra/ci-config.git $WORKSPACE/rdo-infra/ci-config

cat <<EOF | sudo tee /etc/nodepool/provider
NODEPOOL_PROVIDER="{{ nodepool.provider }}"
NODEPOOL_CLOUD="{{ nodepool.cloud }}"
NODEPOOL_REGION="{{ nodepool.region }}"
NODEPOOL_AZ="{{ nodepool.az }}"
EOF

export RELEASE=master
export PROMOTE_NAME=tripleo-ci-testing
bash -xe $WORKSPACE/rdo-infra/ci-config/ci-scripts/tripleo-upstream/get-hash.sh

bash -xe $WORKSPACE/rdo-infra/ci-config/ci-scripts/tripleo-upstream/build-containers-images.sh

dd if=/dev/zero of={{ ceph_loop_device_file }} bs=1 count=0 seek=7G
losetup {{ ceph_loop_device }} {{ ceph_loop_device_file }}
lsblk

set -e -x
if [ "{{ zuul.branch }}" == master ]; then
  export RELEASE=master
else
  export RELEASE=$(echo "{{ zuul.branch }}" | cut -d/ -f 2)
fi
sudo yum -y install libguestfs-tools policycoreutils-python wget
sudo wget -O /etc/yum.repos.d/delorean.repo https://trunk.rdoproject.org/centos7-${RELEASE}/current/delorean.repo
sudo wget -O /etc/yum.repos.d/delorean-deps.repo https://trunk.rdoproject.org/centos7-${RELEASE}/delorean-deps.repo
# NOTE(jpena): python36-distro, a mock requirement, conflicts with python2-distro
sudo yum -y remove python36-distro
sudo yum -y install openstack-octavia-diskimage-create
# NOTE(cgoncalves): Starting from Train release, CentOS amphora
# images are built using the centos-minimal DIB element. This element
# builds the base system in a chroot, whereas the centos DIB element
# used in previous releases uses a pre-existing qcow image.
if [[ "$RELEASE" =~ (queens|rocky|stein) ]]; then
  export IMAGE_NAME=CentOS-7-x86_64-GenericCloud.qcow2
  wget https://cloud.centos.org/centos/7/images/$IMAGE_NAME
  sudo systemctl start libvirtd
  sudo LIBGUESTFS_BACKEND_SETTINGS=force_tcg LIBGUESTFS_BACKEND=direct \
      virt-customize -a $IMAGE_NAME --selinux-relabel --run-command \
      "yum-config-manager --add-repo https://trunk.rdoproject.org/centos7-${RELEASE}/delorean-deps.repo"
      "yum-config-manager --add-repo https://trunk.rdoproject.org/centos7-${RELEASE}/current-passed-ci/delorean.repo"
  export DIB_LOCAL_IMAGE=$PWD/$IMAGE_NAME
else
  mkdir $PWD/rdo-repos
  cp /etc/yum.repos.d/delorean.repo /etc/yum.repos.d/delorean-deps.repo $PWD/rdo-repos/
  export DIB_YUM_MINIMAL_EXTRA_REPOS=$PWD/rdo-repos
fi
sudo --preserve-env=DIB_LOCAL_IMAGE,DIB_YUM_MINIMAL_EXTRA_REPOS \
    /usr/bin/octavia-diskimage-create.sh -s 3 -p -i centos -o amphora-x64-haproxy-centos.qcow2
# Create output directory
mkdir -p images/$RELEASE
if [ -f amphora-x64-haproxy-centos.qcow2 ]; then
    curdate=$(date +%Y%m%d-%H%M%S)
    mv amphora-x64-haproxy-centos.qcow2 images/${RELEASE}/amphora-x64-haproxy-centos-$curdate.qcow2
    pushd images/${RELEASE}
    ln -s amphora-x64-haproxy-centos-$curdate.qcow2 amphora-x64-haproxy-centos.qcow2
    popd
fi

set -x
dnf config-manager --enable rhui-*
dnf makecache
dnf repolist
rpm -qa | grep rhui

{{ ansible_user_dir }}/{{ zuul.projects['github.com/containers/libpod'].src_dir }}/build/buildset

set -euo pipefail
make package-install
podman version
podman info  --log-level debug

{{ ansible_user_dir }}/{{ zuul.projects['github.com/containers/libpod'].src_dir }}

"fatal: The remote end hung up unexpectedly" not in result.stdout

set -exuo pipefail
mkdir -p build/buildset
pushd build/buildset
cp -l ~/rpmbuild/RPMS/*/*.rpm .
createrepo .
popd

if [ -f Modulefile -o -f metadata.json ]; then
  if [ -f Modulefile ]; then
    MODULE=$(awk '/^name/ {print $NF}' Modulefile |tr -d \"\')
  elif [ -f metadata.json ]; then
    MODULE=$(python -c 'import json;print json.load(open("metadata.json"))["name"]')
  fi
  if [ -z "$MODULE" ]; then
    echo "Module name not defined in Modulefile or metadata.json"
  else
    mkdir -p "$MODULE"
    rsync -a --exclude="$MODULE" --exclude ".*" . "$MODULE"
    cd "$MODULE"
  fi
fi
if [ -f Gemfile ]; then
  mkdir .bundled_gems
  export GEM_HOME=`pwd`/.bundled_gems
  gem install bundler --version 1.17.3 --no-rdoc --no-ri --verbose
  gem install rake --version '< 13.0.0'
  $GEM_HOME/bin/bundle install --without system_tests
  $GEM_HOME/bin/bundle exec rake lint 2>&1
else
  rake lint 2>&1
fi

export LANG=en_US.UTF-8
export PUPPET_GEM_VERSION='~> 3.8.0'
mkdir .bundled_gems
export GEM_HOME=`pwd`/.bundled_gems
gem install bundler --version 1.17.3 --no-rdoc --no-ri --verbose
gem install rake --version '< 13.0.0'
$GEM_HOME/bin/bundle exec rake spec SPEC_OPTS='--format documentation'

find . -iname *.pp | xargs puppet parser validate --modulepath=`pwd`/modules
for f in `find . -iname *.erb` ; do
  erb -x -T '-' $f | ruby -c
done

{{ ansible_user_dir }}/{{ zuul.projects['review.rdoproject.org/rdoinfo'].src_dir }}

set +e -x
virtualenv --system-site-packages .venv
. .venv/bin/activate
pip install rdopkg

CURRENT_MASTER_TAG="ussuri-uc"

PACKAGES_UPDATED_MASTER=""
PACKAGES_UPDATED_QUEENS=""
PACKAGES_UPDATED_ROCKY=""
PACKAGES_UPDATED_STEIN=""
PACKAGES_UPDATED_TRAIN=""

TAGS_DIFF=$(rdopkg info-tags-diff .)

while read line; do
    PKGNAME=$(awk '{print $1}' <<< $line)
    if [[ -n $(echo "$line" | grep -w $CURRENT_MASTER_TAG) ]]; then
        PACKAGES_UPDATED_MASTER="$PACKAGES_UPDATED_MASTER $PKGNAME"
    fi
    if [[ -n $(echo "$line" | grep -w train) ]]; then
        PACKAGES_UPDATED_TRAIN="$PACKAGES_UPDATED_TRAIN $PKGNAME"
    fi
    if [ "${CENTOS_VERS}" = "centos7" ]; then
        if [[ -n $(echo "$line" | grep -w stein) ]]; then
            PACKAGES_UPDATED_STEIN="$PACKAGES_UPDATED_STEIN $PKGNAME"
        fi
        if [[ -n $(echo "$line" | grep -w rocky) ]]; then
            PACKAGES_UPDATED_ROCKY="$PACKAGES_UPDATED_ROCKY $PKGNAME"
        fi
        if [[ -n $(echo "$line" | grep -w queens) ]]; then
            PACKAGES_UPDATED_QUEENS="$PACKAGES_UPDATED_QUEENS $PKGNAME"
        fi
    fi
done <<< "${TAGS_DIFF}"

pushd "{{ ansible_user_dir }}/{{ zuul.projects['softwarefactory-project.io/DLRN'].src_dir }}"
# Create log directory always
ret=0
if [ -n "${PACKAGES_UPDATED_MASTER}" ]; then
    timeout --signal=SIGKILL $TIMEOUT  {{ ansible_user_dir }}/rdoinfo-DLRN.sh $CURRENT_MASTER_TAG "${PACKAGES_UPDATED_MASTER}" "${CENTOS_VERS}"
    ret1=$?
    if [ $ret1 -ne 0 ]; then
        ret=$ret1
    fi
    # The data/ contents have been archived already, remove to avoid issues with the next branch
    rm -rf data
    sudo rm -rf /var/cache/mock/*
fi
if [ -n "${PACKAGES_UPDATED_TRAIN}" ]; then
    timeout --signal=SIGKILL $TIMEOUT {{ ansible_user_dir }}/rdoinfo-DLRN.sh train "${PACKAGES_UPDATED_TRAIN}" "${CENTOS_VERS}"
    ret1=$?
        ret=$ret1
    fi
    rm -rf data
fi
if [ -n "${PACKAGES_UPDATED_STEIN}" ]; then
    timeout --signal=SIGKILL $TIMEOUT {{ ansible_user_dir }}/rdoinfo-DLRN.sh stein "${PACKAGES_UPDATED_STEIN}" "${CENTOS_VERS}"
    ret1=$?
        ret=$ret1
    fi
    rm -rf data
fi
if [ -n "${PACKAGES_UPDATED_ROCKY}" ]; then
    timeout --signal=SIGKILL $TIMEOUT {{ ansible_user_dir }}/rdoinfo-DLRN.sh rocky "${PACKAGES_UPDATED_ROCKY}" "${CENTOS_VERS}"
    ret1=$?
        ret=$ret1
    fi
    rm -rf data
fi
if [ -n "${PACKAGES_UPDATED_QUEENS}" ]; then
    timeout --signal=SIGKILL $TIMEOUT {{ ansible_user_dir }}/rdoinfo-DLRN.sh queens "${PACKAGES_UPDATED_QUEENS}" "${CENTOS_VERS}"
    ret1=$?
        ret=$ret1
    fi
    rm -rf data
fi
popd

exit $ret

set -e
# Need to inherit system-site-packages for python-yum
virtualenv --system-site-packages {{ ansible_user_dir }}/.venv
source {{ ansible_user_dir }}/.venv/bin/activate
pushd {{ ansible_user_dir }}/{{ zuul.projects['softwarefactory-project.io/rdopkg'].src_dir }}/
popd

set -e
rdopkg findpkg {{ zuul.project.name }} | sed -n "/^upstream/ s/upstream. \(.*\)/\1/p"

set -e
pushd {{ ansible_user_dir }}/{{ zuul.project.src_dir }}
git remote add upstream {{ upstream.stdout }}
git fetch upstream
rdopkg reqcheck --strict
popd

# configures the DLRN repository that was uploaded as an artifact
# of the parent DLRN-rpmbuild job.
# them.
set +ex

if [ $(echo {{ buildset_artifacts_url }}| grep -c centos8) -ne 0 ]; then
    repository="${logs}/centos8/current"
else
    repository="${logs}/centos/current"
fi

# right one
  releases="rpm-master train-rdo stein-rdo rocky-rdo queens-rdo pike-rdo ocata-rdo"
      break
  done
fi

# Configure the repository
name="delorean-zuul"
sudo bash -c "cat << EOF > /etc/yum.repos.d/${name}.repo
[${name}]
name=${name}
baseurl=${repository}
enabled=1
priority=1
EOF"

# This builder, when run from a child job of a DLRN based
# job, download the packages built from DLRN and compare
# rpmlint reports from the previously built packages.

# must be in sync with the previous builder (dlrn-gate-repository)
eval $(grep baseurl= < /etc/yum.repos.d/delorean-zuul.repo)

# download binary packages
wget -e robots=off -nd -r --accept .rpm --reject .src.rpm ${baseurl}
unset baseurl

# get the repo data from the previous repository
URL=https://trunk.rdoproject.org/centos7/current
eval $(curl $URL/delorean.repo|grep baseurl=)
wget $baseurl/repodata/repomd.xml

# extract the name of primary db from repomd.xml
db=$(python3 -c "import xml.etree.ElementTree as et; ns = {'ns0': 'http://linux.duke.edu/metadata/repo'}; \
  print(et.parse('repomd.xml').getroot().find('ns0:data[@type=\"primary_db\"]/ns0:location', ns).attrib['href'])")

# download this db to get the name of the rpm files
wget $baseurl/$db

db=$(basename $db .bz2)
bunzip2 $db.bz2

# our rpmlint config
cat > $HOME/.rpmlintrc <<EOF
from Config import *

addFilter("no-changelogname-tag")
addFilter("no-manual-page-for-binary")
addFilter("no-documentation")
addFilter("non-readable")

# vitrage-ui exceptions
addFilter("openstack-vitrage-ui.noarch: W: non-conffile-in-etc /etc/openstack-dashboard/enabled/_4140_admin_template_vitrage_panel.py.*")

# ironic exceptions
addFilter("openstack-ironic-common.noarch: E: non-standard-dir-perm /var/log/ironic 0?750L?")

# Exceptions for nova
addFilter("openstack-nova-common.noarch: W: obsolete-not-provided openstack-nova-cert")
addFilter("python-novajoin.noarch: W: non-standard-gid")
addFilter("python-novajoin.noarch: W: non-standard-uid")
addFilter("openstack-nova-compute.noarch: E: explicit-lib-dependency libvirt-client")

# Exception for tackerclient
addFilter("python-tackerclient-doc.noarch: W: file-not-utf8 /usr/share/doc/python-tackerclient-doc-.*/html/objects.inv")

# Exception for congress
addFilter("openstack-congress-common.noarch: E: non-standard-dir-perm /etc/congress/keys 0?750L?")

# Exception for mistral
addFilter("python-mistral.noarch: W: self-obsoletion python-openstack-mistral < 5.0.0-1 obsoletes python-openstack-mistral.*")
addFilter("openstack-mistral-common.noarch: E: non-standard-dir-perm /var/lib/mistral 0?750L?")

# Exception for cloudkitty
addFilter("openstack-cloudkitty-common.noarch: E: non-standard-dir-perm /var/log/cloudkitty 0750L?")

# Exception for puppet-tripleo
addFilter("puppet-tripleo.noarch: E: explicit-lib-dependency puppet-openstacklib")
addFilter("puppet-tripleo.noarch: E: explicit-lib-dependency puppet-stdlib")
addFilter("puppet-tripleo.noarch: E: non-executable-script \
/usr/share/openstack-puppet/modules/tripleo/templates/redis/redis-notifications.sh.erb 0644L /bin/bash")

# Exceptions for glance
addFilter("openstack-glance.noarch: E: non-standard-dir-perm /var/log/glance 0?750L?")
# The dangling-symlink exclusions are related to files from
# python-glance-store and python-os-brick.
addFilter("openstack-glance.noarch: \
W: dangling-symlink /etc/glance/rootwrap.d/glance_cinder_store.filters /usr/share/glance_store/glance_cinder_store.filters")
addFilter("openstack-glance.noarch: W: dangling-symlink /etc/glance/rootwrap.d/os-brick.filters /usr/share/os-brick/rootwrap/os-brick.filters")

# Exceptions for puppet-ceph
addFilter("puppet-ceph.noarch: E: explicit-lib-dependency puppet-openstacklib")
addFilter("puppet-ceph.noarch: E: explicit-lib-dependency puppet-stdlib")
addFilter("puppet-ceph.noarch: E: non-executable-script /usr/share/openstack-puppet/modules/ceph/setup.py 0644L /usr/bin/env")

# Exceptions for horizon
addFilter("python-django-horizon.noarch: E: non-executable-script \
/usr/lib/python2.7/site-packages/openstack_auth/tests/run_tests.py 0644L /usr/bin/env")
addFilter("python-django-horizon.noarch: E: zero-length /usr/lib/python2.7/site-packages/openstack_auth/tests/models.py")

# Exceptions for ceilometer
addFilter("openstack-ceilometer-common.noarch: W: obsolete-not-provided openstack-ceilometer-api")

# Exceptions for kuryr
# Following error only-non-binary-in-usr-lib has been fixed in recent rpmlint versions not in CentOS yet.
addFilter("openstack-kuryr-kubernetes-cni.noarch: W: only-non-binary-in-usr-lib")

# Exceptions for heat
addFilter("openstack-heat-common.noarch: W: obsolete-not-provided openstack-heat-api-cloudwatch")
addFilter("openstack-heat-common.noarch: E: explicit-lib-dependency python2-neutron-lib")

# Exceptions for neutron-tempest-plugin
addFilter("python2-neutron-tests-tempest.noarch: \
W: self-obsoletion python2-networking-bgpvpn-tests-tempest obsoletes python2-networking-bgpvpn-tests-tempest*")

# Exceptions for telemetry-tempest-plugin
addFilter("python2-telemetry-tests-tempest.noarch: E: zero-length /usr/lib/python2.7/site-packages/telemetry_tempest_plugin/gnocchi/__init_.py")
addFilter("\w+.*-tests-tempest.noarch: W: obsolete-not-provided \w+.*-tests")

# Exceptions for os-xenapi
addFilter("python2-os-xenapi.noarch: E: non-executable-script /usr/lib/python2.7/site-packages/os_xenapi/utils/himn.py 0644L /usr/bin/env")
addFilter("python2-os-xenapi.noarch: E: non-executable-script /usr/lib/python2.7/site-packages/os_xenapi/utils/iptables.py 0644L /usr/bin/env")
addFilter("python2-os-xenapi.noarch: E: non-executable-script \
/usr/lib/python2.7/site-packages/os_xenapi/utils/shell_tools/install_conntrack.sh 0644L /bin/bash")
addFilter("python2-os-xenapi.noarch: E: non-executable-script /usr/lib/python2.7/site-packages/os_xenapi/utils/xapi_plugin.py 0644L /usr/bin/env")
addFilter("python2-os-xenapi.noarch: E: non-executable-script /usr/lib/python2.7/site-packages/os_xenapi/utils/xenapi_facts.py 0644L /usr/bin/env")
addFilter("python2-os-xenapi.noarch: E: non-executable-script /usr/lib/python2.7/site-packages/os_xenapi/utils/consoles.py 0644L /usr/bin/env")

# Exceptions for openstack-tripleo-heat-templates-compat
addFilter("openstack-tripleo-heat-templates-compat.noarch: E: description-line-too-long \
C building Heat Templates to do deployments of OpenStack.  \
These templates provide support for the clouds running the previous upstream version of OpenStack.")
addFilter("openstack-tripleo-heat-templates-compat.noarch: E: non-executable-script \
/usr/share/openstack-tripleo-heat-templates/compat/ci/scripts/freeipa_setup.sh 0644L /bin/bash")
/usr/share/openstack-tripleo-heat-templates/compat/common/container-puppet.sh 0644L /bin/bash")
/usr/share/openstack-tripleo-heat-templates/compat/deployed-server/deployed-server-bootstrap-centos.sh 0644L /bin/bash")
/usr/share/openstack-tripleo-heat-templates/compat/deployed-server/deployed-server-bootstrap-rhel.sh 0644L /bin/bash")
addFilter("openstack-tripleo-heat-templates-compat.noarch: E: script-without-shebang \
/usr/share/openstack-tripleo-heat-templates/compat/deployed-server/deployed-server-bootstrap-centos.sh")
/usr/share/openstack-tripleo-heat-templates/compat/deployed-server/deployed-server-bootstrap-rhel.sh")
/usr/share/openstack-tripleo-heat-templates/compat/container_config_scripts/nova_statedir_ownership.py 0644L /usr/bin/env")
/usr/share/openstack-tripleo-heat-templates/compat/container_config_scripts/nova_wait_for_api_service.py 0644L /usr/bin/env")
/usr/share/openstack-tripleo-heat-templates/compat/container_config_scripts/nova_wait_for_compute_service.py 0644L /usr/bin/env")
/usr/share/openstack-tripleo-heat-templates/compat/container_config_scripts/pacemaker_restart_bundle.sh 0644L /bin/bash")
/usr/share/openstack-tripleo-heat-templates/compat/container_config_scripts/placement_wait_for_service.sh 0644L /usr/bin/env")
/usr/share/openstack-tripleo-heat-templates/compat/container_config_scripts/pyshim.sh 0644L /bin/bash")
/usr/share/openstack-tripleo-heat-templates/compat/extraconfig/post_deploy/clouds_yaml.py 0644L /usr/bin/env")
/usr/share/openstack-tripleo-heat-templates/compat/extraconfig/post_deploy/undercloud_ctlplane_network.py 0644L /usr/bin/env")
/usr/share/openstack-tripleo-heat-templates/compat/extraconfig/post_deploy/undercloud_post.py 0644L /usr/bin/env")
/usr/share/openstack-tripleo-heat-templates/compat/extraconfig/pre_deploy/rhel-registration/scripts/rhel-registration 0644L /bin/bash")
/usr/share/openstack-tripleo-heat-templates/compat/extraconfig/pre_deploy/rhel-registration/scripts/rhel-unregistration 0644L /bin/bash")
/usr/share/openstack-tripleo-heat-templates/compat/extraconfig/pre_deploy/undercloud_pre.sh 0644L /bin/bash")
/usr/share/openstack-tripleo-heat-templates/compat/puppet/deploy-artifacts.sh 0644L /bin/bash")
/usr/share/openstack-tripleo-heat-templates/compat/validation-scripts/all-nodes.sh 0644L /bin/bash")
/usr/share/openstack-tripleo-heat-templates/compat/environments/neutron-plumgrid.yaml")
/usr/share/openstack-tripleo-heat-templates/compat/environments/neutron-sriov.yaml")
C building Heat Templates to do deployments of OpenStack.  These templates provide support for the clouds \
running the previous upstream version of OpenStack.")
/usr/share/openstack-tripleo-heat-templates/compat/extraconfig/tasks/tripleo_upgrade_node.sh 0644L /bin/bash")

EOF

# now download all these packages from the previous repository
mkdir -p old
for fname in $(ls *.rpm); do
    name=$(rpm -qp --qf '%{NAME}\n' $fname)

    eval $(sqlite3 -line $db "select rpm_sourcerpm as srpm from packages where name = '$name' and arch != 'src';"|sed 's/ //g')
    sqlite3 -line $db "select location_href as pkgfile from packages where rpm_sourcerpm = '$srpm' and arch != 'src';"|sed 's/ //g' >> old_pkgs_list
done

cat old_pkgs_list |sort -u|grep -v ^$ > old_packages

# if there is no previous package, it means that is new
# packages so just run rpmlint on the packages and exit
if [ $(wc -l old_packages) -eq 0 ];then
    rpmlint *.rpm | tee rpmlint.new.txt
    exit 0
fi

cat old_packages|while read line
do
    eval $line
    curl -o old/$pkgfile $baseurl/$pkgfile
done

# run rpmlint on old and new packages
rpmlint *.rpm | sort | tee rpmlint.new.txt
rpmlint old/*.rpm | sort | tee rpmlint.old.txt

# check that we have the same number of packages else we
# cannot really compare and we just exit gracefully
if [ $(ls *.rpm|wc -l) != $(ls old/*.rpm|wc -l) ]; then
    exit 0
fi

# compare if we have more reports with the new packages
if [ $(wc -l < rpmlint.new.txt) -gt $(wc -l < rpmlint.old.txt) ]; then
    diff -u rpmlint.old.txt rpmlint.new.txt
    exit 1
fi

echo "config_opts['use_bootstrap_container'] = True" >> /etc/mock/site-defaults.cfg
echo "config_opts['dnf_warning'] = False" >> /etc/mock/site-defaults.cfg

export DIST="{{ dist | default('el7') }}"
export MOCK_CONFIG="{{ mock_config | default('epel-7-x86_64') }}"
make rpm

{{ ansible_user_dir }}/{{ zuul.projects['github.com/ceph/ceph-ansible'].src_dir }}

mkdir logs
cp *.log logs
cp *.rpm logs
pushd logs
popd

name={{ sensu_enterprise_dashboard_service_name }} state=restarted

/usr/sbin/svccfg import /opt/local/lib/svc/manifest/sensu-server.xml

/usr/sbin/svccfg import /opt/local/lib/svc/manifest/sensu-api.xml

/usr/sbin/svccfg import /opt/local/lib/svc/manifest/sensu-client.xml

{{ uchiwa_service_name if not se_enterprise else sensu_enterprise_dashboard_service_name }}

sensu_available_checks is defined and item in sensu_available_checks.stdout_lines

{{ sensu_config_path }}/conf.d/{{ item | basename | regex_replace('.j2', '')}}

sensu_available_client_definitions is defined and item in sensu_available_client_definitions.stdout_lines

src="{{ item.src }}" dest="{{ rabbitmq_config_path }}/ssl/{{ item.dest }}" remote_src="{{ sensu_ssl_deploy_remote_src }}"

name={{ sensu_server_service_name if not se_enterprise else sensu_enterprise_service_name }} state=started enabled=yes

{{ __bash_path }} {{ sensu_config_path }}/ssl_generation/sensu_ssl_tool/ssl_certs.sh generate

[sensu-enterprise]
name=sensu-enterprise
baseurl=http://{{ se_user }}:{{ se_pass }}@enterprise.sensuapp.com/yum/noarch/
enabled=1

[sensu-enterprise-dashboard]
name=sensu-enterprise-dashboard
baseurl=http://{{ se_user }}:{{ se_pass }}@enterprise.sensuapp.com/yum/\$basearch/
enabled=1

cp -r {{ solr_install_path }}/example/files/conf/ {{ solr_home }}/data/{{ item }}/

cp -r {{ solr_workspace }}/{{ solr_filename }} {{ solr_install_path }}

(ansible_distribution == 'Ubuntu' and ansible_distribution_version == '16.04') or (ansible_distribution == 'Debian' and ansible_distribution_version|int >= 8) or (ansible_distribution == 'CentOS' and ansible_distribution_major_version|int >= 7) or (ansible_distribution == 'Fedora')

{{ solr_workspace }}/{{ solr_filename }}/bin/install_solr_service.sh {{ solr_workspace }}/{{ solr_filename }}.tgz -i {{ solr_install_dir }} -d {{ solr_home }} -u {{ solr_user }} -s {{ solr_service_name }} -p {{ solr_port }} creates={{ solr_install_path }}/bin/solr

(ansible_os_family == 'RedHat') and (ansible_distribution_version.split(".")[0] == '7') and (solr_install_script_result.changed)

ansible_distribution == "Debian" or (ansible_distribution == "Ubuntu" and ansible_distribution_version == "14.04")

{{ splunk.exec }} apply cluster-bundle -auth {{ splunk.admin_user }}:{{ splunk.password }} --skip-validation --answer-yes

((splunk_cluster_bundle_result.stdout is not search("[Aa]pply"))
  or ("bundle" not in splunk_cluster_bundle_result.stdout)
  or (splunk_cluster_bundle_result.stdout is search("[Ee]rror")))
and ("already" not in splunk_cluster_bundle_result.stderr)

((splunk_cluster_bundle_result.stdout is search("[Aa]pply"))
  and ("bundle" in splunk_cluster_bundle_result.stdout)
  and (splunk_cluster_bundle_result.stdout is not search("[Ee]rror")))

{{ splunk.exec }} show cluster-bundle-status -auth {{ splunk.admin_user }}:{{ splunk.password }}

cp /opt/ansible/library/es_ta_for_indexers.py /tmp/es_ta_for_indexers.py

{{ splunk.exec }} cmd {% if ess_info.json.entry[0].content.version is version('6.1', '>=') %}python3{% else %}python{% endif %} /tmp/es_ta_for_indexers.py --password {{ splunk.password }} --username {{ splunk.admin_user }}

tar -zxvf {{ ta_location.stdout_lines[0] | replace(backslash, '/') | replace('C:', '') }} -C {{ splunk.app_paths.idxc }} --force-local

{{ splunk.exec }} edit cluster-config -mode master -replication_factor {{ splunk.idxc.replication_factor }} -search_factor {{ splunk.idxc.search_factor }} -secret '{{ splunk.idxc.pass4SymmKey }}' -cluster_label '{{ splunk.idxc.label }}' -auth '{{ splunk.admin_user }}:{{ splunk.password }}'

cp -R {{ splunk.app_paths.default }}/{{ item }} {{ splunk.app_paths.idxc }}

{{ cert_prefix }}://{{ splunk.multisite_master }}:{{ splunk.svc_port }}

{{ splunk.exec }} edit cluster-config -mode master -multisite true -available_sites {{ splunk.all_sites }} -site {{ splunk.site }} -site_replication_factor origin:{{ splunk.multisite_replication_factor_origin }},total:{{ splunk.multisite_replication_factor_total }} -site_search_factor origin:{{ splunk.multisite_search_factor_origin }},total:{{ splunk.multisite_search_factor_total }} -auth {{ splunk.admin_user }}:{{ splunk.password }} -secret {{ splunk.idxc.pass4SymmKey }}

{{ splunk.exec }} add forward-server {{ item }}:{{ splunk.s2s.port if splunk.s2s.port is defined else splunk.s2s_port }} -auth {{ splunk.admin_user }}:{{ splunk.password }}

("s2s" not in splunk and "s2s_port" in splunk) or ("s2s" in splunk and ("ssl" not in splunk.s2s or ("ssl" in splunk.s2s and not splunk.s2s.ssl))) | bool

{{ splunk.exec }} add {{ item }} -auth {{ splunk.admin_user }}:{{ splunk.password }}

{{ splunk.exec }} disable app {{ item }} -auth {{ splunk.admin_user }}:{{ splunk.password }}

{{ cert_prefix }}://127.0.0.1:{{ splunk.svc_port }}/servicesNS/nobody/splunk_monitoring_console/saved/searches/DMC+Forwarder+-+Build+Asset+Table

{{ splunk.exec }} version --accept-license --answer-yes --no-prompt

{{ installed_splunk_version.stdout | regex_search(regexp, '\1') }}

{{ splunk.exec }} enable boot-start -systemd-managed 1 -user {{ splunk.user }} --accept-license --answer-yes --no-prompt

{{ splunk.exec }} enable boot-start -user {{ splunk.user }} --accept-license --answer-yes --no-prompt

{{ (installed_apps | default([]) + [ item.path | basename ] | difference(default_apps)) | unique }}

{% if ansible_system is match('CYGWIN*|Win32NT') %}Administrator{% else %}root{% endif %}

{{ not pre_existing_splunk_secret.stat.exists | default(True) }}

{{ manifests.files[0].path | regex_search(regexp, '\1') if (manifests.matched == 1) else '0' }}

{{ 'build_location' in splunk and splunk.build_location and not splunk_install and splunk_target_version and splunk_target_version != splunk_current_version | default(False) }}

{{ True if 'cluster_master_url' in splunk and splunk.cluster_master_url else False }}

{{ True if 'search_head_captain_url' in splunk and splunk.search_head_captain_url else False }}

{{ groups['splunk_standalone'] | difference([ansible_hostname]) }}

'target_version' in splunk and splunk.target_version is not none

{{ splunk.build_location | regex_search(regexp, '\1') | default('0') }}

splunk_build_type is defined and splunk_build_type is match('(tgz|msi|rpm|deb)')

item.version is version_compare( splunk_target_version|default('0.0.0'), '>')

set -o pipefail && tar --exclude='*/*/*' --exclude='*.*' -tf /tmp/app.spl | awk -F'/' '{ print$1 }' | uniq

msiexec /I {{ splunk.build_location }} AGREETOLICENSE=yes LAUNCHSPLUNK=0 INSTALLDIR=C:\\opt\\{{ splunk.tar_dir }} /passive /qn

{{ splunk.exec }} edit cluster-config -mode searchhead -master_uri {{ cert_prefix }}://{{ splunk.cluster_master_url }}:{{ splunk.svc_port }} -replication_port {{ splunk.idxc.replication_port }} -secret '{{ splunk.idxc.pass4SymmKey }}' -auth '{{ splunk.admin_user }}:{{ splunk.password }}'

{{ splunk.exec }} add search-server {{ cert_prefix }}://{{ item }}:{{ splunk.svc_port }} -auth {{ splunk.admin_user }}:{{ splunk.password }} -remoteUsername {{ splunk.admin_user }} -remotePassword {{ splunk.password }}

set_indexer_as_peer.rc != 0 and 'already exists' not in set_indexer_as_peer.stderr

{{ splunk.exec }} {{ item }} -auth {{ splunk.admin_user }}:{{ splunk.password }} --accept-license --answer-yes --no-prompt

{{ splunk.exec }} set deploy-poll {{ splunk.deployment_server }}:{{ splunk.svc_port }} -auth '{{ splunk.admin_user }}:{{ splunk.password }}'

{{ splunk.exec }} edit licenser-localslave -master_uri {{ cert_prefix }}://{{ splunk.license_master_url }}:{{ splunk.svc_port }} -auth '{{ splunk.admin_user }}:{{ splunk.password }}'

{% if ssl_enabled.status == 200 %}https{% else %}http{% endif %}

{{ splunk.exec }} status --accept-license --answer-yes --no-prompt

{{ splunk.exec }} stop --accept-license --answer-yes --no-prompt

ansible_distribution == 'Debian' or ansible_distribution == 'RedHat'

cp {{ splunk.home }}/etc/splunk-launch.conf.default {{ splunk.home }}/etc/splunk-launch.conf

ansible_distribution == 'Debian' or ansible_distribution == 'RedHat' or ansible_distribution == 'CentOS'

update-alternatives --install /usr/bin/java java /opt/container_artifact/jdk1.8.0_{{ java_update_version }}/bin/java 100

update-alternatives --install /usr/bin/javac javac /opt/container_artifact/jdk1.8.0_{{ java_update_version }}/bin/javac 100

update-alternatives --set java /opt/container_artifact/jdk1.8.0_{{ java_update_version }}/bin/java

update-alternatives --set javac /opt/container_artifact/jdk1.8.0_{{ java_update_version }}/bin/javac

{{ splunk.exec }} add licenses {{ splunk.license_download_dest }} -auth {{ splunk.admin_user }}:{{ splunk.password }}

{{ splunk.exec }} search '| essinstall' -auth {{ splunk.admin_user }}:{{ splunk.password }}

splunk_status.rc == 0 and (splunktcp_enabled is changed or splunktcp_ssl_disabled is changed or splunktcp_ssl_reset is changed or splunktcp_ssl_ca_reset is changed)

splunk_status.rc == 0 and (splunktcp_disabled is changed or splunktcp_ssl_cert_configured is changed or splunktcp_ssl_pass_configured is changed or splunktcp_ssl_ca_configured is changed)

cp -R {{ splunk.app_paths.default }}/{{ item }} {{ splunk.app_paths.shc }}

{{ splunk.exec }} apply shcluster-bundle -target {{ cert_prefix }}://{{ splunk.search_head_captain_url }}:{{ splunk.svc_port }} -auth {{ splunk.admin_user }}:{{ splunk.password }} --answer-yes

shcluster_bundle.rc == 0 or "Found zero deployable apps" in shcluster_bundle.stderr

shcluster_bundle.rc != 0 and "Found zero deployable apps" not in shcluster_bundle.stderr

cp -R {{ splunk.app_paths.default }}/{{ item }} {{ splunk.app_paths.deployment }}

{{ splunk.exec }} reload deploy-server -auth {{ splunk.admin_user }}:{{ splunk.password }}

{{ splunk.exec }} {{ item }} -auth {{ splunk.admin_user }}:{{ splunk.password }}

{{ splunk.exec }} edit cluster-config -mode slave -master_uri '{{ cert_prefix }}://{{ splunk.cluster_master_url }}:{{ splunk.svc_port }}' -replication_port {{ splunk.idxc.replication_port }} -secret '{{ splunk.idxc.pass4SymmKey }}' -auth '{{ splunk.admin_user }}:{{ splunk.password }}'

{{ splunk.exec }} edit cluster-config -mode slave -site {{ splunk.site }} -master_uri {{ multisite_master_uri }} -replication_port {{ splunk.idxc.replication_port }} -auth {{ splunk.admin_user }}:{{ splunk.password }} -secret {{ splunk.idxc.pass4SymmKey }}

ansible_hostname == splunk.search_head_captain_url or ansible_fqdn == splunk.search_head_captain_url or splunk.hostname == splunk.search_head_captain_url or splunk.role == "splunk_search_head_captain"

{{ splunk.exec }} init shcluster-config -auth '{{ splunk.admin_user }}:{{ splunk.password }}' -mgmt_uri '{{ cert_prefix }}://{{ splunk.hostname }}:{{ splunk.svc_port }}' -replication_port {{ splunk.shc.replication_port }} -replication_factor {{ splunk.shc.replication_factor }} -conf_deploy_fetch_url '{{ cert_prefix }}://{{ splunk.deployer_url }}:{{ splunk.svc_port }}' -secret '{{ splunk.shc.pass4SymmKey }}' -shcluster_label '{{ splunk.shc.label }}'

{{ splunk.exec }} bootstrap shcluster-captain -servers_list '{% for host in groups['splunk_search_head'] %}{{ cert_prefix }}://{{ host }}:{{ splunk.svc_port }}{% if not loop.last %},{% endif %}{% endfor %}' -auth '{{ splunk.admin_user }}:{{ splunk.password }}'

task_result.rc == 0 or "node seems to have already joined another cluster" in task_result.stderr

task_result.rc !=0 and "node seems to have already joined another cluster" not in task_result.stderr

{{ splunk.exec }} add shcluster-member -current_member_uri {{ cert_prefix }}://{{ splunk.search_head_captain_url }}:{{ splunk.svc_port }} -auth {{ splunk.admin_user }}:{{ splunk.password }}

task_result.rc !=0 and "is already part of cluster" not in task_result.stderr

task_result.rc == 0 or "is already part of cluster" in task_result.stderr

{{ splunk.exec }} resync shcluster-replicated-config -auth {{ splunk.admin_user }}:{{ splunk.password }}

task_result.rc !=0 and "this instance is the captain" not in task_result.stderr

task_result.rc == 0 or "this instance is the captain" in task_result.stderr

{{ splunk.exec }} edit cluster-config -mode searchhead -master_uri {{ multisite_master_uri }} -auth {{ splunk.admin_user }}:{{ splunk.password }} -secret {{ splunk.idxc.pass4SymmKey }}

{{ splunk.exec }} edit cluster-master -old_master_uri {{ multisite_master_uri }} -site {{ splunk.site }} -auth {{ splunk.admin_user }}:{{ splunk.password }} -secret {{ splunk.idxc.pass4SymmKey }} -multisite True

set_associated_site.rc == 0 or (set_associated_site.rc == 22 and 'No change in master or secret or site' in set_associated_site.stderr)

set_associated_site.rc != 0 and 'No change in master or secret or site' not in set_associated_site.stderr

set_new_master.rc == 0 or (set_new_master.rc == 22 and  "Use 'splunk edit cluster-master' to edit information for this" in set_new_master.stderr)

set_new_master.rc != 0 and "Use 'splunk edit cluster-master' to edit information for this" not in set_new_master.stderr

virt-customize --smp 2 -m {{ convert_image_host_memory }} -a {{ convert_image_working_dir }}/overcloud-full.qcow2 --root-password password:{{ overcloud_full_root_pwd }}

cp {{ convert_image_working_dir }}/overcloud-full.qcow2
   {{ convert_image_working_dir }}/undercloud.qcow2

overcloud_full_qcow2.stat.exists and overcloud_as_undercloud|bool

qemu-img resize {{ convert_image_working_dir }}/undercloud.qcow2
                {{ flavors[undercloud_node.name].disk }}G

virt-customize -v --smp 2 -m {{ convert_image_host_memory }} -a {{ convert_image_working_dir }}/undercloud.qcow2 --run convert_image.sh

virt-cat -a undercloud.qcow2 /tmp/builder.log > builder-undercloud.log 2>&1;

msg="Some libvirt networks were not set to autostart. Please see https://bugs.launchpad.net/tripleo-quickstart/+bug/1581676"

content={{ item.get_xml }} dest=/tmp/network-{{ item.item.name }}.xml

{{ force_cached_images|default(false)|bool or image.force_cached|default(false)|bool }}

curl -skfL -C- -o _{{ image.name }}.{{ image.type }} {{ image.url }}

cp {{ image_cache_path }} {{ image_fetch_dir }}/{{ image.name }}.{{ image.type }}

cp {{ image_cache_path }} {{ image_fetch_dir }}/undercloud.{{ image.type }}

set -o pipefail; find {{ image_cache_dir }} -type f {% if not image_cache_dir_cleanup|bool %} -mtime +{{ image_cache_expire_days|int - 1 }} {% endif %} | xargs --no-run-if-empty -t rm -rf

set -o pipefail; virsh pool-dumpxml {{ libvirt_volume_pool }} | virsh pool-define /dev/stdin

qemu-img create -f qcow2 -o preallocation=off '{{ working_dir }}/undercloud-resized.qcow2' '80G'

libguestfs-test-tool > {{ working_dir }}/libguestfs-test.log 2>&1;

set -eo pipefail; source {{ working_dir }}/libguestf-env.sh; virt-resize -x --verbose --expand /dev/sda1 '{{ working_dir }}/undercloud.qcow2' '{{ working_dir }}/undercloud-resized.qcow2' 2>&1 | tee -a {{ working_dir }}/virt-resize.log

mv -f '{{ working_dir }}/undercloud-resized.qcow2'
      '{{ working_dir }}/undercloud.qcow2'

import crypt; print(crypt.crypt("{{ vm_pass }}", "$1$SecretSalt$"))

source {{ working_dir }}/libguestf-env.sh && virt-customize -v -a {{ working_dir }}/undercloud.qcow2 --root-password file:"{{ working_dir }}/pwtemp" >> {{ working_dir }}/virt-customize.log 2>&1

source {{ working_dir }}/libguestf-env.sh && virt-customize -v -a {{ working_dir }}/undercloud.qcow2 --run-command 'FS_TYPE=`findmnt -o FSTYPE -fn /`; if [ "$FS_TYPE" = "xfs" ]; then xfs_growfs /; elif [ "$FS_TYPE" = "ext4" ]; then resize2fs /dev/sda1; else echo "ERROR: Unknown filesystem $FSTYPE, cannot resize."; exit 1; fi' >> {{ working_dir }}/virt-customize.log 2>&1

source {{ working_dir }}/libguestf-env.sh && virt-customize -v -a {{ working_dir }}/undercloud.qcow2 --run-command "grubby --update-kernel=ALL --args=\"cloud-init=disabled\"" >> {{ working_dir }}/virt-customize.log 2>&1

source {{ working_dir }}/libguestf-env.sh && virt-customize -v -a {{ working_dir }}/undercloud.qcow2 --mkdir /root/.ssh/ --upload {{ pub_key }}:/root/.ssh/authorized_keys --run-command 'chown -R root:root /root/.ssh' --run-command 'chmod 0700 /root/.ssh' --run-command 'chmod 0600 /root/.ssh/authorized_keys' --selinux-relabel >> {{ working_dir }}/virt-customize.log 2>&1

source {{ working_dir }}/libguestf-env.sh && virt-customize -v -a {{ working_dir }}/undercloud.qcow2 --run-command 'id -u zuul &>/dev/null || useradd zuul' --mkdir /home/zuul/.ssh --run-command 'cp /root/.ssh/authorized_keys /home/zuul/.ssh/' --run-command 'chown -R zuul:zuul /home/zuul/.ssh' --run-command 'chmod 0700 /home/zuul/.ssh' --run-command 'chmod 0600 /home/zuul/.ssh/authorized_keys' --run-command 'echo "zuul ALL=(root) NOPASSWD:ALL" > /etc/sudoers.d/zuul' --run-command 'chmod 0440 /etc/sudoers.d/zuul' --selinux-relabel >> {{ working_dir }}/virt-customize.log 2>&1

source {{ working_dir }}/libguestf-env.sh && virt-customize -a {{ working_dir }}/undercloud.qcow2 --run-command 'yum install -y qemu-guest-agent' --run-command 'systemctl enable qemu-guest-agent' >> {{ working_dir }}/virt-customize.log 2>&1

virsh vol-create-as {{ libvirt_volume_pool }} {{ item.name }}.qcow2 {{ flavors[item.flavor].disk }}G --format qcow2

virsh -k 0 vol-upload --pool '{{ libvirt_volume_pool }}' '{{ item.name }}.qcow2' '{{ local_working_dir }}/undercloud.qcow2'

virsh vol-info --pool '{{ libvirt_volume_pool }}' '{{ item.name }}.qcow2'

virsh vol-create-as '{{ libvirt_volume_pool }}' '{{ item.item.name }}'.qcow2 '{{ flavors[item.item.flavor].disk }}'G --format qcow2

dd if=/dev/zero of={{ libvirt_volume_path }}/{{ item[0].name }}_{{ item[1] }}.img bs=1 count=0 seek={{ extradisks_size }}

virsh domblkinfo {{ item[0].name }} {{ libvirt_volume_path }}/{{ item[0].name }}_{{ item[1] }}.img

virsh attach-disk --config {{ item.item[0].name }} {{ libvirt_volume_path }}/{{ item.item[0].name }}_{{ item.item[1] }}.img {{ item.item[1] }}

echo "127.0.0.1  {{ item.name }} localhost" > /etc/hosts; echo "HOSTNAME={{ item.name }}" >> /etc/sysconfig/network; echo "{{ item.name }}" > /etc/hostname; hostnamectl set-hostname {{ item.name }}; {% if custom_nameserver is defined and custom_nameserver %} echo "nameserver {{ custom_nameserver }} " >> /etc/resolv.conf; echo "append domain-name-servers {{ custom_nameserver }};" >> /etc/dhcp/dhclient.conf {% endif %}

ssh-keygen -f '{{ supplemental_node_key }}' -N '' -C ansible_generated_supplemental -t rsa -b 4096

virsh vol-info --pool '{{ libvirt_volume_pool }}' '{{ supplemental_node.name }}.qcow2'

bash ~/tls_everywhere_provisioner.sh &> ~/tls_everywhere_provisioner.log

virt-copy-out -a {{ working_dir }}/undercloud.qcow2 /home/{{ undercloud_user }}/overcloud-full.qcow2 {{ working_dir }}

virt-customize -a {{ working_dir }}/overcloud-full.qcow2 --run '{{ working_dir }}/overcloud-customize.sh'

virt-copy-in -a {{ working_dir }}/undercloud.qcow2 {{ working_dir }}/overcloud-full.qcow2 /home/{{ undercloud_user }}/

virt-customize -a {{ working_dir }}/overcloud-full.qcow2 --upload {{ compressed_gating_repo }}:/tmp/gating_repo.tar.gz --run '{{ working_dir }}/inject_gating_repo.sh'

overcloud_image_extracted is defined and overcloud_image_extracted|changed

virt-customize -a {{ working_dir }}/undercloud.qcow2 --upload {{ compressed_gating_repo }}:/tmp/gating_repo.tar.gz --run '{{ working_dir }}/inject_gating_repo.sh'

virsh vol-info --pool '{{ libvirt_volume_pool }}' '{{ undercloud_node.name }}.qcow2'

virt-customize -a {{ working_dir }}/undercloud.qcow2 --upload {{ working_dir }}/{{ item }}:/home/{{ undercloud_user }}/{{ item }} --run-command 'chown {{ undercloud_user }}:{{ undercloud_user }} /home/{{ undercloud_user }}/{{ item }}'

virt-customize -a {{ working_dir }}/undercloud.qcow2 --upload {{ working_dir }}/instackenv.json:/home/{{ undercloud_user }}/instackenv.json --run-command 'chown {{ undercloud_user }}:{{ undercloud_user }} /home/{{ undercloud_user }}/instackenv.json'

virt-customize -a {{ working_dir }}/undercloud.qcow2 --mkdir {{ item.homedir }}/.ssh/ --upload '{{ working_dir }}/id_rsa_undercloud.pub:{{ item.homedir }}/.ssh/authorized_keys' --run-command 'chown -R {{ item.owner }}:{{ item.group }} {{ item.homedir }}/.ssh' --run-command 'chmod 0700 {{ item.homedir }}/.ssh' --run-command 'chmod 0600 {{ item.homedir }}/.ssh/authorized_keys'

virt-customize -a {{ working_dir }}/undercloud.qcow2 --upload '{{ working_dir }}/id_rsa_virt_power:/root/.ssh/id_rsa_virt_power' --run-command 'chown root:root /root/.ssh/id_rsa_virt_power' --run-command 'chmod 0600 /root/.ssh/id_rsa_virt_power'

virt-customize -a {{ working_dir }}/undercloud.qcow2 --run '{{ working_dir }}/undercloud-customize.sh'

virt-customize -a {{ working_dir }}/undercloud.qcow2 --selinux-relabel

qemu-img create -f qcow2 -o preallocation=off '{{ working_dir }}/undercloud-resized.qcow2' '{{ flavors[undercloud_node.flavor].disk }}G'

virt-resize --expand /dev/sda1 '{{ working_dir }}/undercloud.qcow2' '{{ working_dir }}/undercloud-resized.qcow2'

virt-customize -a '{{ working_dir }}/undercloud.qcow2' --run-command 'FS_TYPE=`findmnt -o FSTYPE -fn /`; if [ "$FS_TYPE" = "xfs" ]; then xfs_growfs /; elif [ "$FS_TYPE" = "ext4" ]; then resize2fs /dev/sda1; else echo "ERROR: Unknown filesystem $FSTYPE, cannot resize."; exit 1; fi'

qemu-img resize '{{ working_dir }}/undercloud.qcow2' '{{ flavors[undercloud_node.flavor].disk }}G'

virt-customize -a '{{ working_dir }}/undercloud.qcow2' --run-command 'FS_TYPE=`findmnt -o FSTYPE -fn /`; if [ "$FS_TYPE" = "xfs" ]; then xfs_growfs /; elif [ "$FS_TYPE" = "ext4" ]; then resize2fs /dev/sda; else echo "ERROR: Unknown filesystem $FSTYPE, cannot resize."; exit 1; fi'

virt-copy-out -a '{{ working_dir }}/undercloud.qcow2' '/home/{{ undercloud_user }}/overcloud-full.vmlinuz' '/home/{{ undercloud_user }}/overcloud-full.initrd' '{{ working_dir }}'

virt-get-kernel -a '{{ working_dir }}/undercloud.qcow2' --unversioned-names --output '{{ working_dir }}'

mv '{{ working_dir }}/vmlinuz' '{{ working_dir }}/overcloud-full.vmlinuz'

mv '{{ working_dir }}/initramfs' '{{ working_dir }}/overcloud-full.initrd'

virsh vol-create-as {{ libvirt_volume_pool }} {{ undercloud_node.name }}.qcow2 {{ flavors[undercloud_node.flavor].disk }}G --format qcow2

virsh -k 0 vol-upload --pool '{{ libvirt_volume_pool }}' '{{ undercloud_node.name }}.qcow2' '{{ working_dir }}/undercloud.qcow2'

virt-customize -v --smp 2 -m 4096 -a {{ item.path }} --run update_image-{{ item.inode }}.sh

ssh-keygen -f '{{ item.path }}' -N '' -C '{{ item.comment }}' -t rsa -b 4096

virsh vol-dumpxml --pool '{{ libvirt_volume_pool }}' \
  '{{ undercloud_node.name }}'.qcow2 2>&1 > /dev/null
virsh vol-delete --pool '{{ libvirt_volume_pool }}' \
  '{{ undercloud_node.name }}'.qcow2

virsh pool-dumpxml "{{ libvirt_volume_pool }}" |
virsh pool-define /dev/stdin

/run/user/{{ pool_uid.stdout }}/libvirt/storage/run/{{ libvirt_volume_pool }}.xml

{{ 'intel' if 'Intel' in ansible_processor|join('') else 'amd' if 'AMD' in ansible_processor|join('') else 'unknown' }}

{{ true if cpu_vendor == 'intel' and 'vmx' in cpu_flags_cmd.stdout.split() else true if cpu_vendor == 'amd' and 'svm' in cpu_flags_cmd.stdout.split() else false }}

find /etc/modprobe.d/ -type f -print0 | xargs -r -0 sed -i '/^options kvm_intel/d;/^options kvm_amd/d'

options kvm_{{ cpu_vendor }} nested={{ nested|bool|ternary('1', '0') }}

{{ true if 'Y' in kvm_nested_info.stdout else true if '1' in kvm_nested_info.stdout else false }}

Cannot change the state of nested virtualization. Please shut down any running VMs.

if rpm -q ipxe-roms-qemu-20130517; then
   rpm -e --nodeps ipxe-roms-qemu-20130517 && echo "rpm removed";
fi;

ssh-keygen -f {{ virt_host_key }} -N '' -C 'ansible_generated_virt_host' -t rsa -b 4096

getent passwd {{ non_root_user }} | cut -d: -f6

/etc/polkit-1/localauthority/50-local.d/50-{{ non_root_user }}-libvirt.pkla

msg="Unfortunately your linux distribution is not supported at the moment. We welcome community support, please see https://github.com/openstack/tripleo-quickstart .
To run quickstart with out this check set 'quickstart.sh -e supported_distro_check=false'"

not (ansible_distribution == 'CentOS' or ansible_distribution == 'RedHat')

The newest DLRN hash or tag is not recognized. The hash or tag should not contain path slashes.

(not dlrn_hash_tag is match("[a-zA-Z0-9]{40}_[a-zA-Z0-9]{8}")) or (not dlrn_hash_tag is match("[a-zA-Z0-9]{32}"))

dlrn_hash_tag_newest is match("[a-zA-Z0-9]{40}_[a-zA-Z0-9]{8}") or dlrn_hash_tag is match("[a-zA-Z0-9]{32}")

dlrn_base={{ dlrn_baseurl }}
if [ -e /etc/ci/mirror_info.sh ]; then
  source /etc/ci/mirror_info.sh
  NODEPOOL_RDO_PROXY=${NODEPOOL_RDO_PROXY:-https://trunk.rdoproject.org}
  dlrn_base=${dlrn_base/https:\/\/trunk.rdoproject.org/$NODEPOOL_RDO_PROXY}
fi
curl -s --fail --show-error ${dlrn_base}/{{ dlrn_hash_tag_newest }}/delorean.repo \
| grep baseurl | grep -Eo '[a-zA-Z0-9]{40}_[a-zA-Z0-9]{8}'

fi
curl -s --fail --show-error ${dlrn_base}/{{ dlrn_hash_tag_newest }}/delorean.repo.md5

{{ dlrn_hash_newest[:2] }}/{{ dlrn_hash_newest[2:4] }}/{{ dlrn_hash_newest }}

The DLRN hash or tag is not recognized. The hash or tag should not contain path slashes.

dlrn_hash_tag is match("[a-zA-Z0-9]{40}_[a-zA-Z0-9]{8}") or dlrn_hash_tag is match("[a-zA-Z0-9]{32}")

fi
curl -s --fail --show-error ${dlrn_base}/{{ dlrn_hash_tag }}/delorean.repo \

fi
curl -s --fail --show-error ${dlrn_base}/{{ dlrn_hash_tag }}/delorean.repo.md5

dlrn_base=https://trunk.rdoproject.org/centos7-{{ overcloud_release }}
fi

{{ overcloud_dlrn_hash[:2] }}/{{ overcloud_dlrn_hash[2:4] }}/{{ overcloud_dlrn_hash }}

set -o pipefail && {{ repo_setup_dir }}/{{ repo_setup_script }} 2>&1 {{ timestamper_cmd }} | tee -a {{ repo_setup_dir }}/{{ repo_setup_log }}

WARNING: This role is deprecated for removal since Ocata.
Reason: The tripleo/undercloud role is now deprecated, has moved
into the tripleo-quickstart-extras repository, and been renamed
to undercloud-deploy. The tripleo/undercloud role will be removed in
the Queens release. Please revise your playbooks to use the new role
location and name.

source {{ working_dir }}/stackrc; $(command -v python3 || command -v python2) {{ working_dir }}/get-overcloud-nodes.py

hostvars['undercloud'] is defined and hostvars['undercloud'].undercloud_ip is defined

{{ 'virthost' in groups and groups['virthost']|length>0 and hostvars[groups['virthost'][0]].ansible_private_key_file is defined }}

ssh -q -o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no -o ConnectTimeout=60 -i {{ hostvars[groups['virthost'][0]].ansible_private_key_file }} {{ ssh_user }}@{{ hostvars[groups['virthost'][0]].ansible_host }} -W {{ undercloud_ip }}:22

ssh -q -o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no -o ConnectTimeout=60 -i {{ local_working_dir }}/id_rsa_virt_power {{ ssh_user }}@{{ hostvars['localhost'].ansible_default_ipv4.address }} -W {{ undercloud_ip }}:22

ssh -q -o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no -o ConnectTimeout=60 -i {{ local_working_dir }}/id_rsa_virt_power {{ ssh_user }}@{{ hostvars[groups['virthost'][0]].ansible_host }} -W {{ supplemental_node_ip }}:22

undercloud_ip is not defined and result_stat_id_rsa_virt_power.stat.exists

{{ (registered_nodes_output.stdout | from_json) | json_query(jq_overcloud) }}

{{ (registered_nodes_output.stdout | from_json) | json_query(jq_undercloud) }}

{{ (registered_nodes_output.stdout | from_json) | json_query(jq_cluster) }}

[?metadata.clusterid] | [?metadata.clusterid=='{{ clusterid }}']

{{ registered_overcloud_nodes|union(registered_undercloud_nodes) }}

ssh -o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no -o ConnectTimeout=60 -i {{ hostvars['undercloud'].ansible_private_key_file }} {{ ssh_user }}@{{ hostvars['undercloud'].ansible_host }}

[default]
config_dir=/root/.vbmc
[log]
logfile=/var/log/virtualbmc/virtualbmc.log
debug=True
[ipmi]
session_timout=20

{{ networks|selectattr('address', 'defined')|map(attribute='address')|list|first }}

networks|selectattr('address', 'defined')|map(attribute='name')|list|length > 0

qemu+ssh://{{ non_root_user }}@{{ vbmc_address }}/session?socket=/run/user/{{ non_root_user_uid }}/libvirt/libvirt-sock&keyfile=/root/.ssh/id_rsa_virt_power&no_verify=1&no_tty=1

vbmc add {{ item.name }} --port {{ item.virtualbmc_port }} --libvirt-uri {{ vbmc_libvirt_uri }}

[Unit]
Description=VirtualBMC %i service
After=network.target

[Service]
Type=forking
PIDFile=/root/.vbmc/%i/pid
ExecStart=/bin/vbmc start %i
ExecStop=/bin/vbmc stop %i
Restart=always

[Install]
WantedBy=multi-user.target

ip a add dev eth2 {{ supplemental_node_ip }}/24;
ip l set eth2 up;
ip link set dev eth2 mtu 1450;
ping 10.0.0.1 -c 4 -q;

run_tripleo_validations|bool or run_tripleo_validations_negative_tests|bool

hostvars['undercloud']['compressed_gating_repo'] is defined and mixed_upgrade|default(false)|bool

{{ hostvars['undercloud']['update_containers_append_tag'] | default('') }}

{{ ansible_pkg_mgr }} --enablerepo='gating-repo' update -y  # noqa 305

127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
::1        localhost localhost.localdomain localhost6 localhost6.localdomain6

set -eo pipefail; echo "127.0.0.1 $(hostname) $(hostname).openstacklocal" | sudo tee -a /etc/hosts; echo "127.0.0.2 undercloud undercloud.openstacklocal" | sudo tee -a /etc/hosts; if [ ! -e ${HOME}/.ssh/id_rsa.pub ] ; then
    if [[ -e ${HOME}/.ssh/id_rsa ]]; then
        ssh-keygen -y -f ${HOME}/.ssh/id_rsa > ${HOME}/.ssh/id_rsa.pub;
    else
        ssh-keygen -N "" -f ${HOME}/.ssh/id_rsa;
    fi
fi; sudo mkdir -p /root/.ssh; cat ~/.ssh/id_rsa.pub | sudo tee -a /root/.ssh/authorized_keys | tee -a ~/.ssh/authorized_keys; sudo rm -rf /etc/puppet /etc/hiera.yaml; sudo cp {{ tripleo_root }}/tripleo-ci/test-environments/overcloud-cacert.pem /etc/pki/ca-trust/source/anchors/; sudo update-ca-trust extract; cp -f {{ lookup('env', 'TE_DATAFILE') }} ~/instackenv.json;

The variable tempest_install_method and tempest_cloud_name is required and
has not been set.

{{ tempest_cidr|nthhost(100) ~ "-" ~ tempest_cidr|nthhost(120) }}

release in ['newton','ocata','pike','queens'] or not containerized_undercloud|bool

set -euxo pipefail
ntpdate $(grep ^server /etc/ntp.conf | tail -1 | awk '{print $2}')

set -o pipefail && {{ baremetal_provisioning_script }} 2>&1 {{ timestamper_cmd }} | tee {{ baremetal_provisioning_log }}

You need to set virthost/undercloud before running these playbooks.

ssh-keygen -f {{ undercloud_key }} -N '' -C 'ansible_generated_virt_host' -t rsa -b 4096

set -o pipefail && {{ images_working_dir }}/overcloud_image_build_script.sh 2>&1 {{ timestamper_cmd }} > {{ working_dir }}/{{ overcloud_image_build_log }}

virt-cat -a {{ build_isolation_image.name }}.qcow2 \
    /tmp/builder.log > builder.log 2>&1 || true
    /ironic-python-agent.log > ironic-python-agent.log 2>&1 || true
    /overcloud-full.log > overcloud-full.log 2>&1 || true

virt-customize -a {{ images_working_dir }}/undercloud.qcow2 --upload {{ images_working_dir }}/{{ item }}:/home/{{ undercloud_user }}/{{ item }} --run-command 'chown {{ undercloud_user }}:{{ undercloud_user }} /home/{{ undercloud_user }}/{{ item }}'

qemu-img convert -c -O qcow2 undercloud.qcow2 undercloud-compressed.qcow2
mv undercloud-compressed.qcow2 undercloud.qcow2

tar -cf ironic-python-agent.tar \
        ironic-python-agent.initramfs \
        ironic-python-agent.kernel
tar -cf overcloud-full.tar \
        overcloud-full.qcow2 \
        overcloud-full.initrd \
        overcloud-full.vmlinuz

md5sum ironic-python-agent.tar > ironic-python-agent.tar.md5
md5sum overcloud-full.tar > overcloud-full.tar.md5

rm -rf {{ images_working_dir }}/overcloud-full.d {{ images_working_dir }}/ironic-python-agent.d/ sudo chown $USER: {{ images_working_dir }}/overcloud-full.* {{ images_working_dir }}/ironic-python-agent.*

source '{{ build_repo_dir }}/dlrn-venv/bin/activate'
set -xeo pipefail
rdopkg findpkg -s '{{ artg_change.project | basename }}' -l rdoinfo | \
  awk '/^name/{print $2}; {print "findpkg: " $0 > "/dev/stderr"}'

cp -raf {{ artg_repos_dir | dirname  }}/{{ artg_change.project }} {{ build_repo_dir }}/DLRN/data/{{ project_name_mapped.stdout }}

set +e; source {{ build_repo_dir }}/dlrn-venv/bin/activate; while true; do
    dlrn --config-file projects.ini --head-only --package-name {{ project_name_mapped.stdout }} --local --info-repo rdoinfo --dev;
    if [ $? -eq 0 ]; then
        # SUCCESS
        break;
    elif [ $? -eq 1 ]; then
        # FAILED
        exit 1;
    elif [ $? -eq 2 ]; then
        # RETRY
        continue;
    fi;
    # Unexpected DLRN return code
    exit $?;
done;

source {{ build_repo_dir }}/dlrn-venv/bin/activate; pip install -r requirements.txt; python setup.py install;

set -o pipefail ; gawk '{ print $0 }; /^# repos$/ { exit }' {{ build_repo_dir }}/DLRN/scripts/{{ initial_dlrn_config }}.cfg > {{ build_repo_dir }}/DLRN/scripts/{{ initial_dlrn_config }}-local.cfg; cat /etc/yum.repos.d/quickstart-{{ ansible_distribution | lower }}-*.repo >> {{ build_repo_dir }}/DLRN/scripts/{{ initial_dlrn_config }}-local.cfg; find /etc/yum.repos.d -name "delorean*repo" ! -name "delorean*build-deps.repo" -exec cat {} \; -exec echo ""  \; >> {{ build_repo_dir }}/DLRN/scripts/{{ initial_dlrn_config }}-local.cfg; find /etc/yum.repos.d -name "delorean*build-deps.repo" -exec sed 's/enabled=.*/enabled=1/g' {} \; >> {{ build_repo_dir }}/DLRN/scripts/{{ initial_dlrn_config }}-local.cfg; {% if ansible_distribution|lower == "redhat" and ansible_distribution_major_version == "8" %} find /etc/yum.repos.d -name "rh-cloud.repo" -exec sed 's/enabled=.*/enabled=1/g' {} \; >> {{ build_repo_dir }}/DLRN/scripts/{{ initial_dlrn_config }}-local.cfg; {% endif %} echo '"""' >> {{ build_repo_dir }}/DLRN/scripts/{{ initial_dlrn_config }}-local.cfg; mkdir -p /tmp/fake-dlrn-repos/current; touch /tmp/fake-dlrn-repos/delorean-deps.repo; touch /tmp/fake-dlrn-repos/current/delorean.repo;

sed -i -e 's%--postinstall%%' {{ build_repo_dir }}/DLRN/scripts/build_rpm.sh

    dlrn --config-file projects.ini --head-only --package-name {{ artg_rdo_packages|join(' --package-name ') }} --local --info-repo rdoinfo --dev --order;
        # SUCCESS
        break;
        # FAILED
        exit 1;
        # RETRY
        continue;
    fi;
    exit $?;
done;

set -o pipefail && rm -rf {{ build_repo_dir }}/gating_repo/*; find {{ build_repo_dir }}/DLRN/data/repos -type f -name '*.rpm' -print0 | xargs -0 cp -t {{ build_repo_dir }}/gating_repo;

{{ lookup('env', 'ZUUL_CHANGES')|regex_replace('openstack/', '') }}

{{ zuul_changes|regex_replace(':[a-z/]*:refs/changes/\d{2}/\d+/\d+','') }}

{{ zuul_changes | intersect(projects_need_build_list|default(default_projects_need_build_list)) }}

update_containers is defined and update_containers|bool and update_containers_append_tag is undefined

/home/{{ undercloud_user }}/src/opendev.org/openstack/tripleo-ci/{{ item }}

{{ artcl_collect_dir }}/{{ old_reproducer_dir }}/featureset-override.yaml

{{ artcl_collect_dir }}/{{ old_reproducer_dir }}/reproducer-quickstart.sh

{{ artcl_collect_dir }}/{{ zuul_reproducer_dir }}/featureset-override.yaml

{{ lookup('file', '/home/{{ undercloud_user }}/workspace/logs/releases.sh') | replace('export' , '            export') }}

{{ lookup('file', '/home/{{ undercloud_user }}/src/opendev.org/openstack/tripleo-ci/featureset-override.yaml') }}

{{ artcl_collect_dir }}/{{ zuul_reproducer_dir }}/launcher-env-setup-playbook.yaml

{{ artcl_collect_dir }}/{{ zuul_reproducer_dir }}/launcher-playbook.yaml

{{ artcl_collect_dir }}/{{ zuul_reproducer_dir }}/reproducer-zuul-based-quickstart.sh

{{ artcl_collect_dir }}/{{ zuul_reproducer_dir }}/reproducer-fresh-box-setup.sh

/home/{{ undercloud_user }}/src/opendev.org/openstack/tripleo-quickstart/{{ item }}

~{{ supplemental_user }}/deploy_freeipa.sh &> ~{{ supplemental_user }}/deploy_freeipa.log

set -o pipefail && {{ ib_repo_workdir }}/install-built-repo.sh 2>&1 {{ timestamper_cmd }} > {{ ib_repo_install_log }}

src={{ local_working_dir }}/gating_repo.tar.gz dest=/tmp/gating_repo.tar.gz

_vc_args="{{ _vc_args }} --upload {{ item.src }}:{{ item.dest }}"

_vc_args="{{ _vc_args }} --install {{ modify_image_install_packages|join(",") }}"

_vc_args="{{ _vc_args }} --root-password password:{{ modify_image_vc_root_password }}"

virt-customize {{ _vc_args }} -a {{ image_to_modify }} > {{ working_dir }}/{{ modify_script|default('modify_image')|replace('/','_') }}.log 2>&1

{{ lookup( 'env', 'LIBGUESTFS_BACKEND_SETTINGS')|default('force_tcg', true) }}

virt-copy-out -a {{ image_to_modify }} {{ item }} {{ modify_image_working_dir }}

In order to use this role image_to_modify and modify_script must be
provided.

image_to_modify is not defined or (modify_script is not defined and modify_image_upload_files == [])

qemu-img convert -f qcow2 -O raw {{ image_to_modify_qcow }} {{ image_to_modify_raw }}; rm -rf "{{ image_to_modify_qcow }}";

kpartx -avs {{ image_to_modify_raw }}; mount /dev/mapper/loop0p1 {{ mount_tempdir }} || mount /dev/loop0 {{ mount_tempdir }};

set -o pipefail && gunzip -c {{ image_to_modify_abs_path.stdout }} | cpio -i

chmod 775 {{ mount_tempdir }}; mount -o bind /dev {{ mount_tempdir }}/dev/; mv {{ mount_tempdir }}/etc/resolv.conf{,_}; echo -e "nameserver 8.8.8.8\nnameserver 8.8.4.4" > {{ mount_tempdir }}/etc/resolv.conf; cp {{ modify_script }} {{ mount_tempdir }}/tmp/{{ modify_script|basename }}; {% if initramfs_image|bool %}sed -i "s/sudo //g" {{ mount_tempdir }}/tmp/{{ modify_script|basename }};{% endif %} set -o pipefail && chroot {{ mount_tempdir }} /bin/bash /tmp/{{ modify_script|basename }} 2>&1 {{ timestamper_cmd }} > {{ working_dir }}/{{ modify_script|basename }}.$(date +%s).log; mv -f {{ mount_tempdir }}/etc/resolv.conf{_,};

cp {{ mount_tempdir }}/{{ item }} {{ modify_image_working_dir }}/;

set -o pipefail && umount {{ mount_tempdir }}/dev/; pushd {{ mount_tempdir }}; find . -print | cpio -o -H newc | gzip > {{ image_to_modify_abs_path.stdout }}; popd; rm -rf "{{ mount_tempdir }}";

chroot {{ mount_tempdir }} setfiles /etc/selinux/targeted/contexts/files/file_contexts / ; umount {{ mount_tempdir }}/dev/; umount {{ mount_tempdir }}; kpartx -dv {{ image_to_modify_raw }}; qemu-img convert -c -f raw -O qcow2 {{ image_to_modify_raw }} {{ image_to_modify_qcow }}; rm -rf "{{ image_to_modify_raw }}"; losetup -d /dev/loop0; rm -rf "{{ mount_tempdir }}"; chown -R {{ undercloud_user }}: /home/{{ undercloud_user }}/;

echo "Executing 'openstack stack delete {{ stack_name }} --yes'" >>  {{ stack_log }}; openstack stack delete {{ stack_name }} --yes &>> {{ stack_log }} && { export COUNTER=0;
  while openstack stack show {{ stack_name }} &>> {{ stack_log }} ; do
    if [ $COUNTER -lt 10 ]; then
      sleep 30;
      if openstack stack show {{ stack_name }} | grep FAILED ; then
        echo "Failed deleting OVB stack" | tee -a {{ stack_log }};
        openstack stack show {{ stack_name }} &>> {{ stack_log }};
        openstack stack failures list --long {{ stack_name }} &>> {{ stack_log }} || echo 'Failed to list stack failures' >> {{ stack_log }};
        # NOTE(emilien) "openstack overcloud failures" was introduced in Rocky
        openstack overcloud failures &>> {{ stack_log }} || echo 'Failed to list deployment failures' >> {{ stack_log }};
        exit 0;
      fi;
      COUNTER=$((COUNTER+1));
    fi;
  done; } || echo "No stack {{ stack_name }} present" >> {{ stack_log }}

Please install openstack client as it is required for running this role

set -o pipefail && openstack keypair show {{ key_name }} && echo "{{ key_name }} already exists" || openstack keypair create --public-key {{ key_location }} {{ key_name }} 2>&1 | tee -a {{ stack_log }}

echo "Executing 'openstack stack create {{ stack_name }} --template {{ local_working_dir }}/multinode_stack.yaml -e {{ local_working_dir }}/params_multinode.yaml &>> {{ stack_log }}'" | tee -a {{ stack_log }}; openstack stack create {{ stack_name }} --template {{ local_working_dir }}/multinode_stack.yaml -e {{ local_working_dir }}/params_multinode.yaml &>> {{ stack_log }} || exit 1; export COUNTER=0;
  while ! openstack stack show {{ stack_name }} | grep CREATE_COMPLETE; do
    if [ $COUNTER -lt 30 ]; then
      sleep 10;
        echo "Failed to create multinode stack {{ stack_name }}" | tee -a {{ stack_log }};
        openstack stack show {{ stack_name }} >> {{ stack_log }} 2>&1;
        openstack stack failures list --long {{ stack_name }} >> {{ stack_log }} 2>&1 || echo 'Failed to list stack failures' >> {{ stack_log }};
        exit 0;
      fi;
    fi;
  done;
  openstack stack show "{{ stack_name }}" >>  {{ stack_log }};

Failed to create multinode stack {{ stack_name }}, check log: {{ stack_log }}

openstack stack output show {{ stack_name }} subnode_ip_pairs -c output_value -f value

ssh -o BatchMode=yes -o "StrictHostKeyChecking=no" {{ default_image_user }}@{{ hostvars[item].ansible_host }} -i "{{ private_key_location }}"

git config --global user.email "user@example.com"; git config --global user.name "CI user"

NODEPOOL_PROVIDER={% if rdo_cloud_provider|bool %}
rdo-cloud-tripleo
{% else %}
fake-cloud
{% endif %}
NODEPOOL_CLOUD=fake-cloud
NODEPOOL_REGION=FAKE
NODEPOOL_AZ=

ssh-keygen -N "" -f /etc/nodepool/id_rsa; chmod 600  /etc/nodepool/id_rsa;

dd if=/dev/zero of=/root/swapfile bs=1024 count={{ subnode_swap_size }}; chmod 600 /root/swapfile; mkswap /root/swapfile; swapon /root/swapfile; echo "/root/swapfile swap swap defaults 0 0" >> /etc/fstab;

for key in {{ hostvars[item].subnode_public_ip }} {{ hostvars[item].subnode_private_ip }}; do
  if ! grep -q $key /etc/ssh/ssh_known_hosts ; then
    ssh-keyscan $key >> /etc/ssh/ssh_known_hosts
  fi
done

set -o pipefail && {{ local_working_dir }}/cleanup-stacks-keypairs.sh 2>&1 {{ timestamper_cmd }} > {{ cleanup_stacks_keypairs_log }}

Network isolation type 'multi-nic' is deprecated in R release, please use 'multiple-nics'.

export OS_USERNAME="{{ os_username }}"; export OS_PASSWORD="{{ os_password }}"; export OS_TENANT_NAME="{{ os_tenant_name }}"; export OS_AUTH_URL="{{ os_auth_url }}"; nova keypair-add --pub-key {{ existing_key_location }}.pub key-{{ idnum }}

export OS_CLIENT_CONFIG_FILE="{{ local_working_dir }}/clouds.yaml"; export OS_CLOUD="{{ cloud_name }}"; {{ ovb_dir }}/bin/deploy.py --env {{ local_working_dir }}/env-{{ idnum }}.yaml --name {{ stack_name }} --quintupleo

export OS_USERNAME="{{ os_username }}"; export OS_PASSWORD="{{ os_password }}"; export OS_TENANT_NAME="{{ os_tenant_name }}"; export OS_AUTH_URL="{{ os_auth_url }}"; export STACK_LOG="{{ local_working_dir }}/ovb_create_stack.log"; export COUNTER=0; while ! openstack stack show {{ stack_name }} | grep CREATE_COMPLETE; do
  if [ $COUNTER -lt 10 ]; then
    sleep 30;
    if openstack stack show {{ stack_name }} | grep FAILED ; then
      echo "Failed OVB stack" > $STACK_LOG;
      openstack stack show {{ stack_name }} >> $STACK_LOG 2>&1;
      openstack stack failures list --long {{ stack_name }} >> $STACK_LOG 2>&1 || echo 'Failed to list stack failures' >> $STACK_LOG;
      exit 0;
    fi;
    COUNTER=$((COUNTER+1));
  fi;
done; openstack stack show "{{ stack_name }}" | grep "status"

Stack {{ stack_name }} did not deploy successfully. See the stack status message above.

export OS_USERNAME="{{ os_username }}"; export OS_PASSWORD="{{ os_password }}"; export OS_TENANT_NAME="{{ os_tenant_name }}"; export OS_AUTH_URL="{{ os_auth_url }}"; openstack stack show {{ stack_name }} -f json -c outputs

ssh -o BatchMode=yes -o "StrictHostKeyChecking=no" root@{{ undercloud_ip }} -i "{{ undercloud_key }}"

chdir={{ local_working_dir }} export OS_CLIENT_CONFIG_FILE="{{ local_working_dir }}/clouds.yaml"; export OS_CLOUD="{{ cloud_name }}"; {{ ovb_dir }}/bin/build-nodes-json --env {{ local_working_dir }}/env-{{ idnum }}.yaml --driver {{ baremetal_driver }}

export OS_USERNAME="{{ os_username }}"; export OS_PASSWORD="{{ os_password }}"; export OS_TENANT_NAME="{{ os_tenant_name }}"; export OS_AUTH_URL="{{ os_auth_url }}"; nova keypair-delete key-{{ idnum }}

set -o pipefail && {{ working_dir }}/overcloud-delete.sh 2>&1 {{ timestamper_cmd }} > {{ delete_log }}

source {{ working_dir }}/stackrc
openstack stack show $(cat {{ working_dir }}/overcloud_id) -f yaml

{{ extra_tht_config_args|default('') }} {% if extra_tht_configs|default([])|length > 0 %} -e {{ extra_tht_configs | default([]) | map('basename') | map('regex_replace', '(.*)', "{{ working_dir }}/\1") | join (' -e ') }} {% endif %}

(deploy_steps_ansible_workflow|bool) and (deploy_multinode|bool)

composable_roles|bool and generate_overcloud_roles is not defined

set -o pipefail && {{ working_dir }}/overcloud-deploy-cell.sh 2>&1 {{ timestamper_cmd }} > {{ deploy_cell_log }}

set -o pipefail && {{ working_dir }}/overcloud-deploy.sh 2>&1 {{ timestamper_cmd }} > {{ deploy_log }}

set -o pipefail && {{ working_dir }}/deployed_server_prepare.sh 2>&1 {{ timestamper_cmd }} > {{ deployed_server_prepare_log }}

echo '{ "overcloud_deploy_result": "failed" }' > "{{ local_working_dir }}/overcloud_deployment_result.json"

echo '{ "overcloud_deploy_result": "passed" }' > "{{ local_working_dir }}/overcloud_deployment_result.json"

set -o pipefail && {{ working_dir }}/overcloud-deploy-post.sh 2>&1 {{ timestamper_cmd }} > {{ post_deploy_log }}

{% if cell_topology_map.CellController is defined -%}
{{ cell_topology_map.CellController.scale }}
1
{%- endif %}

{% if cell_topology_map.CellController is defined and cell_topology_map.CellController.flavor is defined -%}
{{ cell_topology_map.CellController.flavor }}
baremetal

{% if cell_topology_map.Compute is defined -%}
{{ cell_topology_map.Compute.scale }}
0

-r {{ working_dir }}/{{ cell_name }}/cell_roles_data.yaml -e {{ working_dir }}/{{ cell_name }}/cell-input.yaml -e {{ working_dir }}/{{ cell_name }}/cell.yaml --stack {{ cell_name }}

Network isolation types 'multi-nic', 'bond_with_vlans', 'single_nic_vlans' are deprecated in R release, please use 'multiple-nics', 'bond-with-vlans', 'single-nic-vlans'.

network_isolation_type in ["single_nic_vlans", "bond_with_vlans", "multi-nic"]

-e {{ overcloud_templates_path }}/environments/network-isolation.yaml -e {{ overcloud_templates_path }}/environments/net-single-nic-with-vlans.yaml -e {{ working_dir }}/network-environment.yaml

network_isolation_type in ["single_nic_vlans", "single-nic-vlans"]

-e {{ overcloud_templates_path }}/environments/network-isolation.yaml -e {{ overcloud_templates_path }}/environments/net-bond-with-vlans.yaml -e {{ working_dir }}/network-environment.yaml

network_isolation_type in ["bond_with_vlans", "bond-with-vlans"]

-e {{ overcloud_templates_path }}/environments/network-isolation.yaml -e {{ overcloud_templates_path }}/environments/net-multiple-nics.yaml -e {{ working_dir }}/network-environment.yaml

-e {{ overcloud_templates_path }}/environments/network-isolation-v6.yaml -e {{ overcloud_templates_path }}/environments/net-multiple-nics-v6.yaml -e {{ working_dir }}/network-environment.yaml

-e {{ overcloud_templates_path }}/environments/network-isolation.yaml -e {{ working_dir }}/network-environment.yaml

-e {{ overcloud_templates_path }}/environments/puppet-pacemaker.yaml

{{ deploy_args| regex_replace('^.*--control-scale +([0-9]+).*$', '\1') | regex_replace('^[^ 0-9]+$', '1') }}

{% if topology_map.Controller is defined -%}
{{ topology_map.Controller.scale }}
1

-e {{ overcloud_templates_path }}/environments/cinder-backup.yaml

-e {{ working_dir }}/enable-tls.yaml -e {{ overcloud_templates_path }}/environments/ssl/tls-endpoints-public-ip.yaml

ssl_overcloud|bool or undercloud_generate_service_certificate|bool

-e {{ overcloud_templates_path }}/environments/services/haproxy-public-tls-certmonger.yaml -e {{ overcloud_templates_path }}/environments/ssl/enable-internal-tls.yaml -e {{ overcloud_templates_path }}/environments/ssl/tls-everywhere-endpoints-dns.yaml

-e {{ overcloud_templates_path }}/environments/low-memory-usage.yaml

{% if release in ['pike', 'queens', 'rocky'] %} -e {{ overcloud_templates_path }}/environments/docker.yaml {% endif %} {% if enable_pacemaker|bool or osp_release is defined%} -e {{ overcloud_templates_path }}/environments/docker-ha.yaml {% endif %} {% if release in ['ocata', 'pike', 'queens', 'rocky'] %} -e {{ working_dir }}/containers-default-parameters.yaml {% else %} -e {{ working_dir }}/containers-prepare-parameter.yaml {% endif %} {% if release not in ['pike', 'queens', 'rocky'] %} -e {{ overcloud_templates_path }}/environments/{{ overcloud_container_cli }}.yaml {% endif %}

openstack overcloud roles generate --roles-path {{ overcloud_templates_path }}/roles -o {{ working_dir }}/overcloud_roles.yaml {{ generate_overcloud_roles }}

{{ composable_args }} -e {{ working_dir }}/overcloud_services.yaml

-e {{ overcloud_templates_path }}/environments/deployed-server-environment.yaml {% if release in ['queens', 'rocky', 'stein'] and overcloud_release|default('') in ['queens', 'rocky', 'stein'] %} -e {{ overcloud_templates_path }}/environments/deployed-server-bootstrap-environment-centos.yaml {% endif %} --overcloud-ssh-user {{ undercloud_user }} {% if not undercloud_enable_nova|bool %} --deployed-server {% endif %}

-e {{ overcloud_templates_path }}/environments/deployed-server-environment.yaml {% if release in ['queens', 'rocky', 'stein'] and overcloud_release|default('') in ['queens', 'rocky', 'stein'] %} -e {{ overcloud_templates_path }}/environments/deployed-server-bootstrap-environment-centos.yaml {% endif %} -e {{ working_dir }}/overcloud-baremetal-deployed.yaml --deployed-server

-e {{ overcloud_templates_path }}/environments/services/neutron-ovn-ha.yaml

-e {{ overcloud_templates_path }}/ci/environments/{{ composable_scenario }}

-e {{ overcloud_templates_path }}/environments/enable-swap-partition.yaml

{{ network_args }} -e {{ working_dir }}/overcloud_network_params.yaml

{{ storage_args }} -e {{ working_dir }}/overcloud_storage_params.yaml

{{ ((ci_job_end_time|int - lookup('pipe','date +%s')|int)/60)|int -15 }}

{{ ((ci_job_end_time|int - lookup('pipe','date +%s')|int)/60)|int -5 }}

Network isolation type 'bond_with_vlans' is deprecated in R release, please use 'bond-with-vlans'.

network_isolation_type is defined and network_isolation_type == "bond_with_vlans"

{{ network_environment_args | combine(public_virtual_fixed_ips) }}

network_isolation|bool and undercloud_type != "baremetal" or deployed_server|bool

set -o pipefail && {{ working_dir }}/bond-with-vlans-copy-nic-configs.sh 2>&1 {{ timestamper_cmd }} > {{ bond_with_vlans_nic_configs_log }}

-e {{ overcloud_templates_path }}/environments/docker.yaml -e {{ overcloud_templates_path }}/ci/environments/{{ composable_scenario }}

set -o pipefail && {{ working_dir }}/{{ overcloud_prep_containers_script }} 2>&1 {{ timestamper_cmd }} > {{ overcloud_prep_containers_log }}

set -o pipefail && {{ working_dir }}/overcloud-prep-flavors.sh 2>&1 {{ timestamper_cmd }} > {{ overcloud_prep_flavors_log }}

set -o pipefail && {{ working_dir }}/overcloud-prep-images.sh 2>&1 {{ timestamper_cmd }} > {{ overcloud_prep_images_log }}

set -o pipefail && {{ working_dir }}/overcloud-prep-network.sh 2>&1 {{ timestamper_cmd }} > {{ overcloud_prep_network_log }}

set -eo pipefail
nova list | grep -m 1 {{ node_to_scale }} | sed -e 's/|//g' | awk '{print $1}'

nova list | grep -m 1 {{ node_to_scale }} | sed -e 's/|//g' | awk '{print $2}'

cat {{ working_dir }}/delete-node.sh; set -o pipefail && {{ working_dir }}/delete-node.sh 2>&1 {{ timestamper_cmd }} > delete_node_scale_console.log;

nova list | grep {{ node_to_scale }} | cut -f2- -d':' | wc -l

sed -i '/{{ node_name_to_delete.stdout }}/d' {{ local_working_dir }}/hosts

Overcloud nova list does not show expected number of {{ node_to_scale }} services

{{ scale_args| regex_replace('^.*--control-scale +([0-9]+).*$', '\1') | regex_replace('^[^ 0-9]+$', '1') }}

source {{ working_dir }}/stackrc; set -o pipefail && {{ working_dir }}/scale-deployment.sh 2>&1 {{ timestamper_cmd }} > overcloud_deployment_scale_console.log;

set -o pipefail && {{ working_dir }}/overcloud-create-ssl-cert.sh 2>&1 {{ timestamper_cmd }} > {{ overcloud_ssl_cert_log }}

{%- set names=[] -%} {%- for n in overcloud_nodes -%}
  {%- if names.append(hostvars[n['name']]['inventory_hostname']) -%}{%- endif -%}
{%- endfor -%} {{ names | join('|') }}

while true
do virsh list | grep -E '{{ libvirt_oc_names }}' > /dev/null || break
done

qemu-img commit {{ libvirt_volume_path }}/{{ item.name }}.qcow2

mv {{ libvirt_volume_path }}/{{ item.name }}.qcow2 {{ libvirt_volume_path }}/{{ item.name }}.qcow2.bak
qemu-img create -f qcow2 -b {{ libvirt_volume_path }}/{{ item.name }}.qcow2.bak {{ libvirt_volume_path }}/{{ item.name }}.qcow2

rm {{ libvirt_volume_path }}/{{ item.name }}.qcow2

set -o pipefail && {{ working_dir }}/standalone-container-prep.sh 2>&1 {{ timestamper_cmd }} > {{ working_dir }}/{{ standalone_container_prep_log }}

set -o pipefail && {{ working_dir }}/standalone.sh 2>&1 {{ timestamper_cmd }} > {{ working_dir }}/{{ standalone_deploy_log }}

find $(ls -rtd {{ working_dir }}/undercloud-ansible-* | tail -1)/ -name '*playbook*.yaml'

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

/usr/share/ansible-modules/:{{ lookup('env', 'ANSIBLE_LIBRARY') }}

set -o pipefail && {{ working_dir }}/standalone-container-prep-upgrade.sh 2>&1 {{ timestamper_cmd }} > {{ working_dir }}/{{ standalone_container_prep_log }}

set -o pipefail && {{ working_dir }}/standalone-upgrade.sh 2>&1 {{ timestamper_cmd }} > {{ working_dir }}/{{ standalone_upgrade_log }}

set -o pipefail && {{ working_dir }}/{{ script_name }} 2>&1 {{ timestamper_cmd }} > {{ custom_tht_log }}

{{ val_working_dir }}/run-preintro-validations-negative-tests.sh

awk 'match($0, /nameserver\s+(([0-9]{1,3}.?){4})/,address){ print address[1] }' /etc/resolv.conf

WARNING: The variable undercloud_hieradata_override_file
is deprecated for removal since Pike.
Reason: Both the undercloud and overcloud can use
hieradata overrides and we must distinguish between the two.
The variable will be removed in the "R" release.
Please revise your code to use the new variable,
and file name.

set -o pipefail && {{ working_dir }}/undercloud-install.sh 2>&1 {{ timestamper_cmd }} > {{ undercloud_install_log }}

{%- if podman_ver is success -%} {{ podman_ver.stdout | replace("podman version ", "") }} {%- else -%}0.0 {%- endif -%}

deploy_supplemental_node|bool and not hostvars['supplemental'].freeipa_admin_password|default('')

freeipa_server_hostname is not defined or ( freeipa_server_hostname is defined and freeipa_server_hostname == "" )

overcloud_cloud_domain is not defined or ( overcloud_cloud_domain is defined and overcloud_cloud_domain == "" )

undercloud_undercloud_hostname is not defined or ( undercloud_undercloud_hostname is defined and undercloud_undercloud_hostname == "" )

set -o pipefail && {{ working_dir }}/install_novajoin.sh 2>&1 {{ timestamper_cmd }} > {{ working_dir }}/install_novajoin.sh.log

set -o pipefail && {{ working_dir }}/novajoin_prep.sh 2>&1 {{ timestamper_cmd }} > {{ working_dir }}/novajoin_prep.sh.log

awk -F= '$1 == "undercloud_admin_password" {print $2}' {{ working_dir }}/undercloud-passwords.conf

openstack catalog show heat --format value | grep public | awk -F '/' '{print $5}'

openstack catalog show swift --format value | grep public | awk -F '/' '{print $5}'

set -o pipefail && {{ working_dir }}/minion-install.sh 2>&1 {{ timestamper_cmd }} > {{ minion_install_log }}

fi
atop_location=$(repoquery --repoid=osepel --repofrompath=osepel,$NODEPOOL_EPEL_MIRROR/7/x86_64/ --location atop)
{{ ansible_pkg_mgr }} install -y $atop_location

set -o pipefail && {{ working_dir }}/ovb-undercloud-connectivity.sh 2>&1 {{ timestamper_cmd }} > {{ ovb_undercloud_connectivity_log }}

set -o pipefail && {{ working_dir }}/install_packages.sh 2>&1 {{ timestamper_cmd }} > {{ working_dir }}/install_packages.sh.log

set -o pipefail && timeout --preserve-status 60s {{ working_dir }}/toci_vxlan_networking_multinode.sh 2>&1 {{ timestamper_cmd }} > {{ working_dir }}/toci_vxlan_networking_multinode.sh.log

set -o pipefail && {{ working_dir }}/toci_vxlan_networking.sh 2>&1 {{ timestamper_cmd }} > {{ working_dir }}/toci_vxlan_networking.sh.log

set -o pipefail && {{ working_dir }}/vxlan_networking.sh 2>&1 {{ timestamper_cmd }} > {{ working_dir }}/vxlan_networking.sh.log

set -o pipefail && sudo ip link set dev {{ undercloud_local_interface }} up 2>&1 {{ timestamper_cmd }} >> {{ working_dir }}/vxlan_networking.sh.log

set -o pipefail && sudo ip link set dev {{ undercloud_local_interface }} mtu {{ vxlan_mtu }} 2>&1 {{ timestamper_cmd }} >> {{ working_dir }}/vxlan_networking.sh.log; echo "MTU={{ vxlan_mtu }}" | sudo tee -a /etc/sysconfig/network-scripts/ifcfg-{{ undercloud_local_interface }}

ping -c 6 -W 3 {{ vxlan_networking_addr_prefix }}.2 || (sudo systemctl restart openvswitch && ping -c 6 -W 3 {{ vxlan_networking_addr_prefix }}.2)

set -o pipefail && {{ working_dir }}/validate-overcloud-ipmi-connection.sh 2>&1 {{ timestamper_cmd }} | tee {{ working_dir }}/validate-overcloud-ipmi-connection.log

set -o pipefail && {{ local_working_dir }}/validate_minion_simple.sh | tee {{ validate_minion_simple_log }}

echo "/sys/kernel/debug/x86/{{ item }}: $(cat /sys/kernel/debug/x86/{{ item }})"

set -o pipefail && {{ working_dir }}/validate-sanity-check.sh 2>&1 {{ timestamper_cmd }} > {{ sanity_checks_log }}

systemctl list-units --failed --plain --no-legend --no-pager "tripleo_*"

set -o pipefail && {{ working_dir }}/overcloud-validate.sh 2>&1 {{ timestamper_cmd }} > {{ validate_log }}

{{ working_dir }}/{% if tempest_undercloud %}stackrc{% else %}overcloudrc{% endif %}

{{ tempest_data }}/{% if tempest_undercloud %}stackrc{% else %}overcloudrc{% endif %}

WARNING: The variable test_regex is deprecated and will be removed by end of ROCKY release in the favor of test_white_regex.

source "{{ working_dir }}"/bugcheck/.venv/bin/activate; python bugcheck.py --skip-file "{{ working_dir }}/bugcheck/tempest_skip_{{ release }}.yml" --to-file "{{ working_dir }}/{{ skip_file }}" --format txt

set -o pipefail && {{ working_dir }}/tempest-setup.sh 2>&1 {{ timestamper_cmd }} > {{ tempest_log_file }}

cp -r "{{ working_dir }}/tempest/.stackviz/share/stackviz-html" "{{ working_dir }}/stackviz"

source "{{ working_dir }}/tempest/.stackviz/bin/activate"
stackviz-export {{ tempest_dstat_opt | default('') }} --env -f {{ working_dir }}/tempest/testrepository.subunit {{ working_dir }}/stackviz/data

cp -Rf --reflink=auto /var/lib/tempestdata/tempest {{ working_dir }}

{{ testr_dir.stat.exists | ternary(python_cmd + ' -m stestr.cli', 'testr') }}

set -o pipefail && {% if tempest_format == 'venv' %}source {{ working_dir }}/tempest_git/.venv/bin/activate; {% endif %} {{ testr_command }} last --subunit | subunit-1to2 > {{ working_dir }}/tempest/testrepository.subunit

set -o pipefail &&
{% if tempest_format == 'venv' %}source {{ working_dir }}/tempest_git/.venv/bin/activate; {% endif %}
subunit2html {{ working_dir }}/tempest/testrepository.subunit {{ working_dir }}/tempest/tempest.html

{%- if tempest_format == 'venv' -%}
source {{ working_dir }}/tempest_git/.venv/bin/activate;
{%- endif -%}
subunit2junitxml {{ working_dir }}/tempest/testrepository.subunit --output-to {{ working_dir }}/tempest/tempest.xml 2>&1 >> {{ tempest_log_file }}

{% if lookup('env', 'LOG_PATH') %}LOG_PATH='{{ lookup('env', 'LOG_PATH') }}' {% endif %} ./tempestmail.py -c {{ tempestmail_config }} --job "{{ lookup('env', 'JOB_NAME')|default('Periodic job', true) }}" --file "{{ working_dir }}/{{ tempest_log_file }}" --log-url "{{ tempestmail_log_server }}" --skip-file "{{ working_dir }}/tempestmail/tempest_skip_{{ release }}.yml" || { ERR=$?; echo -e "\0127ARNING: Send tempest results by mail failed with code $ERR"; exit $ERR; }

{% if release == 'newton' %}/usr/share/openstack-tempest-*/tools/configure-tempest-directory{% else %}tempest init {{ tempest_dir }}{% endif %}

{% if release == 'newton' %}{{ tempest_dir }}/tools/config_tempest.py{% else %}/usr/bin/discover-tempest-config{% endif %}

{{ working_dir }}/tempest_git/tools/{% if release == 'newton' %}configure-tempest-directory{% else %}with_venv.sh tempest init{% endif %}

{% if release == 'newton' %}{{ working_dir }}/tools/config_tempest.py{% else %}{{ working_dir }}/tempest_git/tools/with_venv.sh discover-tempest-config{% endif %}

number_of_files=$(ls {{ tobiko_log_dir }} | grep -E "{{ tobiko_log_file_base }}-[0-9]+.log$" -c)
echo $(( $number_of_files + 1 ));

{{ tobiko_log_file_base }}-{{ current_tobiko_log_file_number.stdout }}.log

set -o pipefail && tools/ci/tox -e {{ tobiko_envlist }} {{ tobiko_extra_args }} 2>&1 {{ timestamper_cmd }} > {{ tobiko_log_dir }}/{{ tobiko_log_file }};

set -o pipefail && {{ testr_command }} last --subunit > {{ tobiko_log_dir }}/testrepository.subunit

subunit2html {{ tobiko_log_dir }}/testrepository.subunit {{ tobiko_log_dir }}/{{ tobiko_log_file }}.html

set -o pipefail && {{ local_working_dir }}/ui_validate_simple.sh | tee {{ ui_validate_simple_log }}

set -o pipefail && {{ working_dir }}/undercloud-install.sh 2>&1 {{ timestamper_cmd }} > {{ undercloud_reinstall_log }}

set -o pipefail && {{ working_dir }}/undercloud-sanity-check.sh 2>&1 {{ timestamper_cmd }} > {{ undercloud_sanity_check_log }}

find /var/cache/tripleo-quickstart/images/*  -mtime +3 -exec rm -rf {} \;

rm -rf /var/log/artib; rm -rf /home/oooq-images; rm -rf /var/lib/oooq-images; rm -rf /root/.cache/image-create;

set -euo pipefail; cat /etc/passwd | grep stack | awk -F ':' '{ print $3 }'

yum-complete-transaction; yum clean all; rm -Rfv /var/cache/yum;

yumdb search from_repo rhelosp-*-director* | egrep -v from_repo | grep -v '^$' | tail -n +2 

yumdb search from_repo rhelosp-*-p* | egrep -v from_repo | grep -v '^$' | tail -n +2 

yumdb search from_repo delorean* | egrep -v from_repo | grep -v '^$' | tail -n +2 

The required variable `role_name` is undefined. Check your settings.

ansible-galaxy init --role-skeleton=_skeleton_role_ --init-path=roles/ {{ _role_name }}

---
{% set items = molecule_yaml['content'] | b64decode | from_yaml %}
{% set job_index = [] %}
{% set new_job_name = "tripleo-validations-centos-7-molecule-" ~ _role_name %}
{% for item in items %}
{%   if 'project-template' in item %}
{%     if item['project-template']['name'] == "tripleo-validations-molecule-jobs" %}
{%       if not (new_job_name in item['project-template']['check']['jobs']) %}
{%         set _ = item['project-template']['check']['jobs'].append(new_job_name) %}
{%         set check_jobs = (item['project-template']['check']['jobs'] | sort) %}
{%         set _ = item['project-template']['check'].update({'jobs': check_jobs}) %}
{%       endif %}
{%       if not (new_job_name in item['project-template']['gate']['jobs']) %}
{%         set _ = item['project-template']['gate']['jobs'].append(new_job_name) %}
{%         set gate_jobs = (item['project-template']['gate']['jobs'] | sort) %}
{%         set _ = item['project-template']['gate'].update({'jobs': gate_jobs}) %}
{%       endif %}
{%     endif %}
{%   else %}
{%     if item['job']['name'] == new_job_name %}
{%       set _ = job_index.append(new_job_name) %}
{%     endif %}
{%   endif %}
{% if (job_index | length) < 1 %}
{%   set new_job = {
        "name": new_job_name,
        "parent": "tripleo-validations-centos-7-base",
        "files": [
          "^roles/" ~ _role_name ~ "/.*"
        ],
        "vars": {
          "tripleo_validations_role_name": _role_name
        }
      }
%}
{%   set _ = items.append({"job": new_job}) %}
{% endif %}
{{ items | to_nice_yaml(indent=2, width=1337) }}

---
- hosts: undercloud
  vars:
    metadata:
      name: The Validation name goes here
      description: >-
        Write a description of your validations
      groups:
        - no-op
        - prep
        - pre-introspection
        - post-introspection
        - openshift-on-openstack
        - pre-upgrade
        - post-upgrade
        - pre-ceph
        - post-ceph
    {{ role_name | replace('-', '_') }}_debug: false
  roles:
    - {{ role_name }}

{% set opening = 'Role - ' ~ _role_name %}
{{ '=' * (opening | length) }}
{{ opening }}

.. ansibleautoplugin::
  :role: roles/{{ _role_name }}

'{{ panko_config_file }}[database]/{{ event_ttl_check }}' is set to -1 or not set

If planning to use Ceph, it is necessary to install the ceph-ansible package on the undercloud

Make sure ceph-ansible package is installed from {{ ceph_ansible_repo }}

(repo.stdout | length == 0 or repo.stdout != "{{ ceph_ansible_repo }}")

If planning to use Ceph, it is necessary to install {{ item[0] }} package

{{ lookup('config', 'DEFAULT_HASH_BEHAVIOUR', on_missing='skip')|default('replace') }}

In order to simulate Tripleo Heat Template behavior this role requires
that it be run with Ansible's hash_behaviour set to merge. Please
re-run with 'export ANSIBLE_HASH_BEHAVIOUR=merge'"

{{ parameter_defaults['CinderBackupRbdPoolName']|default('backups') }}

{{ parameter_defaults['CinderRbdPoolName']|default('volumes') }}

{{ parameter_defaults['GnocchiRbdPoolName']|default('metrics') }}

{{ ceph_pools | default([]) + [dict(name=item, application='rbd') ] }}

{{ parameter_defaults['ManilaCephFSDataPoolName']|default('manila_data') }}

{{ parameter_defaults['ManilaCephFSDataPoolPGNum']|default(128) }}

{{ parameter_defaults['ManilaCephFSMetadataPoolPGNum']|default(128) }}

resource_registry['OS::TripleO::Services::ManilaBackendCephFs'] is defined

{{ ceph_pools | default([]) + [dict(name=item, application='rgw') ] }}

resource_registry['OS::TripleO::Services::CephRgw'] != 'OS::Heat::None'

The check_latest_packages_version role should have detected
that packages have available updates.

A newer version of the {{ item.name }} package is available: {{ item.new_version }}-{{ item.new_release }} (currently {{ item.current_version }}-{{ item.current_release }})

[DEFAULT]
local_subnet = 192.168.254.0/24
[192.168.254.0/24]
gateway = 8.8.8.8

The check_network_gateway validation didn't properly detect faulty
gateway!

:backends:
  - yaml
:yaml:
  :datadir: "/etc/puppet/"
:hierarchy:
  - "common"

{{ running_containers | difference(docker.containers_filtered | map(attribute='name') | list) }}

{{ hostvars[inventory_hostname].container_cli | default('podman', true) }}

{% if oc_container_cli is defined %}{{ oc_container_cli }}{% else %}{{ uc_container_cli }}{% endif %} {% raw %} ps -a --filter 'status=exited' --format '{{ .Names }} {{ .Status }}' {% endraw %}

nofiles is set to {{ nofilesval.stdout }}.  It should be at least {{ nofiles_min }} or higher, depending on available resources.

nproc is set to {{ nprocval.stdout }}.  It should be at least {{ nproc_min }} or higher, depending on available resources.

  - yaml
  - json
:yaml:
  - "common"

The ctlplane-ip-range validation didn't properly detect too short
range!

{{ lookup('ironic_nodes', 'provision_state', ['available'], wantlist=True) }}

{{ ((associated_nodes|length) + (available_nodes|length))|int }}

Not enough baremetal nodes - available: {{ available_count }}, requested: {{ requested_count }}

Only {{ statistics.count }} nodes are exposed to Nova of {{ available_count }} requests. Check that enough nodes are in 'available' state with maintenance mode off.

# This file managed by Puppet
global
  daemon
  group  haproxy
  log  /dev/log local0
  maxconn  100
  pidfile  /var/run/haproxy.pid
  ssl-default-bind-ciphers  !SSLv2:kEECDH:kRSA:kEDH:kPSK:+3DES:!aNULL:!eNULL:!MD5:!EXP:!RC4:!SEED:!IDEA:!DES
  ssl-default-bind-options  no-sslv3 no-tlsv10
  stats  socket /var/lib/haproxy/stats mode 600 level user
  stats  timeout 1s
  user  haproxy

defaults
  log  global
  mode  tcp
  retries  1
  timeout  http-request 1s
  timeout  queue 1s
  timeout  connect 1s
  timeout  client 1s
  timeout  server 1s
  timeout  check 1s

The haproxy role should have detected issues within haproxy
configuration file!

The 'global maxconn' value '{{ haproxy_conf.global.maxconn }}' must be greater than {{ global_maxconn_min }}

The 'defaults maxconn' value '{{ haproxy_conf.defaults.maxconn }}' must be greater than {{ defaults_maxconn_min }}

The 'timeout queue' option in 'defaults' is '{{ haproxy_conf.defaults['timeout queue'] }}', but must be set to {{ defaults_timeout_queue }}

haproxy_conf.defaults['timeout queue'] != defaults_timeout_queue

The 'timeout client' option in 'defaults' is '{{ haproxy_conf.defaults['timeout client'] }}', but must be set to {{ defaults_timeout_client }}

haproxy_conf.defaults['timeout client'] != defaults_timeout_client

The 'timeout server' option in 'defaults' is '{{ haproxy_conf.defaults['timeout server'] }}', but must be set to {{ defaults_timeout_server }}

haproxy_conf.defaults['timeout server'] != defaults_timeout_server

The 'timeout check' option in 'defaults' is '{{ haproxy_conf.defaults['timeout check'] }}', but must be set to {{ defaults_timeout_check }}

haproxy_conf.defaults['timeout check'] != defaults_timeout_check

systemctl list-unit-files | grep "^tripleo.*healthcheck.*enabled" | awk -F'.' '{print $1}'

{%- if inflight_healthcheck_services | length > 0 -%}
  {{ inflight_healthcheck_services }}
  {{ healthcheck_services_list.stdout_lines }}

The image_serve role should have detected httpd wasn't running or
index.json is absent.

"{{ container_cli|default('podman', true) }}" exec -u root $("{{ container_cli|default('podman', true) }}" ps -q --filter "name=mysql|galera-bundle" | head -1) /bin/bash -c 'ulimit -n'

The open_files_limit option for mysql must be higher than {{ min_open_files_limit }}. Right now it's {{ mysqld_open_files_limit.stdout }}.

{% if oc_container_cli is defined %}{{ oc_container_cli }}{% else %}{{ uc_container_cli }}{% endif %} exec -u root {{ container_name }} /bin/bash -c 'neutron-sanity-check --config-file {{ item }}'

{{ nsc_return.results | sum(attribute='stderr_lines', start=[]) | select('search', '(ERROR)') | list | length | int > 0 }}

{{ nsc_return.results | sum(attribute='stderr_lines', start=[]) | select('search', '(WARNING)') | list | length | int > 0 }}

{{ nsc_return.results | sum(attribute='stderr_lines', start=[]) | select('search', '(ERROR|WARNING)') | list }}

{{ ping_results.results | selectattr('failed', 'equalto', True) | map(attribute='item') | list }}

{{ lookup('nova_servers', 'ip', 'ctlplane', failed_ips, wantlist=True) }}

{{ lookup('ironic_nodes', 'instance_uuid', server_ids, wantlist=True) }}

{{ lookup('template', './templates/unreachable_nodes.j2',
template_vars=dict(nodes=nodes)) }}

(item.item == vif_plugging_fatal_check and (not item.value|bool or None)) or (item.item == vif_plugging_timeout_check and (item.value|int <= vif_plugging_timeout_value_min|int or None))

hiera -c /etc/puppet/hiera.yaml neutron::server::notifications::auth_url

[nova]/auth_url from {{ neutron_config_file }} is set to {{ neutron_auth_url_result.value or 'None' }} but it should be set to {{ auth_url.stdout }}.

[nova]/tenant_name from {{ neutron_config_file }} is set to {{ neutron_tenant_name_result.value or 'None' }} but it should be set to 'service'.

The nova_status validation didn't properly detect bad upgrade
status check!

action="$1"
shift
container="$3"
shift
command="$@"

case $container in
  'heat_api_cron')
    echo '# This is a comment that should be ignored'
    echo '0 12 14 2 * heat-manage purge_deleted'
    ;;
  'keystone_cron')
    echo '0 12 14 2 * keystone-manage token_flush'
    ;;
  'nova_api')
    exit 0
    ;;
  *)
    echo "Unknown container ${container}"
    ;;
esac

shift
shift

    echo '0 12 14 2 * some-other command'
    ;;
    ;;
    exit 2
    ;;
  *)
    ;;
esac

{{ container_cli }} exec -u root nova_api nova-status upgrade check

There was an upgrade status check failure that needs to be investigated.
This should be considered something that stops an upgrade.

This is a no-op action for testing that the validations framework runs

nova_url="{{ keystone_result.json.token | json_query("catalog[?name=='nova'].endpoints") | first | selectattr('interface', 'equalto', 'public') | map(attribute='url') | first }}"

glance_url="{{ keystone_result.json.token | json_query("catalog[?name=='glance'].endpoints") | first | selectattr('interface', 'equalto', 'public') | map(attribute='url') | first }}"

{{ flavors_result_prod.json.flavors | selectattr('vcpus', 'ge', 4) | list | length > 0 }}

hv_stats.disk_available_least >= min_total_disk_testing and hv_stats.free_ram_mb >= min_total_ram_testing and hv_stats.vcpus - hv_stats.vcpus_used >= min_total_vcpus_testing

hv_stats.disk_available_least >= min_total_disk_prod and hv_stats.free_ram_mb >= min_total_ram_prod and hv_stats.vcpus - hv_stats.vcpus_used >= min_total_vcpus_prod

{{ images.json.images | map(attribute='name') | map('lower') | select('search', '(centos|rhel)') | list | length | int > 0 }}

{{ lookup('template', './templates/openshift-hw-requirements-warnings.j2') }}

not matching_flavors_testing or not matching_image or not resource_reqs_testing

neutron_url="{{ keystone_result.json.token | json_query("catalog[?name=='neutron'].endpoints") | first | selectattr('interface', 'equalto', 'public') | map(attribute='url') | first }}"

"The `HorizonPublic` endpoint is not defined in the `EndpointMap` of the deployed stack. This means Horizon may not have been deployed correctly."

"The `KeystoneURL` output is not available in the deployed stack."

ovs-vsctl --no-wait get Open_vSwitch . other_config:pmd-cpu-mask

The rabbitmq_limits validation didn't properly detect bad rabbitmq
setting!

shift
container="$1"
shift

case $action in
  'exec')
    case $container in
      'heat_api_cron')
        echo '# This is a comment that should be ignored'
        echo '0 12 14 2 * heat-manage purge_deleted'
        ;;
      'keystone_cron')
        echo '0 12 14 2 * keystone-manage token_flush'
        ;;
      'rabbitmq')
        echo 16484
        ;;
      *)
        echo "Unknown container ${container}"
        ;;
    esac
    ;;
  'ps')
    (echo "$@" | grep -q 'name=rabbitmq') && echo 'rabbitmq'
    ;;
  *)
    echo "Unknown action ${action}"
    ;;
esac

shift
shift

  'exec')
        echo '0 12 14 2 * some-other command'
        ;;
        ;;
        echo 1
        ;;
      *)
        ;;
    esac
    ;;
  'ps')
    (echo "$@" | grep -q 'name=rabbitmq') && echo rabbitmq
    ;;
esac

{{ hostvars[inventory_hostname].container_cli |default('podman', true) }}

"{{ container_cli }}" exec $("{{ container_cli }}" ps -q --filter "name=rabbitmq" | head -1) rabbitmqctl eval 'proplists:get_value(max_fds, erlang:system_info(check_io)).'

{{ actual_fd_limit.stdout }} must be greater than or equal to {{ min_fd_limit }}

The repos validation failed detecting broken/non-working repository

One or more repositories are either broken or unreachable. Please correct.

repositories.stdout is regex('(cannot|could not|failure)', ignorecase=True)

echo "{{ repositories.stdout }}" | grep Repo-id | sed "s/Repo-id.*://" | tr -d " "

#!/bin/sh
echo 'thirsty_goldwasser Exited (0) 12 seconds ago'
echo 'fedora28 Exited (255) 7 hours ago'
echo 'centos7 Exited (255) 7 hours ago'

[Unit]
Wants=
Requires=

[Service]
Type=simple
ExecStart=/usr/bin/fake
Restart=

[Unit]

[Service]
ExecStart=/usr/bin/false

The stonith_exists validation didn't properly detect failed
stonith config

pcs_cluster_status.rc == 0 and 'NO stonith devices configured' in stonith_devices.stdout

For the undercloud, you need to set the 'undercloud_nameservers' configuration parameter

Make sure that the relevant 'search' entry is in /etc/resolv.conf

skipped {{ ansible_hostname }} firewall checks because DNS wasn't set correctly.

The host {{ ansible_host }} is missing the file /etc/ipa/default.conf

If there were enrollment issues, you'll see them in /var/log/ipaclient-install.log

The host {{ ansible_host }} is missing the file /etc/krb5.keytab

alternatively, you can request the keytab for this host with the ipa-getkeytab command

You might have overwritten the keytab. Re-enroll or request the keytab using ipa-getkeytab

skipped checking for the principal in the host's {{ ansible_host }} because there is no keytab file

skipped checking if the principal is usable for host {{ ansible_host }} because there is no keytab file

The principal {{ host_principal }} is usable to obtain a kerberos ticket

The principal {{ host_principal }} is unable to obtain a kerberos ticket

Please add the 'OS::TripleO::Services::CertmongerUser' service to all of your TripleO roles.

getcert list | grep 'Request ID' | sed "s/Request ID '\(.*\)':/\1/"

getcert list -i {{ certname }} | grep "status:" | sed "s/^\s*//"

The following certificates are not in a healthy status: {{ failed_certs | join(", ") }}

Log into this host and do 'getcert list -i <cert name>' to verify the failure reason

Verify that the service principal of the certificate is present in IdM/FreeIPA for this host

{{ command_prefix }} exec novajoin_server test -e /etc/novajoin/join.conf

undercloud_nameservers.value | length > 0 and undercloud_nameservers.value != []

Please set the 'undercloud_nameservers' parameter to point to IdM/FreeIPA in undercloud.conf

The undercloud_cpu role should have detected that there is not
enough CPU

There are {{ ansible_processor_vcpus }} cores in the system, but there should be at least {{ min_undercloud_cpu_count }}

The undercloud_debug should have detected a configuration issue

Minimum free space required for {{ item.item.mount }}: {{ item.item.min_size }}G - current free space: {{ (item.stdout|int / const_bytes_in_gb|int) |round(1) }}G

item.stdout|int / const_bytes_in_gb|int < item.item.min_size|int

The undercloud_heat_purge_deleted validation failed to detect
missing cron job.

shift
shift

    ;;
  *)
    ;;
esac

shift
shift

    ;;
  *)
    ;;
esac

{{ container_cli.value|default('podman', true) }} exec heat_api_cron crontab -l -u heat |grep -v '^#'

heat-manage purge_deleted does not appear to be enabled via cron. You should add '<desired interval> heat-manage purge_deleted' to the heat users crontab.

{{ container_cli.value|default('podman', true) }} exec {{ item.container }} pgrep -f -c {{ item.proc }}

echo "There are {{ item.stdout }} {{ item.item }} processes running. Having more than {{ max_process_count }} risks running out of memory."

The undercloud_ram role should have detected that there is not
enough RAM

The RAM on the undercloud node is {{ ansible_memtotal_mb }} MB, the minimal recommended value is {{ min_undercloud_ram_gb|int * 1024 }} MB.

SELinux is running in {{ sestatus.stdout }} mode on the Undercloud. Ensure that SELinux is enabled and running in Enforcing mode.

One of the undercloud services was not active. Please check {{ item.item }} first and then confirm the status of undercloud services in general before attempting to update or upgrade the environment.

The undercloud_tokenflush validation failed to detect

  - yaml
:yaml:
  - "common"
  - "service_configs"

shift
shift

    ;;
    ;;
  *)
    ;;
esac

shift
shift

    ;;
    ;;
  *)
    ;;
esac

  - yaml
:yaml:

Skipping token flush validation since you are using a non-persistent token format ({{ ansible_facts['keystone::token_provider'] }}). You do not need a separate keystone_cron container to periodically prune tokens from keystone's database.

ansible_facts['keystone::token_provider'] == 'fernet' or ansible_facts['keystone::token_provider'] == 'jws'

type=SERVICE_START msg=audit(1575877870.934:286): pid=1 uid=0 auid=4294967295 ses=4294967295 subj=system_u:system_r:init_t:s0 msg='unit=sssd-kcm comm="systemd" exe="/usr/lib/systemd/systemd" hostname=? addr=? terminal=? res=success'UID="root" AUID="unset"
type=SERVICE_STOP msg=audit(1575878320.981:287): pid=1 uid=0 auid=4294967295 ses=4294967295 subj=system_u:system_r:init_t:s0 msg='unit=sssd-kcm comm="systemd" exe="/usr/lib/systemd/systemd" hostname=? addr=? terminal=? res=success'UID="root" AUID="unset"
type=USER_ACCT msg=audit(1575878471.739:288): pid=4430 uid=0 auid=4294967295 ses=4294967295 subj=system_u:system_r:system_cronjob_t:s0-s0:c0.c1023 msg='op=PAM:accounting grantors=pam_unix,pam_localuser acct="root" exe="/usr/bin/sudo" hostname=? addr=? terminal=? res=success'UID="root" AUID="unset"
type=USER_CMD msg=audit(1575878471.740:289): pid=4430 uid=0 auid=4294967295 ses=4294967295 subj=system_u:system_r:system_cronjob_t:s0-s0:c0.c1023 msg='cwd="/root" cmd=626F7267202D2D696E666F20637265617465202D2D636F6D7072657373696F6E206C7A34202D2D6578636C7564652D636163686573202D2D6578636C756465202A2F2A2E6C6F636B202D2D6578636C756465202A2F2E746F78202D2D6578636C756465202A2F2E737465737472202D2D6578636C756465202A2F727562792D76656E646F72202D2D6578636C756465202A2F7A75756C2F202D2D6578636C756465202A2F73736866732F202D2D6578636C756465202A2F2E6C6F63616C2F7368617265202F6D656469612F6261636B7570732F7268656C3A3A31306130393963382D316135612D313165612D613663622D386331363435366466626265202F686F6D652F636A65616E6E6572 exe="/usr/bin/sudo" terminal=? res=success'UID="root" AUID="unset"
type=USER_ACCT msg=audit(1575878554.296:294): pid=4445 uid=0 auid=4294967295 ses=4294967295 subj=system_u:system_r:system_cronjob_t:s0-s0:c0.c1023 msg='op=PAM:accounting grantors=pam_unix,pam_localuser acct="root" exe="/usr/bin/sudo" hostname=? addr=? terminal=? res=success'UID="root" AUID="unset"
type=USER_CMD msg=audit(1575878554.296:295): pid=4445 uid=0 auid=4294967295 ses=4294967295 subj=system_u:system_r:system_cronjob_t:s0-s0:c0.c1023 msg='cwd="/root" cmd=626F7267206C697374202F6D656469612F6261636B7570732F7268656C exe="/usr/bin/sudo" terminal=? res=success'UID="root" AUID="unset"
type=USER_ACCT msg=audit(1575878555.032:300): pid=4449 uid=0 auid=4294967295 ses=4294967295 subj=system_u:system_r:system_cronjob_t:s0-s0:c0.c1023 msg='op=PAM:accounting grantors=pam_unix,pam_localuser acct="root" exe="/usr/bin/sudo" hostname=? addr=? terminal=? res=success'UID="root" AUID="unset"
type=USER_CMD msg=audit(1575878555.032:301): pid=4449 uid=0 auid=4294967295 ses=4294967295 subj=system_u:system_r:system_cronjob_t:s0-s0:c0.c1023 msg='cwd="/root" cmd=626F7267207072756E65202D70202D2D6B6565702D77697468696E203277202D2D7374617473202F6D656469612F6261636B7570732F7268656C exe="/usr/bin/sudo" terminal=? res=success'UID="root" AUID="unset"
type=SERVICE_START msg=audit(1575878869.915:306): pid=1 uid=0 auid=4294967295 ses=4294967295 subj=system_u:system_r:init_t:s0 msg='unit=fprintd comm="systemd" exe="/usr/lib/systemd/systemd" hostname=? addr=? terminal=? res=success'UID="root" AUID="unset"
type=SERVICE_STOP msg=audit(1575878900.615:312): pid=1 uid=0 auid=4294967295 ses=4294967295 subj=system_u:system_r:init_t:s0 msg='unit=fprintd comm="systemd" exe="/usr/lib/systemd/systemd" hostname=? addr=? terminal=? res=success'UID="root" AUID="unset"

type=AVC msg=audit(1575534183.234:4933): avc:  denied  { write } for  pid=11266 comm="iptables" path="pipe:[231496]" dev="pipefs" ino=231496 scontext=system_u:system_r:iptables_t:s0 tcontext=system_u:system_r:certmonger_t:s0 tclass=fifo_file permissive=1
type=AVC msg=audit(1575534183.342:4934): avc:  denied  { write } for  pid=11284 comm="iptables" path="pipe:[231496]" dev="pipefs" ino=231496 scontext=system_u:system_r:iptables_t:s0 tcontext=system_u:system_r:certmonger_t:s0 tclass=fifo_file permissive=1
type=USER_AVC msg=audit(1575535009.861:5275): pid=1397 uid=81 auid=4294967295 ses=4294967295 subj=system_u:system_r:system_dbusd_t:s0-s0:c0.c1023 msg='avc:  denied  { send_msg } for msgtype=method_call interface=org.freedesktop.DBus member=Hello dest=org.freedesktop.DBus spid=38869 scontext=system_u:system_r:container_t:s0:c313,c573 tcontext=system_u:system_r:system_dbusd_t:s0-s0:c0.c1023 tclass=dbus permissive=1  exe="/usr/bin/dbus-daemon" sauid=81 hostname=? addr=? terminal=?'UID="dbus" AUID="unset" SAUID="dbus"
type=USER_AVC msg=audit(1575535009.861:5276): pid=1397 uid=81 auid=4294967295 ses=4294967295 subj=system_u:system_r:system_dbusd_t:s0-s0:c0.c1023 msg='avc:  denied  { send_msg } for msgtype=method_call interface=org.freedesktop.systemd1.Manager member=GetDynamicUsers dest=org.freedesktop.systemd1 spid=38869 tpid=1 scontext=system_u:system_r:container_t:s0:c313,c573 tcontext=system_u:system_r:init_t:s0 tclass=dbus permissive=1  exe="/usr/bin/dbus-daemon" sauid=81 hostname=? addr=? terminal=?'UID="dbus" AUID="unset" SAUID="dbus"
type=USER_AVC msg=audit(1575535009.862:5277): pid=1397 uid=81 auid=4294967295 ses=4294967295 subj=system_u:system_r:system_dbusd_t:s0-s0:c0.c1023 msg='avc:  denied  { send_msg } for msgtype=method_return dest=:1.1198 spid=1 tpid=38869 scontext=system_u:system_r:init_t:s0 tcontext=system_u:system_r:container_t:s0:c313,c573 tclass=dbus permissive=1  exe="/usr/bin/dbus-daemon" sauid=81 hostname=? addr=? terminal=?'UID="dbus" AUID="unset" SAUID="dbus"
type=USER_AVC msg=audit(1575535013.340:5290): pid=1397 uid=81 auid=4294967295 ses=4294967295 subj=system_u:system_r:system_dbusd_t:s0-s0:c0.c1023 msg='avc:  denied  { send_msg } for msgtype=method_call interface=org.freedesktop.DBus member=Hello dest=org.freedesktop.DBus spid=39132 scontext=system_u:system_r:container_t:s0:c192,c917 tcontext=system_u:system_r:system_dbusd_t:s0-s0:c0.c1023 tclass=dbus permissive=1  exe="/usr/bin/dbus-daemon" sauid=81 hostname=? addr=? terminal=?'UID="dbus" AUID="unset" SAUID="dbus"
type=USER_AVC msg=audit(1575535013.341:5291): pid=1397 uid=81 auid=4294967295 ses=4294967295 subj=system_u:system_r:system_dbusd_t:s0-s0:c0.c1023 msg='avc:  denied  { send_msg } for msgtype=method_call interface=org.freedesktop.systemd1.Manager member=GetDynamicUsers dest=org.freedesktop.systemd1 spid=39132 tpid=1 scontext=system_u:system_r:container_t:s0:c192,c917 tcontext=system_u:system_r:init_t:s0 tclass=dbus permissive=1  exe="/usr/bin/dbus-daemon" sauid=81 hostname=? addr=? terminal=?'UID="dbus" AUID="unset" SAUID="dbus"
type=USER_AVC msg=audit(1575535013.342:5292): pid=1397 uid=81 auid=4294967295 ses=4294967295 subj=system_u:system_r:system_dbusd_t:s0-s0:c0.c1023 msg='avc:  denied  { send_msg } for msgtype=method_return dest=:1.1209 spid=1 tpid=39132 scontext=system_u:system_r:init_t:s0 tcontext=system_u:system_r:container_t:s0:c192,c917 tclass=dbus permissive=1  exe="/usr/bin/dbus-daemon" sauid=81 hostname=? addr=? terminal=?'UID="dbus" AUID="unset" SAUID="dbus"
type=USER_AVC msg=audit(1575535028.912:5307): pid=1397 uid=81 auid=4294967295 ses=4294967295 subj=system_u:system_r:system_dbusd_t:s0-s0:c0.c1023 msg='avc:  denied  { send_msg } for msgtype=method_call interface=org.freedesktop.DBus member=Hello dest=org.freedesktop.DBus spid=39430 scontext=system_u:system_r:container_t:s0:c776,c848 tcontext=system_u:system_r:system_dbusd_t:s0-s0:c0.c1023 tclass=dbus permissive=1  exe="/usr/bin/dbus-daemon" sauid=81 hostname=? addr=? terminal=?'UID="dbus" AUID="unset" SAUID="dbus"
type=USER_AVC msg=audit(1575535028.913:5308): pid=1397 uid=81 auid=4294967295 ses=4294967295 subj=system_u:system_r:system_dbusd_t:s0-s0:c0.c1023 msg='avc:  denied  { send_msg } for msgtype=method_call interface=org.freedesktop.systemd1.Manager member=GetDynamicUsers dest=org.freedesktop.systemd1 spid=39430 tpid=1 scontext=system_u:system_r:container_t:s0:c776,c848 tcontext=system_u:system_r:init_t:s0 tclass=dbus permissive=1  exe="/usr/bin/dbus-daemon" sauid=81 hostname=? addr=? terminal=?'UID="dbus" AUID="unset" SAUID="dbus"

grep denied {{ validate_selinux_audit_source }} > /tmp/denials.log

for dev in $(df -h | grep '/dev/' | grep -v 'tmp' | cut -d' ' -f1)
do
  parseftype=$(xfs_info $dev | grep ftype=0);
  if [[ ! -z "$parseftype" ]]; then
    ftype="ftype=0";
    break;
  fi
done
echo $ftype;

XFS volumes formatted using ftype=0 are incompatible with the docker overlayfs driver. Run xfs_info on {{ ansible_fqdn }} and fix those volumes before proceeding with the upgrade.

The variable `ansible_user` set this option and try again. On the CLI this can be defined with "-e ansible_user=${USER}"

The variable `ansible_user_dir` set this option and try again. On the CLI this can be defined with "-e ansible_user_dir=${HOME}"

. {{ ansible_user_dir }}/test-python/bin/activate
{{ ansible_user_dir }}/{{ zuul.project.src_dir }}/scripts/bindep-install

. {{ ansible_user_dir }}/{{ zuul.project.src_dir }}/ansible-test-env.rc
pytest --color=no \
       --html={{ ansible_user_dir }}/zuul-output/logs/reports.html \
       --self-contained-html \
       --ansible-args='{{ tripleo_job_ansible_args | default("") }}' \
       {{ ansible_user_dir }}/{{ zuul.project.src_dir }}/tests/test_molecule.py

{{ ansible_user_dir }}/{{ zuul.project.src_dir }}/roles/{{ tripleo_validations_role_name }}

/usr/share/elasticsearch/bin/elasticsearch-certutil cert ca --pem --in {{ node_certs_source }}/instances.yml --out {{ node_certs_source }}/certs.zip

/usr/share/elasticsearch/bin/elasticsearch-certutil cert --ca-key {{ node_certs_source }}/{{ ca_key_name }} --ca-cert {{ node_certs_source }}/{{ ca_cert_name }} --pem --in {{ node_certs_source }}/instances.yml --out {{ node_certs_source }}/certs.zip

/usr/share/elasticsearch/bin/elasticsearch-certutil cert --ca-key {{ node_certs_source }}/{{ ca_key_name }} --ca-cert {{ node_certs_source }}/{{ ca_cert_name }} --pem --in {{ node_certs_source }}/instances.yml --out {{ node_certs_source }}/certs.zip --ca-pass {{ ca_password }}

{{ master_certs_path }}/{{ elasticsearch_node_name }}/{{ elasticsearch_node_name }}.key

{{ master_certs_path }}/{{ elasticsearch_node_name }}/{{ elasticsearch_node_name }}.crt

echo {{ elasticsearch_xpack_security_password }} | {{ node_certs_source }}/bin/elasticsearch-keystore add -xf bootstrap.password

git clone https://github.com/wazuh/wazuh-kibana-app -b {{ wazuh_plugin_branch }} --single-branch --depth=1 app

/usr/share/kibana/bin/kibana-plugin install file:///tmp/app/build/{{ wazuhapp_package_name.stdout }}

It's not possible to compile the Wazuh Kibana plugin on Debian 10 due to: https://github.com/wazuh/wazuh-kibana-app/issues/1924

{{ master_certs_path }}/{{ kibana_node_name }}/{{ kibana_node_name }}.key

{{ master_certs_path }}/{{ kibana_node_name }}/{{ kibana_node_name }}.crt

grep -c -E 'version.*{{ elastic_stack_version }}' /usr/share/kibana/plugins/wazuh/package.json

/usr/share/kibana/bin/kibana-plugin install {{ wazuh_app_url }}-{{ wazuh_version }}_{{ elastic_stack_version }}.zip

{{ master_certs_path }}/{{ filebeat_node_name }}/{{ filebeat_node_name }}.key

{{ master_certs_path }}/{{ filebeat_node_name }}/{{ filebeat_node_name }}.crt

dest={{ filebeat_module_folder }} mode=u=rwX,g=rwX,o=rwX recurse=yes

{{ filebeat_module_package_path }}/{{ filebeat_module_package_name }}

curl -s https://packages.wazuh.com/key/GPG-KEY-WAZUH | apt-key add -

dpkg --compare-versions '{{ openscap_version.stdout }}' '>=' '1.2'; echo $?

tar -xzvf /tmp/{{ wazuh_agent_sources_installation.branch }}.tar.gz --strip 1 --directory /tmp/wazuh-{{ wazuh_agent_sources_installation.branch }}

/tmp/wazuh-{{ wazuh_agent_sources_installation.branch }}/etc/preloaded-vars.conf

/var/ossec/wodles/vuls/deploy_vuls.sh {{ ansible_distribution|lower }} {{ ansible_distribution_major_version|int }}

ansible_distribution in ['Redhat', 'CentOS', 'Ubuntu', 'Debian', 'Oracle']

src=var-ossec-etc-ossec-agent.conf.j2 dest=/var/ossec/etc/ossec.conf owner=root group=ossec mode=0644

src=var-ossec-etc-local-internal-options.conf.j2 dest=/var/ossec/etc/local_internal_options.conf owner=root group=ossec mode=0640

ansible_os_family == "RedHat" and ansible_distribution_major_version == "5"

ansible_os_family == "RedHat" and ansible_distribution_major_version == "6"

not wazuh_manager_sources_installation.enabled or not wazuh_api_sources_installation.enabled

not wazuh_custom_packages_installation_manager_enabled or not wazuh_custom_packages_installation_api_enabled

openssl req -x509 -sha256 -nodes -days 365 -newkey rsa:1825 -keyout sslmanager.key -out sslmanager.cert -subj /CN={{ wazuh_manager_fqdn }}/

src=var-ossec-rules-local_rules.xml.j2 dest=/var/ossec/etc/rules/local_rules.xml owner=root group=ossec mode=0640

src="{{ wazuh_manager_config.ruleset.rules_path }}" dest=/var/ossec/etc/rules/ owner=root group=ossec mode=0640

src=var-ossec-rules-local_decoder.xml.j2 dest=/var/ossec/etc/decoders/local_decoder.xml owner=root group=ossec mode=0640

src="{{ wazuh_manager_config.ruleset.decoders_path }}" dest=/var/ossec/etc/decoders/ owner=root group=ossec mode=0640

src=var-ossec-api-configuration-config.js.j2 dest=/var/ossec/api/configuration/config.js owner=root group=ossec mode=0740

"grep -c 'ossec-csyslogd' /var/ossec/bin/.process_list | xargs echo"

csyslog_enabled.stdout == '0' or "skipped" in csyslog_enabled.stdout

"grep -c 'ossec-agentlessd' /var/ossec/bin/.process_list | xargs echo"

agentlessd_enabled.stdout == '0' or "skipped" in agentlessd_enabled.stdout

ansible_distribution in ['Redhat', 'CentOS', 'Ubuntu', 'Debian', 'Oracle', 'Amazon']

src=var-ossec-etc-ossec-server.conf.j2 dest=/var/ossec/etc/ossec.conf owner=root group=ossec mode=0644

/usr/bin/base64 /var/ossec/agentless/.passlist_tmp > /var/ossec/agentless/.passlist && rm /var/ossec/agentless/.passlist_tmp

ansible_distribution == 'RedHat' and  ansible_distribution_major_version == '6'

ansible_os_family == "RedHat" and ansible_distribution_major_version == '5'

ansible_os_family == "RedHat" and ansible_distribution_major_version == '6'

ansible_os_family == "RedHat" and ansible_distribution_major_version == '7'

ansible_distribution == "Amazon" and ansible_distribution_major_version == "NA"

Enable, disable, and set weights for HAProxy backend servers using socket commands

keepalived haproxy Enable, disable, and set weights for HAProxy backend servers using socket commands

started/stopped are idempotent actions that will not run commands unless necessary.restarted will always bounce the service.reloaded will always reload.At least one of state and enabled are required.Note that reloaded will start the service if it is not already started, even if your chosen init system wouldn't normally.

If absent, directories will be recursively deleted, and files or symlinks will be unlinked. In the case of a directory, if diff is declared, you will see the files and folders deleted listed under path_contents. Note that absent will not cause file to fail if the path does not exist as the state did not change.If directory, all intermediate subdirectories will be created if they do not exist. Since Ansible 1.7 they will be created with the supplied permissions.If file, without any other options this works mostly as a 'stat' and will return the current state of path. Even with other options (i.e mode), the file will be modified but will NOT be created if it does not exist; see the touch value or the copy or template module if you want that behavior.If hard, the hard link will be created or changed.If link, the symbolic link will be created or changed.If touch (new in 1.4), an empty file will be created if the path does not exist, while an existing file or directory will receive updated file access and modification times (similar to the way touch works from the command line).

Path of a Jinja2 formatted template on the Ansible controller.This can be a relative or an absolute path.The file must be encoded with utf-8 but output_encoding can be used to control the encoding of the output template.

Name of the user that should own the file/directory, as would be fed to chown.

Name of the group that should own the file/directory, as would be fed to chown.

The permissions the resulting file or directory should have.For those used to /usr/bin/chmod remember that modes are actually octal numbers. You must either add a leading zero so that Ansible's YAML parser knows it is an octal number (like 0644 or 01777) or quote it (like '644' or '1777') so Ansible receives a string and can do its own conversion from string into number.Giving Ansible a number without following one of these rules will end up with a decimal number which will have unexpected results.As of Ansible 1.8, the mode may be specified as a symbolic mode (for example, u+rwx or u=rw,g=r,o=r).As of Ansible 2.6, the mode may also be the special string preserve.When set to preserve the file will be given the same permissions as the source file.

Whether the service should start on boot.At least one of state and enabled are required.

The customized message used for failing execution.If omitted, fail will simply bail out with a generic message.

Passes the command as a list rather than a string.Use argv to avoid quoting values that would otherwise be interpreted incorrectly (for example "user name").Only the string or the list form can be provided, not both.  One or the other must be provided.

A variable name to debug.Mutually exclusive with the msg option.Be aware that this option already runs in Jinja2 context and has an implicit {{ }} wrapping, so you should not be using Jinja2 delimiters unless you are looking for double interpolation.

Remote absolute path where the file should be copied to.If src is a directory, this must be a directory too.If dest is a non-existent path and if either dest ends with "/" or src is a directory, dest is created.If dest is a relative path, the starting directory is determined by the remote host.If src and dest are files, the parent directory of dest is not created and the task fails if it does not already exist.

Local path to a file to copy to the remote server.This can be absolute or relative.If path is a directory, it is copied recursively. In this case, if path ends with "/", only inside contents of that directory are copied to destination. Otherwise, if it does not end with "/", the directory itself with all contents is copied. This behavior is similar to the rsync command line tool.

Recursively set the specified file attributes on directory contents.This applies only when state is set to directory.

The permissions of the destination file or directory.For those used to /usr/bin/chmod remember that modes are actually octal numbers. You must either add a leading zero so that Ansible's YAML parser knows it is an octal number (like 0644 or 01777)or quote it (like '644' or '1777') so Ansible receives a string and can do its own conversion from string into number. Giving Ansible a number without following one of these rules will end up with a decimal number which will have unexpected results.As of Ansible 1.8, the mode may be specified as a symbolic mode (for example, u+rwx or u=rw,g=r,o=r).As of Ansible 2.3, the mode may also be the special string preserve.preserve means that the file will be given the same permissions as the source file.

The customized message that is printed. If omitted, prints a generic message.

A number that controls when the debug is run, if you set to 3 it will only run debug when -vvv or above

Determine when the file is being transferred if the destination already exists.When set to yes, replace the remote file when contents are different than the source.When set to no, the file will only be transferred if the destination does not exist.

Force the creation of the symlinks in two cases: the source file does not exist (but will appear later); the destination exists and is a file (so, we need to unlink the path file and create symlink to the src file in place of it).

Path of the file to link to.This applies only to state=link and state=hard.For state=link, this will also accept a non-existing path.Relative paths are relative to the file being created (path) which is how the Unix command ln -s SRC DEST treats relative paths.

Influence whether the remote file must always be replaced.If yes, the remote file will be replaced when contents are different than the source.If no, the file will only be transferred if the destination does not exist.Alias thirsty has been deprecated and will be removed in 2.13.aliases: thirsty

Influence whether src needs to be transferred or already is present remotely.If no, it will search for src at originating/master machine.If yes it will go to the remote/target machine for the src.remote_src supports recursive copying as of version 2.8.remote_src only works with mode=preserve as of version 2.6.

Create a backup file including the timestamp information so you can get the original file back if you somehow clobbered it incorrectly.

When used instead of src, sets the contents of a file directly to the specified value.Works only when dest is a file. Creates the file if it does not exist.For advanced formatting or if content contains a variable, use the template module.

Change the shell used to execute the command.This expects an absolute path to the executable.

The type part of the SELinux file context.When set to _default, it will use the type portion of the policy if available.

The validation command to run before copying into place.The path to the file to validate is passed in via '%s' which must be present as in the examples below.The command is passed securely so shell features like expansion and pipes will not work.

The level part of the SELinux file context.This is the MLS/MCS attribute, sometimes known as the range.When set to _default, it will use the level portion of the policy if available.

The role part of the SELinux file context.When set to _default, it will use the role portion of the policy if available.

The user part of the SELinux file context.By default it uses the system policy, where applicable.When set to _default, it will use the user portion of the policy if available.

This flag indicates that filesystem links, if they exist, should be followed.Previous to Ansible 2.5, this was no by default.

If the service does not respond to the status command, name a substring to look for as would be found in the output of the ps command as a stand-in for a status result.If the string is found, the service will be assumed to be started.

Influence when to use atomic operation to prevent data corruption or inconsistent reads from the target file.By default this module uses atomic operations to prevent data corruption or inconsistent reads from the target files, but sometimes systems are configured or just broken in ways that prevent this. One example is docker mounted files, which cannot be updated atomically from inside the container and can only be written in an unsafe manner.This option allows Ansible to fall back to unsafe methods of updating files when atomic operations fail (however, it doesn't force Ansible to perform unsafe writes).IMPORTANT! Unsafe writes are subject to race conditions and can lead to data corruption.

If the service is being restarted then sleep this many seconds between the stop and start command.This helps to work around badly-behaving init scripts that exit immediately after signaling a process to stop.Not all service managers support sleep, i.e when using systemd this setting will be ignored.

This boolean converts the variable into an actual 'fact' which will also be added to the fact cache, if fact caching is enabled.Normally this module creates 'host level variables' and has much higher precedence, this option changes the nature and precedence (by 7 steps) of the variable created. https://docs.ansible.com/ansible/latest/user_guide/playbooks_variables.html#variable-precedence-where-should-i-put-a-variableThis actually creates 2 copies of the variable, a normal 'set_fact' host variable with high precedence and a lower 'ansible_fact' one that is available for persistance via the facts cache plugin. This creates a possibly confusing interaction with meta: clear_facts as it will remove the 'ansible_fact' but not the host variable.

AnsibleTask service name datadog-agent state restarted when datadog_enabled and not ansible_check_mode and not ansible_os_family Windows

AnsibleTask template src datadog.yaml.j2 dest /etc/datadog-agent/datadog.yaml owner datadog_user group datadog_group notify restart datadog-agent

AnsibleTask file dest /etc/datadog-agent/conf.d/ item .d state directory owner datadog_user group datadog_group with_items datadog_checks|list

AnsibleTask template src checks.yaml.j2 dest /etc/datadog-agent/conf.d/ item .d/conf.yaml owner datadog_user group datadog_group with_items datadog_checks|list notify restart datadog-agent

AnsibleTask file dest /etc/datadog-agent/conf.d/ item .yaml state absent with_items datadog_checks|list notify restart datadog-agent

AnsibleTask template src datadog.conf.j2 dest /etc/datadog-agent/trace-agent.conf owner datadog_user group datadog_group notify restart datadog-agent

AnsibleTask template src datadog.conf.j2 dest /etc/datadog-agent/process-agent.conf owner datadog_user group datadog_group notify restart datadog-agent

AnsibleTask template src system-probe.yaml.j2 dest /etc/datadog-agent/system-probe.yaml mode,416 owner root group datadog_group

AnsibleTask service name datadog-agent state started enabled True when not datadog_skip_running_check and datadog_enabled and not ansible_check_mode

AnsibleTask set_fact datadog_sysprobe_installed ansible_facts.services is defined or ansible_facts.services is defined when not datadog_skip_running_check

AnsibleTask set_fact datadog_sysprobe_enabled system_probe_config is defined and system_probe_config and datadog_sysprobe_installed when not datadog_skip_running_check

AnsibleTask service name datadog-agent-sysprobe state started enabled True when not datadog_skip_running_check and datadog_enabled and not ansible_check_mode and datadog_sysprobe_enabled

AnsibleTask service name datadog-agent-sysprobe state stopped enabled False when not datadog_skip_running_check and not datadog_enabled or not datadog_sysprobe_enabled and datadog_sysprobe_installed

AnsibleTask service name item state stopped enabled False when not datadog_skip_running_check and not datadog_enabled with_list datadog-agent datadog-agent-process datadog-agent-trace

AnsibleTask template src datadog.conf.j2 dest /etc/dd-agent/datadog.conf owner datadog_user group datadog_group notify restart datadog-agent

AnsibleTask service name datadog-agent state stopped enabled False when not datadog_skip_running_check and not datadog_enabled

AnsibleTask template src checks.yaml.j2 dest /etc/dd-agent/conf.d/ item .yaml owner datadog_user group datadog_group with_items datadog_checks|list notify restart datadog-agent

AnsibleTask set_fact datadog_agent_binary_path datadog_agent_binary_path_windows when ansible_os_family Windows

AnsibleTask set_fact datadog_agent_binary_path datadog_agent_binary_path_linux when ansible_os_family Windows

AnsibleTask set_fact integration_command_user integration_command_user_windows when ansible_os_family Windows

AnsibleTask set_fact integration_command_user integration_command_user_linux when ansible_os_family Windows

AnsibleTask fail msg Unkown action item.value.action for integration command item.key Valid actions are and when item.value.action install and item.value.action remove loop datadog_integration|dict2items

AnsibleTask command argv datadog_agent_binary_path item.key become True become_user integration_command_user loop datadog_integration|dict2items when item.value.action remove and ansible_os_family Windows

AnsibleTask command argv datadog_agent_binary_path item.key item.value.version become True become_user integration_command_user loop datadog_integration|dict2items when item.value.action install and ansible_os_family Windows

AnsibleTask fail msg The Datadog Ansible role does not support your OS yet Please email support datadoghq.com to open a feature request when ansible_os_family not in RedHat Debian Suse Windows

AnsibleTask set_fact agent_version datadog_agent_version regex_search regexp epoch major minor bugfix suffix release vars regexp P epoch 0-9 P major 0-9 \. P minor 0-9 \. P bugfix 0-9 P suffix ~|- ^0-9\s- ^-\s P release 0-9

AnsibleTask set_fact datadog_epoch agent_version.0 datadog_major agent_version.1 datadog_minor agent_version.2 datadog_bugfix agent_version.3 datadog_suffix agent_version.4 datadog_release agent_version.5

AnsibleTask set_fact datadog_epoch,1 when datadog_epoch length 0

AnsibleTask set_fact datadog_release,1 when datadog_release length 0

AnsibleTask fail msg The provided major version datadog_agent_major_version is not compatible with the version datadog_major deduced from datadog_agent_version datadog_agent_version Aborting play when datadog_agent_major_version length 0 and datadog_major datadog_agent_major_version

AnsibleTask set_fact datadog_agent_debian_version datadog_epoch datadog_major datadog_minor datadog_bugfix datadog_suffix datadog_release datadog_agent_redhat_version datadog_major datadog_minor datadog_bugfix datadog_suffix datadog_release datadog_agent_suse_version datadog_epoch datadog_major datadog_minor datadog_bugfix datadog_suffix datadog_release datadog_agent_windows_version datadog_major datadog_minor datadog_bugfix datadog_suffix

AnsibleTask set_fact datadog_remove_custom_repo_file datadog_repo_file_contents datadog_apt_repo vars datadog_repo_file_contents lookup when datadog_custom_repo_file.stat.exists

AnsibleTask file path /etc/apt/sources.list.d/ansible_datadog_custom.list state absent when datadog_apt_repo length 0 or datadog_remove_custom_repo_file and not ansible_check_mode

AnsibleTask template src zypper.repo.j2 dest /etc/zypp/repos.d/datadog.repo owner root group root register datadog_zypper_repo

AnsibleTask command zypper refresh datadog when datadog_zypper_repo.changed and not ansible_check_mode args warn False

AnsibleTask set_fact win_install_args win_install_args DDAGENTUSER_NAME= datadog_windows_ddagentuser_name when datadog_windows_ddagentuser_name length 0

AnsibleTask set_fact win_install_args win_install_args DDAGENTUSER_PASSWORD= datadog_windows_ddagentuser_password when datadog_windows_ddagentuser_password length 0

AnsibleTask fail msg The Datadog ansible role does not currently support Agent 5 when datadog_agent_major_version|int 5

AnsibleTask set_fact datadog_agent_major_version datadog_agent_major_version string

AnsibleTask set_fact datadog_agent_major_version,7 when datadog_agent_major_version length 0

AnsibleTask set_fact dd_download_url datadog_windows_download_url when datadog_windows_download_url length 0

AnsibleTask set_fact dd_download_url if datadog_agent_major_version|int 7 datadog_windows_agent7_latest_url else datadog_windows_agent6_latest_url endif when datadog_windows_download_url length 0

AnsibleTask fail msg The Agent versions you pinned 6.14.0 or 6.14.1 have been blacklisted please use 6.14.2 instead See http //dtdg.co/win-614-fix when datadog_agent_version 6.14.0 or datadog_agent_version 6.14.1

AnsibleTask set_fact dd_download_url datadog_windows_versioned_url datadog_agent_windows_version .msi

AnsibleTask command /bin/mv jboss-as-7.1.1.Final jboss-as args chdir /usr/share creates /usr/share/jboss-as

AnsibleTask template src standalone.xml dest /usr/share/jboss-as/standalone/configuration/ notify restart jboss

AnsibleTask file path /usr/share/jboss-as/ owner jboss group jboss state directory recurse True

AnsibleTask copy src jboss-as-standalone.sh dest /etc/init.d/jboss mode,493

AnsibleTask shell service jboss start chkconfig jboss on ignore_errors True

AnsibleTask template src iptables-save dest /etc/sysconfig/iptables when ansible_distribution_major_version 7 notify restart iptables

AnsibleTask service name firewalld state started when ansible_distribution_major_version 7

AnsibleTask template src ntp.conf.j2 dest /etc/ntp.conf tags ntp notify restart ntp

AnsibleTask service name ntpd state started enabled True tags ntp

AnsibleTask template src iptables.j2 dest /etc/sysconfig/iptables when ansible_distribution_major_version 7 notify restart iptables

AnsibleTask command getenforce register sestatus changed_when False

AnsibleTask template src my.cnf.j2 dest /etc/my.cnf notify restart mysql

AnsibleTask template src haproxy.cfg.j2 dest /etc/haproxy/haproxy.cfg notify restart haproxy

AnsibleTask file path /etc/nagios/ansible-managed state directory

AnsibleTask copy src nagios.cfg dest /etc/nagios/nagios.cfg notify restart nagios

AnsibleTask copy src localhost.cfg dest /etc/nagios/objects/localhost.cfg notify restart nagios

AnsibleTask copy src ansible-managed-services.cfg dest /etc/nagios/

AnsibleTask template src item dest /etc/nagios/ansible-managed/ item with_items webservers.cfg dbservers.cfg lbservers.cfg notify restart nagios

AnsibleTask template src=ntp.conf.j2 dest=/etc/ntp.conf tags ntp notify restart ntp

AnsibleTask service name=ntpd state=started enabled=yes tags ntp

AnsibleTask template src=iptables.j2 dest=/etc/sysconfig/iptables when ansible_distribution_major_version 7 notify restart iptables

AnsibleTask template src=my.cnf.j2 dest=/etc/my.cnf notify restart mysql

AnsibleTask template src=haproxy.cfg.j2 dest=/etc/haproxy/haproxy.cfg notify restart haproxy

AnsibleTask file path=/etc/nagios/ansible-managed state=directory

AnsibleTask copy src=nagios.cfg dest=/etc/nagios/nagios.cfg notify restart nagios

AnsibleTask copy src=localhost.cfg dest=/etc/nagios/objects/localhost.cfg notify restart nagios

AnsibleTask copy src=ansible-managed-services.cfg dest=/etc/nagios/

AnsibleTask template src= item .j2 dest=/etc/nagios/ansible-managed/ item with_items webservers.cfg dbservers.cfg lbservers.cfg notify restart nagios

AnsibleTask template src=index.php.j2 dest=/var/www/html/index.php

AnsibleTask template src=my.cnf.j2 dest=/etc/my.cnf notify restart mariadb

AnsibleTask file path=/var/log/mysqld.log state=touch owner=mysql group=mysql mode=0775

AnsibleTask file path=/var/run/mysqld state=directory owner=mysql group=mysql mode=0775

AnsibleTask file path= workdir state=directory owner=root group=root mode=0751

AnsibleTask copy src=/etc/ansible/hosts dest=/etc/ansible/hosts owner=root group=root mode=0644

AnsibleTask template src=templates/etc_cron.d_ansible-pull.j2 dest=/etc/cron.d/ansible-pull owner=root group=root mode=0644

AnsibleTask template src=templates/etc_logrotate.d_ansible-pull.j2 dest=/etc/logrotate.d/ansible-pull owner=root group=root mode=0644

AnsibleTask command echo taking out of rotation inventory_hostname delegate_to 127.0.0.1

AnsibleTask command echo inserting into rotation inventory_hostname delegate_to 127.0.0.1

AnsibleTask file dest= jquery_directory state=directory mode=0755

AnsibleTask template src=templates/foo.j2 dest=/etc/some_random_foo.conf notify restart apache

AnsibleTask template dest=/etc/imaginary_file.conf first_available_file /srv/whatever/ ansible_hostname .conf /srv/whatever/ ansible_distribution ansible_distribution_version .conf /srv/whatever/ ansible_distribution .conf /srv/whatever/default

AnsibleTask template src=foo.j2 dest=/tmp/roles_test2.txt notify blippy

AnsibleTask command /usr/bin/mongo localhost mongos_port /test -u admin -p mongo_admin_pass /tmp/testsharding.js

AnsibleTask command /usr/bin/mongo localhost mongos_port /admin -u admin -p mongo_admin_pass /tmp/enablesharding.js

AnsibleTask copy src=10gen.repo.j2 dest=/etc/yum.repos.d/10gen.repo

AnsibleTask copy src=epel.repo.j2 dest=/etc/yum.repos.d/epel.repo

AnsibleTask file path= mongodb_datadir_prefix owner=mongod group=mongod state=directory

AnsibleTask template src=iptables.j2 dest=/etc/sysconfig/iptables notify restart iptables

AnsibleTask file path= mongodb_datadir_prefix /configdb state=directory owner=mongod group=mongod

AnsibleTask template src=mongoc.j2 dest=/etc/init.d/mongoc mode=0655

AnsibleTask copy src=roles/mongod/files/secret dest= mongodb_datadir_prefix /secret owner=mongod group=mongod mode=0400

AnsibleTask command creates=/var/lock/subsys/mongoc /etc/init.d/mongoc start

AnsibleTask file path= mongodb_datadir_prefix /mongo- inventory_hostname state=directory owner=mongod group=mongod delegate_to item with_items groups.replication_servers

AnsibleTask file path=/var/log/mongo state=directory owner=mongod group=mongod

AnsibleTask file path=/var/run/mongo state=directory owner=mongod group=mongod

AnsibleTask template src=mongod.j2 dest=/etc/init.d/mongod- inventory_hostname mode=0655 delegate_to item with_items groups.replication_servers

AnsibleTask template src=mongod.conf.j2 dest=/etc/mongod- inventory_hostname .conf delegate_to item with_items groups.replication_servers

AnsibleTask copy src=secret dest= mongodb_datadir_prefix /secret owner=mongod group=mongod mode=0400

AnsibleTask command creates=/var/lock/subsys/mongod- inventory_hostname /etc/init.d/mongod- inventory_hostname start delegate_to item with_items groups.replication_servers

AnsibleTask template src=repset_init.j2 dest=/tmp/repset_init.js

AnsibleTask shell /usr/bin/mongo port mongod_port /tmp/repset_init.js

AnsibleTask template src=shard_init.j2 dest=/tmp/shard_init_ inventory_hostname .js delegate_to item with_items groups.mongos_servers

AnsibleTask shell /usr/bin/mongo localhost mongos_port /admin -u admin -p mongo_admin_pass /tmp/shard_init_ inventory_hostname .js delegate_to item with_items groups.mongos_servers

AnsibleTask template src=mongos.j2 dest=/etc/init.d/mongos mode=0655

AnsibleTask command creates=/var/lock/subsys/mongos /etc/init.d/mongos start

AnsibleTask template src=testsharding.j2 dest=/tmp/testsharding.js

AnsibleTask template src=enablesharding.j2 dest=/tmp/enablesharding.js

AnsibleTask debug msg THERE ARE light_info.json.lights length HUE LIGHTS PRESENT

AnsibleTask template src=nginx.conf.j2 dest=/etc/nginx/nginx.conf notify restart nginx

AnsibleTask template src=default.conf.j2 dest=/etc/nginx/conf.d/default.conf notify restart nginx

AnsibleTask template src=memcached.conf.j2 dest=/etc/sysconfig/memcached backup=yes notify restart memcached

AnsibleTask template src=init.sh.j2 dest=/etc/init.d/memcached mode=0755 notify restart memcached

AnsibleTask template src= item.src dest= item.dest backup=yes with_items notify restart tomcat

AnsibleTask copy src=msm-sample-webapp-1.0-SNAPSHOT.war dest=/var/lib/tomcat/webapps/ROOT.war owner=tomcat group=tomcat

AnsibleTask command rpm -ivh /tmp/epel-release-latest-6.noarch.rpm creates=/etc/yum.repos.d/epel.repo when ansible_os_family and ansible_distribution_major_version 6

AnsibleTask command rpm -ivh /tmp/epel-release-latest-7.noarch.rpm creates=/etc/yum.repos.d/epel.repo when ansible_os_family and ansible_distribution_major_version 7

AnsibleTask command chdir=/usr/share /bin/tar xvf /opt/apache-tomcat-7.0.61.tar.gz -C /opt/ creates=/opt/apache-tomcat-7.0.61

AnsibleTask file src=/opt/apache-tomcat-7.0.61 path=/usr/share/tomcat state=link

AnsibleTask file path=/usr/share/tomcat/ owner=tomcat group=tomcat state=directory recurse=yes

AnsibleTask template src=server.xml dest=/usr/share/tomcat/conf/ notify restart tomcat

AnsibleTask template src=tomcat-users.xml dest=/usr/share/tomcat/conf/ notify restart tomcat

AnsibleTask copy src=tomcat-initscript.sh dest=/etc/init.d/tomcat mode=0755

AnsibleTask template src=iptables-save dest=/etc/sysconfig/iptables when ansible_os_family and ansible_distribution_major_version 6 notify restart iptables

AnsibleTask copy src=iptables-save dest=/etc/sysconfig/iptables notify restart iptables

AnsibleTask template src=default.conf dest=/etc/nginx/conf.d/default.conf notify restart nginx

AnsibleTask command mv /etc/php-fpm.d/www.conf /etc/php-fpm.d/www.disabled creates=/etc/php-fpm.d/www.disabled notify restart php-fpm

AnsibleTask template src=wordpress.conf dest=/etc/php-fpm.d/ notify restart php-fpm

AnsibleTask command chdir=/srv/ /bin/tar xvf wordpress- wp_version .tar.gz creates=/srv/wordpress

AnsibleTask file path=/srv/wordpress/ owner=wordpress group=wordpress state=directory recurse=yes setype=httpd_sys_content_t

AnsibleTask file path=/srv/wordpress/ owner=wordpress group=wordpress state=directory recurse=yes

AnsibleTask command semanage fcontext -a -t httpd_sys_content_t /srv/wordpress /.*

AnsibleTask command semanage fcontext -a -t httpd_sys_script_exec_t /srv/wordpress/wp-config\.php

AnsibleTask command semanage fcontext -a -t httpd_sys_rw_content_t /srv/wordpress/wp-content /.*

AnsibleTask command semanage fcontext -a -t httpd_sys_script_exec_t /srv/wordpress/ *\.php

AnsibleTask command semanage fcontext -a -t httpd_sys_rw_content_t /srv/wordpress/wp-content/upgrade /.*

AnsibleTask command semanage fcontext -a -t httpd_sys_rw_content_t /srv/wordpress/wp-content/uploads /.*

AnsibleTask command semanage fcontext -a -t httpd_sys_script_exec_t /srv/wordpress/wp-includes/ *\.php

AnsibleTask fail msg The item.host_group host_group is defined in the blueprint but there is no matching Ansible inventory group called item.host_group or there are no hosts in this group when groups item.host_group is not defined or groups item.host_group is defined and groups item.host_group |length 0 with_items blueprint_dynamic

AnsibleTask fail msg The component is required by all installations when zookeeper_hosts|length 0

AnsibleTask fail msg Ranger is part of the blueprint but the database is set to when rangeradmin_hosts|length 0 or rangerkms_hosts|length 0 and database

AnsibleTask fail msg Ranger KMS requires Ranger Admin when rangerkms_hosts|length 0 and rangeradmin_hosts|length 1

AnsibleTask fail msg Atlas requires all of the following components to be present in the blueprint INFRA_SOLR HBASE_MASTER HBASE_REGIONSERVER KAFKA_BROKER when in blueprint_all_services and not in blueprint_all_services or not in blueprint_all_services or not in blueprint_all_services or not in blueprint_all_services

AnsibleTask fail msg Streamline is part of the blueprint but the database is set to when streamline_hosts|length 0 and database

AnsibleTask fail msg Registry is part of the blueprint but the database is set to when registry_hosts|length 0 and database

AnsibleTask fail msg Multiple nodes are configured to run Druid components but the database is set to when druid_hosts|length 1 and database

AnsibleTask fail msg Amazon Linux does not support Hive with the database Set the database to another option and re-run the playbooks when database and ansible_distribution|lower amazon and hiveserver_hosts|length 0

AnsibleTask fail msg When installing HDP 3 the component item must not be part of the blueprint when install_hdp and hdp_major_version 3 and item in blueprint_all_clients union blueprint_all_services with_items HCAT SLIDER WEBHCAT_SERVER

AnsibleTask fail msg When installing HDP 2 the component item must not be part of the blueprint when install_hdp and hdp_major_version 2 and item in blueprint_all_clients union blueprint_all_services with_items YARN_REGISTRY_DNS TIMELINE_READER

AnsibleTask fail msg Some or all of the following components are missing from the blueprint NAMENODE DATANODE namenode_groups|length 1 ternary SECONDARY_NAMENODE ZKFC JOURNALNODE when namenode_groups|length 1 and difference blueprint_all_services length 0 or namenode_groups|length 1 and difference blueprint_all_services length 0

AnsibleTask fail msg HA NameNode has been requested but there are less than 3 JournalNodes defined in the blueprint when namenode_groups|length 1 and journalnode_groups|length 3

AnsibleTask fail msg HA NameNode has been requested but the ZKFC component must be present in the nodes running the NAMENODE only when namenode_groups|length 1 and zkfc_groups|length 2 or namenode_groups symmetric_difference zkfc_groups length 0

AnsibleTask fail msg HA NameNode has been requested but the SECONDARY_NAMENODE component is still present in the blueprint when namenode_groups|length 1 and in blueprint_all_services

AnsibleTask fail msg Some or all of the following components are missing from the blueprint NODEMANAGER APP_TIMELINE_SERVER hdp_major_version 3 ternary YARN_REGISTRY_DNS TIMELINE_READER when resourcemanager_groups|length 0 and hdp_major_version 3 and difference blueprint_all_services length 0 or hdp_major_version 2 and difference blueprint_all_services length 0

AnsibleTask fail msg Some or all of the following components are missing from the blueprint HIVE_SERVER HIVE_METASTORE hdp_major_version 2 ternary WEBHCAT_SERVER when hiveserver_hosts|length 0 and hdp_major_version 3 and difference blueprint_all_services length 0 or hdp_major_version 2 and difference blueprint_all_services length 0

AnsibleTask fail msg One or more of the following components are missing from the blueprint DRUID_BROKER DRUID_COORDINATOR DRUID_ROUTER DRUID_MIDDLEMANAGER DRUID_HISTORICAL DRUID_OVERLORD when druid_hosts|length 0 and difference blueprint_all_services length 0

AnsibleTask fail msg One or more of the following components are missing from the blueprint ACCUMULO_CLIENT ACCUMULO_MASTER ACCUMULO_MONITOR ACCUMULO_TRACER ACCUMULO_GC ACCUMULO_TSERVER when difference blueprint_all_clients union blueprint_all_services length 0 and difference blueprint_all_clients union blueprint_all_services length 6

AnsibleTask fail msg The ambari_groups list is empty This usually means there is no component defined in the blueprint or there is no Ansible inventory group corresponding with the name of the blueprint host_group when ambari_groups|length 0

AnsibleTask fail msg The item host_group is defined in the blueprint but there is no matching Ansible inventory group called item or there are no hosts in this group when groups item is not defined or groups item |length 0 with_items ambari_groups

AnsibleTask fail msg The Ansible inventory group is required before continuing Check the inventory for possible issues when groups is not defined or groups is defined and groups |length 0

AnsibleTask set_fact namenode_groups zkfc_groups hive_mysql_embedded_group ,resourcemanager_groups journalnode_groups zookeeper_groups zookeeper_hosts hiveserver_hosts oozie_hosts atlas_hosts druid_hosts superset_hosts kafka_groups kafka_hosts rangeradmin_groups rangeradmin_hosts rangerkms_hosts streamline_hosts registry_hosts hdf_hosts solr_hosts blueprint_all_services blueprint_all_clients install_hdp False install_hdf False install_hdpsearch False blueprint_static no_log True

AnsibleTask fail msg The AMI outer_loop.image does not exist in region cloud_config.region or it does not provide any information when current_ami length 0

AnsibleTask service name ambari-agent enabled True ignore_errors True

AnsibleTask fail msg Could not get the VersionDefinition from Ambari The following is the received information from Ambari version_definition when version_definition.content|from_yaml length 0

AnsibleTask set_fact vdf_id version_definition.content|from_yaml 0

AnsibleTask fail msg Cluster cluster_name already exists when cluster_check.status 404

AnsibleTask set_fact cluster_blueprint lookup blueprint_file convert_data=False when blueprint_file

AnsibleTask set_fact cluster_template lookup cluster_template_file convert_data=False

AnsibleTask fail msg Failed to build the cluster_name cluster Task Status is cluster_check_task.content|from_json .Requests.request_status when wait and cluster_check_task.content|from_json .Requests.request_status or cluster_check_task.content|from_json .Requests.request_status or cluster_check_task.content|from_json .Requests.request_status

AnsibleTask service name ambari-server state restarted notify Wait for Ambari Server to start listening on port 8080

AnsibleTask set_fact mpack_filename solr-service-mpack- hdpsearch_version .tar.gz

AnsibleTask shell echo yes ambari-server install-mpack mpack= repo_base_url /HDP-SOLR/hdp-solr-ambari-mp/ mpack_filename notify Restart ambari-server args creates /var/lib/ambari-server/resources/mpacks/solr-ambari-mpack- hdpsearch_version

AnsibleTask set_fact mpack_filename hdf-ambari-mpack- hdf_version hdf_build_number_auto|default hdf_build_number .tar.gz

AnsibleTask shell echo yes ambari-server install-mpack mpack= hdf_main_repo_url /tars/hdf_ambari_mp/ mpack_filename notify Restart ambari-server args creates /var/lib/ambari-server/resources/mpacks/ mpack_filename regex_replace when hdf_major_version|int 3

AnsibleTask shell echo yes ambari-server install-mpack mpack= hdf_main_repo_url /tars/hdf_ambari_mp/ mpack_filename purge notify Restart ambari-server args creates /var/lib/ambari-server/resources/mpacks/ mpack_filename regex_replace when hdf_major_version|int 3

AnsibleTask template src item dest /tmp/cluster_vdf.xml mode,416 force True with_first_found hdf_version .xml.j2 hdf_minor_version -latest.xml.j2 hdf_major_version -latest.xml.j2 when ambari_version is version_compare 2.6 and not install_hdp|default false

AnsibleTask template src repo_version_template default dest /tmp/repo_version_update_body.json become False delegate_to localhost

AnsibleTask shell /usr/sbin/ambari-server setup jdbc-db=mysql jdbc-driver= mysql_jdbc_location notify Restart ambari-server

AnsibleTask shell /usr/sbin/ambari-server setup jdbc-db= database regex_replace jdbc-driver= lookup database notify Restart ambari-server

AnsibleTask set_fact ambari_database_options database= database regex_replace databasehost= database_options.external_hostname|default ansible_fqdn true databaseport= lookup database regex_replace databasename= database_options.ambari_db_name databaseusername= database_options.ambari_db_username databasepassword= database_options.ambari_db_password

AnsibleTask set_fact ambari_java_options -j openjdk_path when java openjdk

AnsibleTask set_fact ambari_java_options -j oraclejdk_options.base_folder /latest when java oraclejdk

AnsibleTask shell /usr/sbin/ambari-server setup -s ambari_java_options|default ambari_database_options|default notify Restart ambari-server

AnsibleTask service name ambari-server enabled True ignore_errors True

AnsibleTask fail msg OpenJDK is not available or supported on SLES 11 when java openjdk and ansible_os_family|lower suse and ansible_distribution_major_version|int 11

AnsibleTask file path oraclejdk_options.base_folder state directory

AnsibleTask set_fact jdk_folder tarball_content.files 0 regex_replace

AnsibleTask file src oraclejdk_options.base_folder jdk_folder path oraclejdk_options.base_folder /latest state link force True

AnsibleTask copy src oraclejdk_options.base_folder /latest/jre/lib/security/UnlimitedJCEPolicyJDK8/ item dest oraclejdk_options.base_folder /latest/jre/lib/security force True remote_src True with_items local_policy.jar US_export_policy.jar

AnsibleTask service name ntp_service_name enabled True ignore_errors True

AnsibleTask file path /etc/security/limits.d mode,493 state directory

AnsibleTask service name firewall_service_name state stopped ignore_errors True

AnsibleTask service name firewall_service_name enabled False ignore_errors True

AnsibleTask shell echo never /sys/kernel/mm/transparent_hugepage/enabled echo never /sys/kernel/mm/transparent_hugepage/defrag args removes /sys/kernel/mm/transparent_hugepage/enabled when is_vm_docker_containers yes

AnsibleTask copy src /tmp/hadoop_http_secret dest /etc/security/http_secret force True mode,292

AnsibleTask template src tuned.conf.j2 dest /etc/tuned/hortonworks/tuned.conf mode,493

AnsibleTask fail msg MariaDB is not available or supported on SLES 11 and Debian/Ubuntu when database mariadb and ansible_os_family|lower suse and ansible_distribution_major_version|int 11 or ansible_os_family|lower debian

AnsibleTask become True shell postgres_initdb_command args creates postgres_hba_file warn False

AnsibleTask service name hostvars inventory_hostname database state started

AnsibleTask service name hostvars inventory_hostname database enabled True ignore_errors True

AnsibleTask set_fact db_password_md5 md5 db_password~db_username hash

AnsibleTask shell su postgres -c psql -c CREATE ROLE db_username ENCRYPTED PASSWORD db_password_md5 NOSUPERUSER NOCREATEDB NOCREATEROLE INHERIT LOGIN args warn False register createuser_results ignore_errors True

AnsibleTask fail msg The user could not be created Error is createuser_results.stderr when createuser_results is failed and not createuser_results.stderr is search role already exists

AnsibleTask shell su postgres -c createdb -O db_username db_name args warn False register createdb_results ignore_errors True

AnsibleTask fail msg The database could not be created Error is createdb_results.stderr when createdb_results is failed and not createdb_results.stderr is search database already exists

AnsibleTask template src krb5.conf.j2 dest /etc/krb5.conf mode,420 force True

AnsibleTask service name kdc_service_name state restarted notify Restart kadmin

AnsibleTask template src kdc.conf.j2 dest kdc_config_file mode,384 force True notify Restart krb5

AnsibleTask shell kdc_init_command -r security_options.realm upper -P security_options.kdc_master_key args creates kdc_database_file notify Restart krb5

AnsibleTask shell kadmin_command -q add_principal -pw security_options.admin_password security_options.admin_principal /admin security_options.realm upper register addprinc_result

AnsibleTask fail msg The admin principal could not be created Error is addprinc_result.stderr when addprinc_result is failed or not addprinc_result.stdout is search Principal created or addprinc_result.stderr is search Principal or policy already exists while creating

AnsibleTask service name kdc_service_name enabled True ignore_errors True

AnsibleTask service name kadmin_service_name enabled True ignore_errors True

AnsibleTask file path /etc/security/http_secret owner hdfs group hadoop mode,288

AnsibleTask fail msg= We need updates in Ansible 2.5.0 Please update your kit install -U Ansible when ansible_version.full is version 2.5.0 tags always

AnsibleTask fail msg You must set the admin_email variable when not admin_email tags plone plone1 plone2 plone3 plone4 haproxy varnish restart_script postfix logwatch munin motd nginx

AnsibleTask command firewall-cmd zone=dmz permanent add-service=http add-service=https

AnsibleTask when install_muninnode|default True command firewall-cmd permanent zone=dmz family= ipv4 source address= item /32 port port=4949 protocol= tcp accept with_items muninnode_query_ips|default

AnsibleTask fail msg You must set the admin_email variable when not admin_email

AnsibleTask shell certbot certonly nginx email admin_email agree-tos -d item if certbot_staging staging endif args creates /etc/letsencrypt/live/ item /cert.pem loop certbot_hosts

AnsibleTask command grep -F sshd /etc/fail2ban/jail.conf ignore_errors True register sshd_check_result

AnsibleTask file path=/etc/fail2ban/jail.d state=directory mode=0755

AnsibleTask template src customization.local.j2 dest /etc/fail2ban/jail.d/customization.local backup True notify restart fail2ban

AnsibleTask copy src=haproxy_enabled dest=/etc/default/haproxy owner=root group=root mode=644

AnsibleTask shell /usr/sbin/haproxy -v grep version sed -r s/.+version 0-9 .+/\1/ register haproxy_version

AnsibleTask template src=haproxy.cfg.j2 dest=/etc/haproxy/haproxy.cfg owner=root group=root mode=644 backup=true

AnsibleTask copy content inventory_hostname_short dest /etc/hostname owner root group root mode,420

AnsibleTask copy src=etc_logwatch/ dest=/etc/logwatch/ owner=root group=root

AnsibleTask template src=plone_events.j2 dest=/etc/logwatch/conf/services/plone_events.conf owner=root group=root

AnsibleTask copy dest /etc/logwatch/conf/ignore.conf content logwatch_ignore mode,420 owner root group root

AnsibleTask template src=update-notify.j2 dest=/etc/logwatch/scripts/services/update-notify owner=root group=root mode=0755 when ansible_os_family

AnsibleTask template src=munin-node.conf.j2 dest=/etc/munin/munin-node.conf owner=root group=root mode=644 notify restart munin-node

AnsibleTask copy src=monitors/plonezope_res dest=/etc/munin/plugins/ mode=0755 notify restart munin-node

AnsibleTask file path= /etc/munin/plugins/ item state=absent with_items nfs4_client nfs_client nfsd nfsd4 ntp_kernel_err ntp_kernel_pll_freq ntp_kernel_pll_off ntp_offset if_dummy0 if_err_dummy0 if_err_eth0 if_err_gre0 if_err_gretap0 if_err_ip6gre0 if_err_ip6tnl0 if_err_ip6_vti0 if_err_ip_vti0 if_err_teql0 if_err_tunl0 if_gre0 if_gretap0 if_ip6gre0 if_ip6tnl0 if_ip6_vti0 if_ip_vti0 if_teql0 if_tunl0 irqstats users proc_pri notify restart munin-node

AnsibleTask file path= /etc/munin/plugins/ item state=link src= /usr/share/munin/plugins/ item with_items http_loadtime nginx_request nginx_status notify restart munin-node

AnsibleTask file path= /etc/munin/plugins/haproxy_ng state=link src= /usr/share/munin/plugins/haproxy_ng mode=0755 notify restart munin-node

AnsibleTask copy src=conf/haproxy_ng dest=/etc/munin/plugin-conf.d/ mode=0644 notify restart munin-node

AnsibleTask shell /usr/sbin/varnishd -V 2 1 grep varnishd sed -r s/.+varnish- 0-9 .+/\1/ register varnish_version

AnsibleTask copy src=monitors/varnish4_ dest=/etc/munin/plugins/varnish4_hit_rate mode=0755 notify restart munin-node

AnsibleTask file path= /etc/munin/plugins/varnish4_ item state=link src= /etc/munin/plugins/varnish4_hit_rate with_items backend_traffic memory_usage request_rate notify restart munin-node

AnsibleTask copy src=conf/varnish4 dest=/etc/munin/plugin-conf.d/ mode=0644 notify restart munin-node

AnsibleTask when ansible_os_family command service nginx configtest warn=false listen restart nginx

AnsibleTask service name=nginx state=restarted listen restart nginx

AnsibleTask when ansible_os_family command service nginx configtest warn=false listen nginx running

AnsibleTask service name=nginx state=started enabled=yes listen nginx running

AnsibleTask service name=nginx enabled=yes when ansible_os_family

AnsibleTask shell /usr/sbin/nginx -v 2 1 /dev/null sed -r 0-9. X\1X register nginx_v_result become False

AnsibleTask set_fact use_http2 allow_http2 default nginx_v_result.stdout is version 1.9.5

AnsibleTask when ansible_os_family file path /etc/nginx/sites-enabled/default state absent notify restart nginx

AnsibleTask when ansible_os_family file path /etc/nginx/conf.d/default.conf state absent notify restart nginx

AnsibleTask copy content ssl_shared_conf dest /etc/nginx/conf.d/ssl_shared.conf mode,420

AnsibleTask command openssl dhparam -out /etc/nginx/ssl/dhparam.pem 2048 creates=/etc/nginx/ssl/dhparam.pem

AnsibleTask when ansible_os_family template src host.j2 dest /etc/nginx/sites-enabled/ item.protocol|default _ item.hostname|default inventory_hostname |replace _ mode,420 with_items playbook_plones|map |list notify restart nginx

AnsibleTask when ansible_os_family template src host.j2 dest /etc/nginx/conf.d/ item.protocol|default _ item.hostname|default inventory_hostname |replace _ .conf mode,420 with_items playbook_plones|map |list notify restart nginx

AnsibleTask copy src item.certificate_file dest /etc/nginx/ssl/ item.hostname .crt mode,292 with_items playbook_plones|map |list when item.certificate_file is defined notify restart nginx

AnsibleTask copy src item.key_file dest /etc/nginx/ssl/ item.hostname .key mode,256 with_items playbook_plones|map |list when item.key_file is defined notify restart nginx

AnsibleTask template src=main.cf.j2 dest=/etc/postfix/main.cf owner=root group=root mode=644 notify reload postfix

AnsibleTask template src=aliases dest=/etc/aliases owner=root group=root mode=644 notify new aliases

AnsibleTask template src=restart_clients.sh.j2 dest= restart_instance_script_path /restart_clients.sh owner=root group=root mode=0544

AnsibleTask template src=restart_single_client.sh.j2 dest= restart_instance_script_path /restart_single_client.sh owner=root group=root mode=0544

AnsibleTask template src=restart_if_hot.py.j2 dest= restart_instance_script_path /restart_if_hot.py owner=root group=root mode=0544 when item.plone_client_max_memory|default plone_client_max_memory 0

AnsibleTask shell which timedatectl ignore_errors True register which_timedatectl

AnsibleTask shell timedatectl set-timezone timezone when which_timedatectl.rc 0

AnsibleTask command varnishd -C -f /etc/varnish/default.vcl listen restart varnish

AnsibleTask service name=varnish state=restarted listen restart varnish

AnsibleTask command varnishd -C -f /etc/varnish/default.vcl listen varnish started

AnsibleTask service name=varnish state=started listen varnish started

AnsibleTask service name=varnish enabled=yes when ansible_os_family

AnsibleTask shell which systemctl systemctl is-enabled varnish.service ignore_errors True register sysd_varnish

AnsibleTask when proxycache_method file path=/var/lib/varnish state=directory owner=varnish group=varnish

AnsibleTask when proxycache_method and varnish_version 4 set_fact proxycache_method= proxycache_method /var/lib/varnish

AnsibleTask when sysd_varnish.rc 0 and ansible_os_family template src=varnish.j2 dest=/etc/default/varnish backup=yes notify restart varnish

AnsibleTask when ansible_os_family template src=varnish.params.j2 dest=/etc/varnish/varnish.params backup=yes notify restart varnish

AnsibleTask when varnish_version 4 template src=default.vcl4.j2 dest=/etc/varnish/default.vcl backup=yes notify restart varnish

AnsibleTask set_fact artcl_collect False when artcl_publish|default false |bool

AnsibleTask set_fact artcl_report_server_key -i artcl_report_server_key when artcl_report_server_key is defined

AnsibleTask shell cat *.tar tar xf -i args chdir artcl_collect_dir executable /bin/bash ignore_errors True

AnsibleTask shell rm -r *.tar args chdir artcl_collect_dir executable /bin/bash ignore_errors True

AnsibleTask file state absent path local_working_dir ignore_errors True

AnsibleTask file path local_working_dir /collected_files state absent

AnsibleTask file path infrared_location /infrared_plugin state directory

AnsibleTask shell export PATH= PATH /usr/local/sbin /usr/sbin source infrared_venv /bin/activate ir plugin add ansible_env.HOME /artcl-src src-path infrared_plugin args chdir infrared_location executable /bin/bash register plugin_install_output changed_when True

AnsibleTask shell export PATH= PATH /usr/local/sbin /usr/sbin source infrared_venv /bin/activate ir plugin list args executable /bin/bash register plugin_output changed_when False

AnsibleTask fail msg ansible-role-collect-logs not installed when not in plugin_output.stdout

AnsibleTask file path ansible_user_dir /workspace/logs/ state directory

AnsibleTask copy content No valid host was found There are not enough hosts dest ansible_user_dir /workspace/logs/quickstart_install.log

AnsibleTask command grep valid host was found ansible_user_dir /workspace/logs/failures_file changed_when False

AnsibleTask command grep valid host was found ansible_user_dir /workspace/logs/_No_valid_host_was_found.log changed_when False

AnsibleTask template src odl_extra_logs.j2 dest /tmp/odl_extra_logs.sh

AnsibleTask run_once True vars combined_cmds artcl_commands combine artcl_commands_extras recursive=True set_fact artcl_commands_flatten combined_cmds dict2items|selectattr key in collect_log_types list items2dict flatten_nested_dict

AnsibleTask vars capture_file item.capture_file default item.name shell cmd if not item.capture_disable default False exec if not capture_file.startswith /var/log/extra/ endif capture_file 2 1 endif do not put anything after the command item.cmd warn False executable bash changed_when False loop artcl_commands_flatten loop_control label item.name

AnsibleTask set_fact collect_list artcl_collect_list artcl_collect_list_append|default

AnsibleTask set_fact collect_list artcl_collect_override inventory_hostname when artcl_collect_override is defined artcl_collect_override inventory_hostname is defined

AnsibleTask set_fact artcl_exclude_list artcl_exclude_list|default artcl_exclude_list_append|default

AnsibleTask template src rsync-filter.j2 dest /tmp/ inventory_hostname -rsync-filter when artcl_rsync_collect_list|bool

AnsibleTask become True shell find collect_list|join -maxdepth artcl_find_maxdepth -type f -size artcl_find_max_size M if artcl_exclude_list is defined -not -path artcl_exclude_list|map |join -not -path endif -print0 /tmp/ inventory_hostname -rsync-list failed_when False when not artcl_rsync_collect_list|bool

AnsibleTask become True shell set -o pipefail rsync quiet recursive copy-links prune-empty-dirs ignore-errors if artcl_rsync_collect_list|bool filter /tmp/ inventory_hostname -rsync-filter else from0 files-from=/tmp/ inventory_hostname -rsync-list endif /tmp/ inventory_hostname find /tmp/ inventory_hostname -type d -print0 xargs -0 chmod 755 find /tmp/ inventory_hostname -type f -print0 xargs -0 chmod 644 find /tmp/ inventory_hostname -not -type f -not -type d -delete chown can fail with chown invalid spec 0 chown -R ansible_user default ansible_effective_user_id /tmp/ inventory_hostname || true args executable /bin/bash changed_when True

AnsibleTask when artcl_gzip bool shell gzip -r ./ inventory_hostname args chdir /tmp warn False changed_when True tags skip_ansible_lint

AnsibleTask shell cmd tar cf inventory_hostname .tar inventory_hostname chdir /tmp changed_when True

AnsibleTask file path /tmp/ inventory_hostname state absent ignore_errors True

AnsibleTask shell tar xf inventory_hostname .tar rm -f inventory_hostname .tar args chdir artcl_collect_dir warn False delegate_to localhost changed_when True

AnsibleTask shell awk -f local_working_dir /usr/local/share/ansible/roles/collect-logs/scripts/doc_extrapolation.awk artcl_collect_dir /undercloud/home/ undercloud_user item .sh artcl_docs_source_dir item .rst with_items artcl_create_docs_payload.included_deployment_scripts ignore_errors True changed_when True

AnsibleTask shell cp artcl_docs_source_dir /../static/ item .rst artcl_docs_source_dir with_items artcl_create_docs_payload.included_static_docs ignore_errors True changed_when True

AnsibleTask template src index.rst.j2 dest artcl_docs_source_dir /index.rst force True

AnsibleTask shell set -o pipefail sphinx-build -b html artcl_docs_source_dir artcl_docs_build_dir 2 1 timestamper_cmd artcl_collect_dir /docs/sphinx_build.log args executable /bin/bash ignore_errors True changed_when True

AnsibleTask shell grep -q item artcl_collect_dir /docs/build/index.html with_items artcl_create_docs_payload.table_of_contents changed_when False when artcl_gen_docs|bool artcl_verify_sphinx_build|bool not artcl_collect|bool

AnsibleTask shell if -d artcl_collect_dir -h artcl_collect_dir then mkdir -p artcl_collect_dir fi changed_when True

AnsibleTask shell set -o pipefail curl -k lookup /timestamps/ time=yyyy-MM-dd 20HH mm ss.SSS 20| appendLog locale=en_GB artcl_collect_dir /console.log args executable /bin/bash when lookup

AnsibleTask shell if -d artcl_collect_dir /undercloud/var/log/extra/stackviz/data then cp -r artcl_collect_dir /undercloud/var/log/extra/stackviz artcl_collect_dir gunzip -fr artcl_collect_dir /stackviz fi changed_when True

AnsibleTask shell if -d artcl_collect_dir /undercloud/var/log/tempest/stackviz/data then cp -r artcl_collect_dir /undercloud/var/log/tempest/stackviz artcl_collect_dir gunzip -fr artcl_collect_dir /stackviz fi when use_os_tempest is defined changed_when True

AnsibleTask shell cp artcl_collect_dir /undercloud/home/stack/tempest/tempest xml html .gz artcl_collect_dir || true gunzip artcl_collect_dir /tempest xml html .gz || true changed_when True

AnsibleTask shell cp artcl_collect_dir /undercloud/var/log/tempest/testrepository.subunit.gz artcl_collect_dir /testrepository.subunit.gz || true when use_os_tempest is defined

AnsibleTask shell cp item artcl_collect_dir with_items local_working_dir /*.sh local_working_dir /*.log ignore_errors True changed_when True

AnsibleTask shell if -f artcl_readme_path then cp artcl_readme_path artcl_readme_file fi ignore_errors True changed_when True

AnsibleTask shell set -o pipefail find artcl_collect_dir -type f awk rename orig new=orig sub /\.gz .txt.gz new system mv orig new /\ conf|ini|json|sh|log|yaml|yml|repo|cfg|j2|py \.gz rename 0 \/var\/log\/|\/etc\/ \/\ +\.gz rename 0 args executable /bin/bash when artcl_txt_rename|bool

AnsibleTask shell rsync -av quiet -e ssh -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null artcl_report_server_key|default artcl_collect_dir artcl_rsync_path lookup async artcl_publish_timeout poll 15 retries 5 delay 60 when artcl_use_rsync|bool and not artcl_rsync_use_daemon|bool tags notest

AnsibleTask environment RSYNC_PASSWORD lookup shell rsync -av quiet artcl_collect_dir artcl_rsync_path lookup async artcl_publish_timeout poll 15 retries 5 delay 60 when artcl_use_rsync|bool and artcl_rsync_use_daemon|bool tags notest

AnsibleTask shell swift upload quiet header X-Delete-After artcl_swift_delete_after artcl_swift_container lookup args chdir artcl_collect_dir changed_when True environment OS_AUTH_URL artcl_swift_auth_url OS_USERNAME artcl_swift_username OS_PASSWORD artcl_swift_password OS_TENANT_NAME artcl_swift_tenant_name async artcl_publish_timeout poll 15 when artcl_use_swift|bool tags notest

AnsibleTask shell artcl_zuul_swift_upload_path /zuul_swift_upload.py name artcl_swift_container delete-after artcl_swift_delete_after artcl_collect_dir async artcl_publish_timeout poll 15 when artcl_use_zuul_swift_upload|bool tags notest

AnsibleTask template src full_logs.html.j2 dest artcl_collect_dir /full_logs.html when artcl_env tags notest

AnsibleTask shell local_working_dir /bin/ara generate html local_working_dir /ara_oooq local_working_dir /bin/ara task list all -f json artcl_collect_dir /ara.json cp -r local_working_dir /ara_oooq artcl_collect_dir

AnsibleTask shell local_working_dir /bin/ara generate html local_working_dir /ara_oooq_uc local_working_dir /bin/ara task list all -f json artcl_collect_dir /ara.oooq.uc.json cp -r local_working_dir /ara_oooq_uc artcl_collect_dir environment ARA_DATABASE sqlite /// working_dir /ara_db.sql

AnsibleTask become True shell local_working_dir /bin/ara generate html local_working_dir /ara_oooq_oc local_working_dir /bin/ara task list all -f json artcl_collect_dir /ara.oooq.oc.json cp -r local_working_dir /ara_oooq_oc artcl_collect_dir ignore_errors True environment ARA_DATABASE sqlite /// ara_overcloud_db_path

AnsibleTask shell mkdir -p artcl_collect_dir item.dir /ara-report cp item.file artcl_collect_dir item.dir /ara-report/ansible.sqlite loop local_working_dir /ara.sqlite ara_overcloud_db_path when not ara_generate_html|bool

AnsibleTask shell local_working_dir /bin/ara result list all -f json register ara_data changed_when False

AnsibleTask shell local_working_dir /bin/ara result list all -f json register ara_data no_log True changed_when False

AnsibleTask become True shell local_working_dir /bin/ara result list all -f json register ara_root_data no_log True changed_when False

AnsibleTask shell local_working_dir /bin/ara result list all -f json register ara_oc_data environment ARA_DATABASE sqlite /// ara_overcloud_db_path no_log True changed_when False

AnsibleTask shell docker ps grep opendaylight_api register odl_container_enabled

AnsibleTask shell podman ps grep opendaylight_api register odl_container_enabled when odl_container_enabled.rc 0

AnsibleTask shell rpm -qa grep opendaylight register odl_rpm_enabled

AnsibleTask file dest= odl_extra_log_dir state=directory when odl_rpm_enabled.rc 0 or odl_container_enabled.rc 0

AnsibleTask shell bash /tmp/odl_extra_logs.sh when odl_rpm_enabled.rc 0 or odl_container_enabled.rc 0

AnsibleTask shell cp /opt/opendaylight/data/log/* /var/log/extra/odl/ journalctl -u opendaylight /var/log/extra/odl/odl_journal.log when odl_rpm_enabled.rc 0

AnsibleTask shell pkill dstat become True when dstat_logfile.stat.exists

AnsibleTask shell /tmp/dstat_graph/generate_page.sh /var/log/extra/dstat-csv.log /var/log/extra/dstat.html when dstat_logfile.stat.exists args chdir /tmp/dstat_graph

AnsibleTask command sosreport artcl_sosreport_options when artcl_collect_sosreport|bool

AnsibleTask shell echo netstat /var/log/extra/network.txt netstat -i /var/log/extra/network.txt for ipv in 4 6 do echo IPv ipv addresses /var/log/extra/network.txt ip ipv a /var/log/extra/network.txt echo IPv ipv routing /var/log/extra/network.txt ip ipv r /var/log/extra/network.txt echo IPTables IPv ipv /var/log/extra/network.txt test ipv -eq 4 iptables-save /var/log/extra/network.txt test ipv -eq 6 ip6tables-save /var/log/extra/network.txt done for NS in ip netns list cut -f 1 -d do for ipv in 4 6 do echo ==== NS ipv ==== echo IPv ipv addresses ip netns exec NS ip ipv a echo IPv ipv routing ip netns exec NS ip ipv r echo IPTables IPv ipv test ipv -eq 4 ip netns exec NS ip iptables-save test ipv -eq 6 ip netns exec NS ip ip6tables-save done PIDS= ip netns pids NS -z PIDS ps no-headers -f pids PIDS echo done /var/log/extra/network-netns for NB in ovs-vsctl show grep Bridge |awk print 2 do echo ==== Bridge name NB ==== ovs-ofctl show NB ovs-ofctl dump-flows NB echo done ovsdb-client dump /var/log/extra/network-bridges

AnsibleTask shell which openstack-status /dev/null ~/keystonerc_admin openstack-status /var/log/extra/openstack-status.txt when in inventory_hostname

AnsibleTask shell if -e working_dir /stackrc then source working_dir /stackrc openstack server list /var/log/extra/nova_list.txt fi

AnsibleTask shell if -e working_dir /stackrc then source working_dir /stackrc openstack baremetal node list /var/log/extra/baremetal_list.txt fi

AnsibleTask shell ansible_pkg_mgr list installed /var/log/extra/package-list-installed.txt

AnsibleTask shell ansible_pkg_mgr repolist -v /var/log/extra/repolist.txt

AnsibleTask shell /usr/sbin/getenforce /var/log/extra/selinux.txt

AnsibleTask shell for user in cut -f1 -d /etc/passwd do echo user crontab -u user -l grep -v \|^\s*\ \|^\s*PATH done /var/log/extra/installed_crons.txt

AnsibleTask shell repoquery -a qf sourcerpm -u|sed /var/log/extra/import-delorean.txt

AnsibleTask shell repoquery -a qf sourcerpm -u|sed /var/log/extra/import-delorean-deps.txt

AnsibleTask shell systemctl -t service failed no-legend awk print 1 xargs -r -n1 journalctl -u /var/log/extra/failed_services.txt 2 1

AnsibleTask shell pgrep haproxy test -S /var/lib/haproxy/stats echo info show stat show table socat /var/lib/haproxy/stats stdio /var/log/extra/haproxy-stats.txt || echo No HAProxy or no socket on host /var/log/extra/haproxy-stats.txt

AnsibleTask shell ansible_python.executable -m pip list /var/log/extra/pip.txt

AnsibleTask shell systemctl list-units full all /var/log/extra/services.txt systemctl status /var/log/extra/services.txt

AnsibleTask shell grep -i denied /var/log/audit/audit* grep -i denied /var/log/audit/audit* /var/log/extra/denials.txt

AnsibleTask shell grep -v ansible-command /var/log/messages grep segfault grep -v ansible-command /var/log/messages grep segfault /var/log/extra/segfaults.txt

AnsibleTask shell grep -v ansible-command /var/log/messages grep oom-killer grep -v ansible-command /var/log/messages grep oom-killer /var/log/extra/oom-killers.txt

AnsibleTask shell if -e /home/ undercloud_user /DLRN/data/repos then rm -rf /tmp/delorean_logs mkdir /tmp/delorean_logs find /home/ undercloud_user /DLRN/data/repos/ -name -exec cp parents /tmp/delorean_logs/ find /home/ undercloud_user /DLRN/ -name -exec cp /tmp/delorean_logs/ find /tmp/delorean_logs -name -exec gzip find /tmp/delorean_logs -name -exec sh -c x= mv x x .log.gz .log.txt.gz rm -rf artcl_collect_dir /delorean_logs mkdir artcl_collect_dir /delorean_logs mv /tmp/delorean_logs/home/ undercloud_user /DLRN/data/repos/* artcl_collect_dir /delorean_logs/ mv /tmp/delorean_logs/projects.ini artcl_collect_dir /delorean_logs/ fi

AnsibleTask shell journalctl since=-4h lines=100000 /var/log/journal.txt

AnsibleTask shell grep -rE -0-9 0-9 0-9 *ERROR /var/log/ sed s/\ *\ 20 0-9 0-9 0-9 0-9 0-9 0-9 0-9 0-9 0-9 0-9 0-9 0-9 \. 0-9 \+\ *\ /\2 ERROR \1\3/g /tmp/errors.txt if stat -c s /tmp/errors.txt 10485760 then ERR_NAME=big-errors.txt else ERR_NAME=errors.txt fi mv /tmp/errors.txt /var/log/extra/ ERR_NAME .txt

AnsibleTask shell for i in artcl_logstash_files|default |join do cat i done grep ^20 *| sort -sk1,2 sed s/\ 20 0-9 0-9 0-9 0-9 0-9 0-9 0-9 0-9 0-9 0-9 0-9 0-9 \.* 0-9 *\ *\ /\1 INFO \2/g /var/log/extra/logstash.txt

AnsibleTask service name telegraf state restarted enabled True when not telegraf_agent_docker become True

AnsibleTask template src molecule_scenario_directory /Dockerfile.j2 dest molecule_ephemeral_directory /Dockerfile_ item.image regex_replace ^a-zA-Z0-9_ _ with_items molecule_yml.platforms register platforms

AnsibleTask set_fact telegraf_agent_config_path /usr/local/etc when ansible_os_family FreeBSD

AnsibleTask template src etc-opt-telegraf-telegraf.conf.j2 dest /etc/opt/telegraf/telegraf.conf owner telegraf group telegraf mode,416 become True when telegraf_agent_version is version_compare 0.10.0 notify Restart Telegraf Restart Telegraf container

AnsibleTask template src telegraf.conf.j2 dest telegraf_agent_config_path /telegraf.conf owner telegraf group telegraf mode,416 become True when telegraf_agent_version is version_compare 0.10.0 notify Restart Telegraf Restart Telegraf container

AnsibleTask file state absent path telegraf_agent_config_path /telegraf.d/ when telegraf_plugins_extra_exclusive telegraf_directory.stat.exists become True notify Restart Telegraf Restart Telegraf container

AnsibleTask file state directory path telegraf_agent_config_path /telegraf.d/ owner telegraf group telegraf mode,493 when telegraf_plugins_extra_exclusive telegraf_directory.stat.exists become True notify Restart Telegraf Restart Telegraf container

AnsibleTask template src telegraf-extra-plugin.conf.j2 dest telegraf_agent_config_path /telegraf.d/ item.key .conf owner telegraf group telegraf mode,416 with_dict telegraf_plugins_extra loop_control label item.key when telegraf_plugins_extra is defined telegraf_plugins_extra is iterable item.value.state|default become True notify Restart Telegraf Restart Telegraf container

AnsibleTask file path telegraf_agent_config_path /telegraf.d/ item.key .conf state absent with_dict telegraf_plugins_extra loop_control label item.key when telegraf_plugins_extra is defined telegraf_plugins_extra is iterable item.value.state|default become True notify Restart Telegraf Restart Telegraf container

AnsibleTask service name telegraf state started enabled True become True when not telegraf_agent_docker

AnsibleTask set_fact telegraf_agent_package telegraf= telegraf_agent_version telegraf_agent_version_patch when telegraf_agent_package_state latest

AnsibleTask set_fact telegraf_agent_package_arch ansible_architecture

AnsibleTask set_fact telegraf_agent_package_arch amd64 when ansible_architecture x86_64

AnsibleTask set_fact telegraf_agent_package_arch armhf when ansible_architecture arm64

AnsibleTask file path /etc/telegraf owner telegraf group telegraf mode,488 state directory become True

AnsibleTask file path /etc/telegraf/telegraf.d owner telegraf group telegraf mode,488 state directory become True

AnsibleTask shell sysrc telegraf_flags= -quiet -config-directory=/usr/local/etc/telegraf.d tags skip_ansible_lint

AnsibleTask shell sysrc telegraf_enable= YES tags skip_ansible_lint

AnsibleTask set_fact telegraf_agent_package telegraf- telegraf_agent_version when telegraf_agent_package_state latest

AnsibleTask set_fact telegraf_redhat_releasever,7 when ansible_distribution Fedora

AnsibleTask file path item.path owner item.owner state directory with_items

AnsibleTask copy src telegraf.init dest /etc/init.d/telegraf mode,493

AnsibleTask command openssl genrsa -out certs_dir /account.key 4096 when account_key_exists.stat.exists False

AnsibleTask command mv -f certs_dir /domain.key certs_dir /domain.key.bkp when domain_key_exists.stat.exists True

AnsibleTask command mv -f certs_dir /cert.crt certs_dir /cert.crt.bkp when certificate_exists.stat.exists True

AnsibleTask command openssl genrsa -out certs_dir /domain.key 4096

AnsibleTask command openssl req -new -key certs_dir /domain.key -out certs_dir /csr.csr -subj /CN= commonName

AnsibleTask shell cat certs_dir /cert.crt wget -O intermediate_cert certs_dir /chained.pem

AnsibleTask file src= item.src dest= item.dest state=link with_items certs_dir /cert.crt certs_dir /domain.key certs_dir /chained.pem

AnsibleTask template src=templates/atomfeed-console.yml.j2 dest=/etc/atomfeed-console/atomfeed-console.yml mode=644 owner= atomfeed_console_user group= atomfeed_console_group

AnsibleTask shell iptables -nL line-numbers grep ATOMFEED_CONSOLE -m 1 cut -c 1-2 register matchedRule

AnsibleTask shell iptables -D INPUT matchedRule.stdout when matchedRule.stdout

AnsibleTask command /sbin/iptables -I INPUT 1 -p tcp dport atomfeed_console_port -j ACCEPT -m comment comment ATOMFEED_CONSOLE

AnsibleTask template src=templates/atomfeed_console_ssl.conf.j2 dest=/etc/httpd/conf.d/atomfeed_console_ssl.conf mode=644 owner= bahmni_user group= bahmni_group delegate_to groups 0

AnsibleTask file path= item.backup_to_path owner=bahmni group=bahmni mode=0755 state=directory with_items all_artifacts

AnsibleTask shell find item.backup_from_path -type f wc -l register fileβ€¨ ignore_errors True when options with_items all_artifacts

AnsibleTask set_fact artifacts_to_backup= artifacts_to_backup|default item.item.name when item.stdout is defined and item.stdout 0 with_items file.results ignore_errors True

AnsibleTask shell tar -C dirname item.backup_from_path -czvf backup_temp_dest_dir date Y- m- d_ H M S item.name .tar.gz basename item.backup_from_path 2 backup_log_file chown bahmni bahmni backup_temp_dest_dir ls -t backup_temp_dest_dir grep item.name chmod 0755 backup_temp_dest_dir ls -t backup_temp_dest_dir grep item.name cp -rp backup_temp_dest_dir ls -t backup_temp_dest_dir grep item.name item.backup_to_path 2 backup_log_file async artifacts.async_timing when artifacts_to_backup is defined and item.name in artifacts_to_backup with_items all_artifacts ignore_errors True

AnsibleTask fail msg item.item.name directory does not exist or it is empty failed_when item.stdout is defined and item.stdout 0 with_items file.results

AnsibleTask set_fact item_configured True when item.name options with_items all_artifacts

AnsibleTask fail msg options directory is not configured failed_when item_configured false

AnsibleTask shell find item.backup_from_path -type f wc -l register fileβ€¨ ignore_errors True when options in item.name with_items all_artifacts

AnsibleTask set_fact item_exists False when item.stdout is defined and item.stdout 0 with_items file.results

AnsibleTask fail msg options directory does not exist or it is empty failed_when item.stdout is defined and item.stdout 0 with_items file.results

AnsibleTask shell tar -C dirname item.backup_from_path -czvf backup_temp_dest_dir date Y- m- d_ H M S item.name .tar.gz basename item.backup_from_path 2 backup_log_file chown bahmni bahmni backup_temp_dest_dir ls -t backup_temp_dest_dir grep item.name chmod 0755 backup_temp_dest_dir ls -t backup_temp_dest_dir grep item.name cp -rp backup_temp_dest_dir ls -t backup_temp_dest_dir grep item.name item.backup_to_path 2 backup_log_file async artifacts.async_timing when options in item.name and item_exists true with_items all_artifacts ignore_errors True

AnsibleTask fail msg all_artifacts is not defined failed_when all_artifacts is not defined

AnsibleTask file path= item state=absent with_items backup_temp_dest_dir

AnsibleTask file path= item owner=bahmni group=bahmni mode=0755 state=directory with_items backup_temp_dest_dir

AnsibleTask file path= item owner=bahmni group=bahmni mode=0755 state=directory with_items log_file_dir

AnsibleTask file path= item owner=bahmni group=bahmni mode=0755 state=touch with_items backup_log_file

AnsibleTask file path= item owner= bahmni_user group= bahmni_group mode=0755 state=directory with_items patient_images_dir document_images_dir uploaded_files_dir uploaded_results_dir clinical_forms_dir

AnsibleTask template src=bahmni.repo.j2 dest=/etc/yum.repos.d/bahmni.repo

AnsibleTask fail msg Please specify timezone to be set to the server by adding value for key in /etc/bahmni-installer/setup.yml Example timezone Asia/Kolkata Take a look at https //en.wikipedia.org/wiki/List_of_tz_database_time_zones for available timezones when timezone is not defined tags ntp

AnsibleTask fail msg= Timezone specified in /etc/bahmni-installer/setup.yml is incorrect Example Asia/Kolkata Take a look at https //en.wikipedia.org/wiki/List_of_tz_database_time_zones for available time zones when timezone_exists.stat.exists False tags ntp

AnsibleTask file src=/usr/share/zoneinfo/ timezone dest=/etc/localtime state=link force=yes tags ntp

AnsibleTask command pip show setuptools grep Version register setupToolsVersion

AnsibleTask copy src=bahmni_create_connect_artifacts.py dest=/tmp/

AnsibleTask file path=/tmp/bahmni_create_connect_artifacts.py state=absent

AnsibleTask template src=mysql.repo.j2 dest=/etc/yum.repos.d/mysql.repo

AnsibleTask command yum list installed bahmni-emr register installed_bahmni_emr ignore_errors True

AnsibleTask copy src=/etc/bahmni-installer/deployment-artifacts/openmrs_backup.sql dest=/etc/bahmni-installer/deployment-artifacts/openmrs_backup.sql mode=644 owner= bahmni_user group= bahmni_group when openmrs_backup_file.stat.exists True

AnsibleTask template src=openmrs.conf.j2 dest= openmrs_install_dir /etc/openmrs.conf mode=644 owner= bahmni_user group= bahmni_group

AnsibleTask template src=bahmnicore.properties.j2 dest= openmrs_install_dir /bahmnicore.properties mode=644 owner= bahmni_user group= bahmni_group

AnsibleTask template src=rulesengine-concept.properties.j2 dest= openmrs_install_dir /rulesengine-concept.properties mode=644 owner= bahmni_user group= bahmni_group

AnsibleTask template src=add_remote_ip_in_openmrs_markers.sh.j2 dest=/opt/openmrs/add_remote_ip_in_openmrs_markers.sh mode=755 when passive is not defined or passive

AnsibleTask shell /opt/openmrs/add_remote_ip_in_openmrs_markers.sh when passive is not defined or passive

AnsibleTask template src=openmrs-runtime.properties.j2 dest= openmrs_install_dir /etc/openmrs-runtime.properties mode=644 owner= bahmni_user group= bahmni_group

AnsibleTask shell iptables -nL line-numbers grep OPENMRS -m 1 cut -c 1-2 register matchedRule

AnsibleTask command /sbin/iptables -I INPUT 1 -p tcp dport openmrs_port -j ACCEPT -m comment comment OPENMRS

AnsibleTask command mysql user= mysql_root_user password= mysql_root_password openmrs host= groups 0 batch skip-column-names execute= SELECT salt from users where username= openmrs_user_id or system_id= openmrs_user_id register salt check_mode False changed_when False when passive is not defined or passive

AnsibleTask command python -c import hashlib print hashlib.sha512 openmrs_user_password salt.stdout .encode .hexdigest register hashedPassword when passive is not defined or passive

AnsibleTask command mysql user= mysql_root_user password= mysql_root_password openmrs host= groups 0 batch skip-column-names execute= UPDATE users set password= hashedPassword.stdout where username= openmrs_user_id or system_id= openmrs_user_id check_mode False changed_when False when passive is not defined or passive

AnsibleTask command mysql user= mysql_root_user password= mysql_root_password openmrs host= groups 0 batch skip-column-names execute= UPDATE global_property set property_value= openmrs_user_password where check_mode False changed_when False when passive is not defined or passive

AnsibleTask copy src=/etc/bahmni-installer/deployment-artifacts/modules/ dest=/etc/bahmni-installer/deployment-artifacts/modules/ owner= bahmni_user group= bahmni_group mode=644

AnsibleTask template src=bahmni-two-factor-auth.conf.j2 dest=/opt/bahmni-two-factor-auth/etc/bahmni-two-factor-auth.conf mode=644 owner= bahmni_user group= bahmni_group when two_factor_auth is defined and two_factor_auth

AnsibleTask template src=bahmni-two-factor-auth.properties.j2 dest=/opt/bahmni-two-factor-auth/etc/application.properties mode=755 owner= bahmni_user group= bahmni_group when two_factor_auth is defined and two_factor_auth

AnsibleTask copy src=getversion.py dest=/var/www/cgi-bin/ mode=755 owner= bahmni_user group= bahmni_group

AnsibleTask command /usr/sbin/getenforce changed_when False register selinuxenforcing

AnsibleTask template src=emr_ssl.conf.j2 dest=/etc/httpd/conf.d/emr_ssl.conf mode=644 owner= bahmni_user group= bahmni_group delegate_to item with_items groups

AnsibleTask copy src=systemdate.sh dest=/var/www/cgi-bin/systemdate mode=755 owner= bahmni_user group= bahmni_group tags version

AnsibleTask command wget -q -O postgres_repo_rpm_location postgres_repo_download_url creates= postgres_repo_rpm_location when postgresRepoRpm.stat.exists false

AnsibleTask command yum list installed bahmni-erp register installed_bahmni_erp ignore_errors True

AnsibleTask copy src=/etc/bahmni-installer/deployment-artifacts/openerp_backup.sql dest=/etc/bahmni-installer/deployment-artifacts/openerp_backup.sql mode=644 owner= bahmni_user group= bahmni_group when openerp_backup_file.stat.exists True

AnsibleTask template src=openerp-server.conf.j2 dest=/etc/openerp/openerp-server.conf owner=openerp group=openerp mode=0655

AnsibleTask shell iptables -nL line-numbers grep BAHMNIERP -m 1 cut -c 1-2 register matchedRule

AnsibleTask command /sbin/iptables -I INPUT 1 -p tcp dport openerp_port -j ACCEPT -m comment comment BAHMNIERP

AnsibleTask command yum list installed bahmni-erp-connect register installed_bahmni_erp_connect ignore_errors True

AnsibleTask template src=bahmni-erp-connect.conf.j2 dest=/opt/bahmni-erp-connect/etc/bahmni-erp-connect.conf owner=bahmni group=bahmni mode=0644

AnsibleTask template src=erp-atomfeed.properties.j2 dest=/opt/bahmni-erp-connect/bahmni-erp-connect/WEB-INF/classes/erp-atomfeed.properties mode=644 owner= bahmni_user group= bahmni_group

AnsibleTask template src=add_remote_ip_in_openerp_markers.sh.j2 dest=/opt/bahmni-erp-connect/add_remote_ip_in_openerp_markers.sh mode=755 when passive is not defined or passive

AnsibleTask shell /opt/bahmni-erp-connect/add_remote_ip_in_openerp_markers.sh when passive is not defined or passive

AnsibleTask command yum list installed bahmni_event_log_service register installed_bahmni_event_log_service ignore_errors True

AnsibleTask template src=bahmni-event-log-service.conf.j2 dest=/opt/bahmni-event-log-service/etc/bahmni-event-log-service.conf mode=644 owner= bahmni_user group= bahmni_group

AnsibleTask template src=bahmni-event-log-service-application.properties.j2 dest=/opt/bahmni-event-log-service/bahmni-event-log-service/WEB-INF/classes/application.properties mode=755 owner= bahmni_user group= bahmni_group

AnsibleTask shell iptables -nL line-numbers grep BAHMNIEVENTLOGSERVICE -m 1 cut -c 1-2 register matchedRule

AnsibleTask command /sbin/iptables -I INPUT 1 -p tcp dport bahmni_event_log_service_port -j ACCEPT -m comment comment BAHMNIEVENTLOGSERVICE

AnsibleTask template src=bahmni_eventlog_ssl.conf.j2 dest=/etc/httpd/conf.d/bahmni_eventlog_ssl.conf mode=644 owner= bahmni_user group= bahmni_group delegate_to item with_items groups

AnsibleTask file path= item owner=bahmni group=bahmni mode=0755 state=touch with_items expire_log_file

AnsibleTask command yum list installed bahmni-implementer-interface register installed_bahmni_implementer_interface ignore_errors True

AnsibleTask command yum list installed bahmni-lab register installed_bahmni_lab ignore_errors True

AnsibleTask copy src=/etc/bahmni-installer/deployment-artifacts/openelis_backup.sql dest=/etc/bahmni-installer/deployment-artifacts/openelis_backup.sql mode=644 owner= bahmni_user group= bahmni_group when openelis_backup_file.stat.exists True

AnsibleTask template src=bahmni-lab.conf.j2 dest=/etc/bahmni-lab/bahmni-lab.conf mode=644 owner= bahmni_user group= bahmni_group

AnsibleTask template src=hibernate.cfg.xml.j2 dest=/opt/bahmni-lab/bahmni-lab/WEB-INF/classes/us/mn/state/health/lims/hibernate/hibernate.cfg.xml mode=644 owner= bahmni_user group= bahmni_group

AnsibleTask template src=log4j.xml.j2 dest=/opt/bahmni-lab/bahmni-lab/WEB-INF/classes/ mode=644 owner= bahmni_user group= bahmni_group

AnsibleTask template src=atomfeed.properties.j2 dest=/opt/bahmni-lab/bahmni-lab/WEB-INF/classes/atomfeed.properties mode=644 owner= bahmni_user group= bahmni_group

AnsibleTask shell iptables -nL line-numbers grep BAHMNILAB -m 1 cut -c 1-2 register matchedRule

AnsibleTask command /sbin/iptables -I INPUT 1 -p tcp dport bahmni_lab_port -j ACCEPT -m comment comment BAHMNILAB

AnsibleTask template src=add_remote_ip_in_openelis_markers.sh.j2 dest=/opt/bahmni-lab/add_remote_ip_in_openelis_markers.sh mode=755 when passive is not defined or passive

AnsibleTask shell /opt/bahmni-lab/add_remote_ip_in_openelis_markers.sh when passive is not defined or passive

AnsibleTask template src=bahmnilab_ssl.conf.j2 dest=/etc/httpd/conf.d/bahmnilab_ssl.conf mode=644 owner= bahmni_user group= bahmni_group delegate_to item with_items groups

AnsibleTask command yum list installed bahmni-lab-connect register installed_bahmni_lab_connect ignore_errors True

AnsibleTask become True shell curl -sL https //rpm.nodesource.com/setup_10.x sudo bash

AnsibleTask copy src=/etc/bahmni-installer/deployment-artifacts/odoo_backup.sql dest=/etc/bahmni-installer/deployment-artifacts/odoo_backup.sql mode=644 owner= bahmni_user group= bahmni_group when odoo_backup_file.stat.exists True

AnsibleTask template src=odoo.conf.j2 dest=/etc/odoo.conf owner=odoo group=odoo mode=0655

AnsibleTask command yum list installed bahmni-reports register installed_bahmni_reports ignore_errors True

AnsibleTask template src=bahmni-reports.conf.j2 dest=/opt/bahmni-reports/etc/bahmni-reports.conf mode=644 owner= bahmni_user group= bahmni_group

AnsibleTask template src=bahmni-reports.properties.j2 dest=/opt/bahmni-reports/etc/bahmni-reports.properties mode=644 owner= bahmni_user group= bahmni_group

AnsibleTask file path= item owner= bahmni_user group= bahmni_group mode=0755 state=directory with_items reports_save_dir

AnsibleTask shell iptables -nL line-numbers grep BAHMNIREPORTS -m 1 cut -c 1-2 register matchedRule

AnsibleTask command /sbin/iptables -I INPUT 1 -p tcp dport bahmni_reports_port -j ACCEPT -m comment comment BAHMNIREPORTS

AnsibleTask template src=bahmni_reports_ssl.conf.j2 dest=/etc/httpd/conf.d/bahmni_reports_ssl.conf mode=644 force=yes owner= bahmni_user group= bahmni_group delegate_to item with_items groups

AnsibleTask shell ls -1tr item.restore_from_path grep item.name register fileβ€¨ ignore_errors True when options with_items all_artifacts

AnsibleTask set_fact artifacts_to_restore= artifacts_to_restore|default item.item.name when item.rc is defined and item.rc 1 with_items file.results ignore_errors True

AnsibleTask shell cp -r item.restore_to_path item.name item.restore_to_path item.name _old/ async artifacts.async_timing when artifacts_to_restore is defined and item.name in artifacts_to_restore with_items all_artifacts

AnsibleTask shell tar -xzvf item.restore_from_path ls -A1 item.restore_from_path grep item.name tail -1 -C restore_temp_dest_dir 2 restore_log_file cp -rp restore_temp_dest_dir item.name item.restore_to_path 2 restore_log_file async artifacts.async_timing when artifacts_to_restore is defined and item.name in artifacts_to_restore with_items all_artifacts ignore_errors True

AnsibleTask fail msg item.item.name zip file does not exist failed_when item.rc is defined and item.rc 1 with_items file.results

AnsibleTask shell ls -1tr item.restore_from_path grep options β€¨ register fileβ€¨ ignore_errors True when options in item.name with_items all_artifacts

AnsibleTask fail msg options zip file is not configured failed_when item_configured false

AnsibleTask fail msg options zip file does not exist or it is empty failed_when item.rc is defined and item.rc 1 with_items file.results

AnsibleTask shell cp -r item.restore_to_path item.name item.restore_to_path item.name _old/ async artifacts.async_timing when options in item.name with_items all_artifacts ignore_errors True

AnsibleTask shell tar -xzvf item.restore_from_path ls -A1 item.restore_from_path grep item.name tail -1 -C restore_temp_dest_dir 2 restore_log_file cp -rp restore_temp_dest_dir item.name item.restore_to_path 2 restore_log_file async artifacts.async_timing when options in item.name with_items all_artifacts ignore_errors True

AnsibleTask file path= item state=absent with_items restore_temp_dest_dir

AnsibleTask file path= item owner=bahmni group=bahmni mode=0755 state=directory with_items restore_temp_dest_dir

AnsibleTask file path= item owner=bahmni group=bahmni mode=0755 state=touch with_items restore_log_file

AnsibleTask command yum list installed bahmni-web register installed_bahmni_web ignore_errors True

AnsibleTask template src=ssl.conf.j2 dest=/etc/httpd/conf.d/ssl.conf mode=644 owner= bahmni_user group= bahmni_group tags event-log

AnsibleTask command yum list installed dcm4chee register installed_dcm4chee ignore_errors True

AnsibleTask shell iptables -nL line-numbers grep DCM4CHEE -m 1 cut -c 1-2 register matchedRule

AnsibleTask command /sbin/iptables -I INPUT 1 -p tcp dport dchm4chee_port -j ACCEPT -m comment comment DCM4CHEE

AnsibleTask command /sbin/iptables -I INPUT 1 -p tcp dport dcm4chee_imagestorage_port -j ACCEPT -m comment comment dcm4cheeimagestorage

AnsibleTask template src=oviyam2-1-config.xml.j2 dest=/opt/dcm4chee/etc/oviyam2-1-config.xml mode=644 owner= bahmni_user group= bahmni_group

AnsibleTask template src=server.xml.j2 dest=/opt/dcm4chee/etc/server.xml mode=644 owner= bahmni_user group= bahmni_group

AnsibleTask template src=dcm4chee.conf.j2 dest=/opt/dcm4chee/etc/dcm4chee.conf mode=644 owner= bahmni_user group= bahmni_group

AnsibleTask template src=pacs-postgres-ds.xml.j2 dest=/opt/dcm4chee/etc/pacs-postgres-ds.xml mode=644 owner= bahmni_user group= bahmni_group

AnsibleTask template src=orm2dcm_bahmni.xsl.j2 dest=/opt/dcm4chee/etc/orm2dcm_bahmni.xsl mode=644 owner= bahmni_user group= bahmni_group

AnsibleTask file path= dcm4chee_archive_dir owner= bahmni_user group= bahmni_group mode=0755 state=directory

AnsibleTask file src= dcm4chee_archive_dir dest= dcm4chee_archive_dir_link owner= bahmni_user group= bahmni_group state=link

AnsibleTask template src=dcm4chee_ssl.conf.j2 dest=/etc/httpd/conf.d/dcm4chee_ssl.conf force=yes mode=644 owner= bahmni_user group= bahmni_group delegate_to item with_items groups

AnsibleTask file path= java_rpm_location state=absent when force_new_java_download true

AnsibleTask command wget -q -p -O java_rpm_location no-check-certificate no-cookies header oraclelicense=accept-securebackup-cookie java_download_url creates= java_rpm_location when downloaded_java.stat.exists false or force_new_java_download true

AnsibleTask shell iptables -nL line-numbers grep WEB SERVER -m 1 cut -c 1-2 register matchedRule

AnsibleTask command /sbin/iptables -I INPUT 1 -p tcp dport 80 -j ACCEPT -m comment comment WEB SERVER

AnsibleTask shell iptables -nL line-numbers grep https -m 1 cut -c 1-2 register matchedRule

AnsibleTask command /sbin/iptables -I INPUT 1 -p tcp dport 443 -j ACCEPT -m comment comment https

AnsibleTask file path=/etc/bahmni-certs state=directory owner= bahmni_user group= bahmni_group mode=755

AnsibleTask file src= item.src dest= item.dest state=link with_items when certificate_link.stat.exists False

AnsibleTask template src=index.html.j2 dest=/var/www/html/index.html mode=644 owner= bahmni_user group= bahmni_group

AnsibleTask file path=/var/www/bahmni_revisions state=directory owner= bahmni_user group= bahmni_group mode=755

AnsibleTask copy src=bahmni_openmrs_revision.json dest=/var/www/bahmni_revisions/ mode=644 owner= bahmni_user group= bahmni_group

AnsibleTask copy src=bahmni_openerp_revision.json dest=/var/www/bahmni_revisions/ mode=644 owner= bahmni_user group= bahmni_group when groups length 0

AnsibleTask copy src=bahmni_openelis_revision.json dest=/var/www/bahmni_revisions/ mode=644 owner= bahmni_user group= bahmni_group when groups length 0

AnsibleTask copy src= item dest=/var/www/html/ with_items maintenance.html maintenance.enable src.jpg bahmni-logo.png ignore_errors True when httpd_html_dir.stat.exists True and maintenance_status

AnsibleTask file path=/var/www/html/maintenance.enable state=absent when maintenance_status

AnsibleTask file path=/var/www/bahmni_config state=directory owner= bahmni_user group= bahmni_group mode=755 recurse=yes

AnsibleTask file src=/var/www/bahmni_config/openmrs/obscalculator dest=/opt/openmrs/obscalculator state=link owner= bahmni_user group= bahmni_group when obscalculator_dir.stat.exists True

AnsibleTask file src=/var/www/bahmni_config/openmrs/ordertemplates dest=/opt/openmrs/ordertemplates state=link owner= bahmni_user group= bahmni_group when ordertemplates_dir.stat.exists True

AnsibleTask file src=/var/www/bahmni_config/openmrs/encounterModifier dest=/opt/openmrs/encounterModifier state=link owner= bahmni_user group= bahmni_group when encounterModifier_dir.stat.exists True

AnsibleTask file src=/var/www/bahmni_config/openmrs/patientMatchingAlgorithm dest=/opt/openmrs/patientMatchingAlgorithm state=link owner= bahmni_user group= bahmni_group when patientMatchingAlgorithm_dir.stat.exists True

AnsibleTask file src=/var/www/bahmni_config/openmrs/elisFeedInterceptor dest=/opt/openmrs/elisFeedInterceptor state=link owner= bahmni_user group= bahmni_group when elisFeedInterceptor_dir.stat.exists True

AnsibleTask file src=/var/www/bahmni_config/openmrs/observationsAdder dest=/opt/openmrs/observationsAdder state=link owner= bahmni_user group= bahmni_group when observationsAdder_dir.stat.exists True

AnsibleTask file src=/var/www/bahmni_config dest=/opt/openmrs/bahmni_config state=link owner= bahmni_user group= bahmni_group

AnsibleTask fail msg Please specify implementation name in /etc/bahmni-installer/setup.yml Bahmni will pick the config from /etc/bahmni-installer/deployment-artifacts/ Example implementation_name default when implementation_name is not defined

AnsibleTask file path=/etc/bahmni-installer state=directory mode=0755 owner= bahmni_user group= bahmni_group

AnsibleTask file path=/etc/bahmni-installer/deployment-artifacts state=directory mode=0755 owner= bahmni_user group= bahmni_group

AnsibleTask file path=/etc/bahmni-installer/atomfeed-backup state=directory mode=0755 owner= bahmni_user group= bahmni_group

AnsibleTask template src=bahmni.conf.j2 dest=/etc/bahmni-installer/bahmni.conf mode=644 owner= bahmni_user group= bahmni_group

AnsibleTask file path=/etc/bahmni-installer/deployment-artifacts/modules state=directory owner=bahmni group=bahmni mode=0755 recurse=yes

AnsibleTask sudo True file path=/etc/bahmni-backrest.conf state=touch owner=root mode=777 when backrest_status.stat.exists False

AnsibleTask sudo True file path=/var/log/backrest state=directory mode=777 when backrest_status.stat.exists False

AnsibleTask sudo True file path=/var/lib/pgbackrest state=directory mode=777 when backrest_status.stat.exists False

AnsibleTask sudo True template src=bahmni-backrest.conf.j2 dest=/etc/bahmni-backrest.conf when backrest_status.stat.exists False

AnsibleTask shell iptables -L register iptablesrules check_mode False

AnsibleTask command /sbin/iptables -A INPUT -i lo -j ACCEPT -m comment comment lo when iptablesrules.stdout.find lo -1

AnsibleTask command /sbin/iptables -A INPUT -m state state ESTABLISHED RELATED -j ACCEPT when iptablesrules.stdout.find ESTABLISHED -1

AnsibleTask command /sbin/iptables -A INPUT -p tcp dport 22 -j ACCEPT -m comment comment SSH when iptablesrules.stdout.find SSH -1

AnsibleTask command mysql version register mysqlVersion ignore_errors True

AnsibleTask file path=/var/log/mysql state=directory mode=0755 owner=mysql group=mysql

AnsibleTask template src=templates/my.cnf.j2 dest=/etc/my.cnf backup=yes mode=755 register my_cnf

AnsibleTask shell grep password /var/log/mysqld.log awk print 11 register mysql_temp_password ignore_errors True

AnsibleTask shell mysql -e SET PASSWORD PASSWORD mysql_root_password FLUSH PRIVILEGES connect-expired-password -u root -i -p mysql_temp_password.stdout when mysql_temp_password.stdout register mysqlPasswordUpdated ignore_errors True

AnsibleTask shell mysql -e UPDATE mysql.user SET authentication_string=PASSWORD mysql_root_password WHERE FLUSH PRIVILEGES -u root -i -p mysql_old_root_password when mysqlPasswordUpdated|skipped or mysqlPasswordUpdated|failed

AnsibleTask command mysql_upgrade -u mysql_root_user -p mysql_root_password ignore_errors True

AnsibleTask shell iptables -nL line-numbers grep MYSQL -m 1 cut -c 1-2 register matchedRule

AnsibleTask command /sbin/iptables -I INPUT 1 -p tcp dport 3306 -j ACCEPT -m comment comment MYSQL

AnsibleTask shell yum list installed grep xtrabackup register installed_xtrabackup ignore_errors True tags install

AnsibleTask set_fact backup_path openmrs.path db db retention_limit openmrs.retention_limit when db openmrs

AnsibleTask set_fact backup_path bahmni_reports.path db db retention_limit bahmni_reports.retention_limit when db bahmni_reports

AnsibleTask shell mysql -u mysql_root_user -p mysql_root_password -e DATABASES grep db register dbstatus ignore_errors True

AnsibleTask fail msg ERROR Database db does not exist when dbstatus.rc 0

AnsibleTask file path backup_path state directory owner bahmni_user group bahmni_group mode,511

AnsibleTask shell yum list installed grep xtrabackup register installed_xtrabackup ignore_errors True

AnsibleTask shell echo ` date Y m d- H M S ` STARTED Taking backup using mysql dump log_file when installed_xtrabackup.stdout.find percona-xtrabackup -1

AnsibleTask shell mysqldump -u mysql_root_user -p mysql_root_password routines databases db grep -v SECURITY DEFINER gzip backup_path db _dump_ time.stdout .sql.gz sudo True when installed_xtrabackup.stdout.find percona-xtrabackup -1

AnsibleTask shell echo ` date Y m d- H M S ` ENDED Taking backup using mysql dump log_file when installed_xtrabackup.stdout.find percona-xtrabackup -1

AnsibleTask shell echo ` date Y m d- H M S ` STARTED Taking backup using Xtrabackup Strategy strategy log_file when installed_xtrabackup.stdout.find percona-xtrabackup 0

AnsibleTask file path backup_path owner bahmni_user group bahmni_group recurse True mode,511

AnsibleTask shell touch backup_path /backup_info.txt cat backup_path /backup_info.txt|tail -n 1|cut -f 3 -d register base_directory when strategy

AnsibleTask shell echo ` date Y m d H M S ` strategy latest_backup_dir backup_path time.stdout _ strategy /var/log/bahmni-backup.log when latest_backup_dir is defined

AnsibleTask shell xtrabackup user= mysql_root_user password= mysql_root_password backup target-dir= backup_path time.stdout _full/ databases db sudo True when strategy full or strategy incr and result_files.matched 0

AnsibleTask shell echo ` date Y m d H M S ` time.stdout _full backup_path /backup_info.txt sudo True when strategy incr and result_files.matched 0

AnsibleTask shell mysqldump -u mysql_root_user password= mysql_root_password no-data routines db backup_path time.stdout _full/ db _schema.sql when strategy full or strategy incr and result_files.matched 0

AnsibleTask shell echo ` date Y m d H M S ` strategy time.stdout _ strategy backup_path /backup_info.txt sudo True when strategy full

AnsibleTask shell echo ` date Y m d- H M S ` COMPLETED Full backup using Xtrabackup to dir backup_path time.stdout _full/ log_file when strategy full or strategy incr and result_files.matched 0

AnsibleTask shell xtrabackup user= mysql_root_user password= mysql_root_password backup target-dir= backup_path time.stdout _incr/ incremental-basedir= latest_backup_dir databases db sudo True when strategy incr and result_files.matched 0

AnsibleTask shell mysqldump -u mysql_root_user password= mysql_root_password no-data routines db backup_path time.stdout _incr/ db _schema.sql when strategy incr and result_files.matched 0

AnsibleTask shell echo ` date Y m d H M S ` strategy time.stdout _ strategy base_directory.stdout backup_path /backup_info.txt sudo True when strategy incr and result_files.matched 0

AnsibleTask shell echo ` date Y m d- H M S ` COMPLETED Incremental backup using Xtrabackup to dir backup_path time.stdout _incr/ log_file when strategy incr and result_files.matched 0

AnsibleTask shell ls -1tr backup_path |grep _full|tail -n retention_limit |head -1 register oldest_backup_dir_to_retain

AnsibleTask file state absent path item.path when item.ctime oldest_backup_to_retain.files 0 .ctime with_items result_files.files default

AnsibleTask shell rsync -avP -e ssh backup_path sync.user sync.host sync.path when not sync.host is undefined or sync.host is none or sync.host trim

AnsibleTask set_fact restore_path openmrs.restore_path when db openmrs

AnsibleTask set_fact restore_path bahmni_reports.restore_path when db bahmni_reports

AnsibleTask fail msg ERROR File restore_point does not exist when file.stat.exists false

AnsibleTask shell mysql -u mysql_root_user -p mysql_root_password database db when dbstatus.rc 0

AnsibleTask shell echo ` date Y m d- H M S ` STARTED Restoring dump restore_path restore_point log_file

AnsibleTask shell gunzip -c restore_path restore_point mysql -u mysql_root_user -p mysql_root_password

AnsibleTask shell echo ` date Y m d- H M S ` COMPLETED Restoring dump restore_path restore_point log_file

AnsibleTask shell echo ` date Y m d- H M S ` STARTED Restore using xtrabackup restore_path restore_point log_file

AnsibleTask shell mysql -u mysql_root_user -p mysql_root_password database db

AnsibleTask shell mysql -u mysql_root_user -p mysql_root_password global foreign_key_checks=0

AnsibleTask shell cat restore_path restore_point db _schema.sql mysql -u mysql_root_user -p mysql_root_password db become True

AnsibleTask shell cp -f /tmp/restore_dir/base/ db /*.ibd /var/lib/mysql/ db become True

AnsibleTask shell chmod 660 /var/lib/mysql/ db /*.ibd chown mysql mysql /var/lib/mysql/ db /*.ibd become True

AnsibleTask shell mysql -u mysql_root_user -p mysql_root_password global foreign_key_checks=1

AnsibleTask shell echo ` date Y m d- H M S ` COMPLETED Restore using xtrabackup restore_path restore_point log_file

AnsibleTask template src=templates/my.cnf.j2 dest=/etc/my.cnf backup=yes mode=755

AnsibleTask file path=/opt/mysql-replication group= bahmni_group owner= bahmni_user mode=0755 state=directory recurse=yes

AnsibleTask shell mysqldump -u mysql_root_user -p mysql_root_password routines all-databases grep -v SECURITY DEFINER gzip /opt/mysql-replication/mysql_dump.sql.gz sudo True

AnsibleTask copy src=/tmp/mysql_dump.sql.gz dest=/opt/mysql-replication/ mode=644 owner= bahmni_user group= bahmni_group

AnsibleTask shell gunzip -c /opt/mysql-replication/mysql_dump.sql.gz mysql -u mysql_root_user -p mysql_root_password

AnsibleTask template src=ssmtp.conf dest=/etc/ssmtp/ssmtp.conf owner=root group=nagios mode=0664 notify Restart ssmtp

AnsibleTask template src=revaliases dest=/etc/ssmtp/revaliases owner=root group=nagios mode=0664 notify Restart ssmtp

AnsibleTask fail msg Please specify email id to which nagios mail notifications should be sent by adding value for key in /etc/bahmni-installer/setup.yml Example nagios_contact_email abc gmail.com when nagios_contact_email is not defined

AnsibleTask shell iptables -L register iptablesrules tags iptables

AnsibleTask command /sbin/iptables -I INPUT 1 -p tcp dport 80 -j ACCEPT -m comment comment ApacheHttp when iptablesrules.stdout.find ApacheHttp -1 tags iptables

AnsibleTask shell iptables-save /etc/sysconfig/iptables tags iptables

AnsibleTask template src=cgi.cfg dest=/etc/nagios/cgi.cfg owner=root group=nagios mode=0664 notify Restart Apache

AnsibleTask template src=nagios.cfg dest=/etc/nagios/nagios.cfg owner=root group=nagios mode=0664 notify Restart Apache

AnsibleTask template src=commands.cfg dest=/etc/nagios/objects/commands.cfg owner=root group=nagios mode=0664 notify Restart Apache

AnsibleTask template src=templates.cfg dest=/etc/nagios/objects/templates.cfg owner=root group=nagios mode=0664 notify Restart Apache

AnsibleTask template src=contacts.cfg dest=/etc/nagios/objects/contacts.cfg owner=root group=nagios mode=0664 notify Restart Apache

AnsibleTask template src=localhost.cfg dest=/etc/nagios/objects/localhost.cfg owner=root group=nagios mode=0664 notify Restart Apache

AnsibleTask template src=hosts.cfg dest=/etc/nagios/objects/hosts.cfg owner=root group=nagios mode=0664 notify Restart Apache tags hosts

AnsibleTask template src=hostgroups.cfg dest=/etc/nagios/objects/hostgroups.cfg owner=root group=nagios mode=0664 notify Restart Apache tags hosts

AnsibleTask template src=services.cfg dest=/etc/nagios/objects/services.cfg owner=root group=nagios mode=0664 notify Restart Apache tags hosts

AnsibleTask template src=timeperiods.cfg dest=/etc/nagios/objects/timeperiods.cfg owner=root group=nagios mode=0664 notify Restart Apache

AnsibleTask template src=nagios.conf dest=/etc/httpd/conf.d/nagios.conf owner=root group=root mode=0664 notify Restart Apache

AnsibleTask template src=nrpe.cfg dest=/etc/nagios/nrpe.cfg owner=root group=root mode=0644 notify restart nagios-nrpe-server

AnsibleTask copy src= item dest=/usr/lib64/nagios/plugins/ item mode=0755 owner=root group=root with_items check_exit_status.pl check_postgres.pl check_scheduled_tasks.py

AnsibleTask command /sbin/iptables -I INPUT 1 -p tcp dport 5666 -j ACCEPT -m comment comment NagiosNRPE when iptablesrules.stdout.find NagiosNRPE -1 tags iptables

AnsibleTask shell iptables-save /etc/sysconfig/iptables sudo True tags iptables

AnsibleTask command alternatives install /usr/bin/java java /usr/java/default/bin/java 2000

AnsibleTask command alternatives install /usr/bin/javac javac /usr/java/default/bin/javac 2000 when java_runtime jdk

AnsibleTask command alternatives install /usr/bin/jar jar /usr/java/default/bin/jar 2000 when java_runtime jdk

AnsibleTask command yum list installed pacs-integration register installed_pacs_integration ignore_errors True

AnsibleTask template src=pacs-integration.conf.j2 dest=/opt/pacs-integration/etc/pacs-integration.conf mode=644 owner= bahmni_user group= bahmni_group

AnsibleTask template src=atomfeed.properties.j2 dest=/opt/pacs-integration/pacs-integration/WEB-INF/classes/atomfeed.properties mode=644 owner= bahmni_user group= bahmni_group

AnsibleTask template src=application.properties.j2 dest=/opt/pacs-integration/pacs-integration/WEB-INF/classes/application.properties mode=644 owner= bahmni_user group= bahmni_group

AnsibleTask shell iptables -nL line-numbers grep PACSINTEGRATION -m 1 cut -c 1-2 register matchedRule

AnsibleTask command /sbin/iptables -I INPUT 1 -p tcp dport pacs_integration_port -j ACCEPT -m comment comment PACSINTEGRATION

AnsibleTask template src=add_remote_ip_in_bahmni_pacs_markers.sh.j2 dest=/opt/pacs-integration/add_remote_ip_in_bahmni_pacs_markers.sh mode=755 when passive is not defined or passive

AnsibleTask shell /opt/pacs-integration/add_remote_ip_in_bahmni_pacs_markers.sh ignore_errors True when passive is not defined or passive

AnsibleTask file path= postgres.path state=directory owner=postgres group=postgres mode=777

AnsibleTask sudo True command sudo -u postgres pgbackrest register installed_pgbackrest ignore_errors True

AnsibleTask sudo True shell cd sudo -u postgres pgbackrest stanza=bahmni-postgres type=full log-level-console=info backup 2 logfile when strategy full

AnsibleTask sudo True shell cd sudo -u postgres pgbackrest stanza=bahmni-postgres type=incr log-level-console=info backup 2 logfile when strategy incr

AnsibleTask file path= postgres.path options state=directory mode=777

AnsibleTask shell pg_dump -Upostgres create options gzip postgres.path options options _dump_ time.stdout .sql.gz sudo True

AnsibleTask template src=RPM-GPG-KEY-CentOS-SIG-SCLo.j2 dest=/etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-SIG-SCLo

AnsibleTask template src=CentOS-SCLo-scl.repo.j2 dest=/etc/yum.repos.d/CentOS-SCLo-scl.repo

AnsibleTask template src=CentOS-SCLo-scl-rh.repo.j2 dest=/etc/yum.repos.d/CentOS-SCLo-scl-rh.repo

AnsibleTask sudo True shell wget -q -O \https //github.com/pgbackrest/pgbackrest/archive/release/1.12.tar.gz \tar zx -C /home/bahmni/

AnsibleTask sudo True file path= item state=absent with_items /usr/bin/pgbackrest /usr/bin/pg_backrest /usr/lib/perl5/BackRest /usr/share/perl5/BackRest /usr/lib/perl5/pgbackrest /usr/share/perl5/pgBackRest

AnsibleTask sudo True command cp -R /home/bahmni/pgbackrest-release-1.12/lib/pgBackRest /usr/share/perl5/

AnsibleTask sudo True shell find /usr/share/perl5/pgBackRest -type f -exec chmod 644

AnsibleTask sudo True shell find /usr/share/perl5/pgBackRest -type d -exec chmod 755

AnsibleTask become True shell cp -R /home/bahmni/pgbackrest-release-1.12/bin/pgbackrest /usr/bin/pgbackrest chmod 777 /usr/bin/pgbackrest

AnsibleTask sudo True file path=/var/log/pgbackrest state=directory mode=777 owner=postgres group=postgres

AnsibleTask sudo True file path=/var/lib/pgbackrest state=directory mode=777 owner=postgres group=postgres

AnsibleTask sudo True file path=/etc/pgbackrest.conf state=touch owner=postgres mode=777

AnsibleTask sudo True template src=pgbackrest.conf.j2 dest=/etc/pgbackrest.conf

AnsibleTask become True become_user postgres shell pgbackrest stanza=bahmni-postgres log-level-console=info stanza-create

AnsibleTask shell gunzip -c postgres.path options restore_point psql -U postgres

AnsibleTask command /usr/pgsql- postgres_version /bin/postgresql postgres_bin_version -setup initdb creates=/var/lib/pgsql/ postgres_version /data/postgresql.conf

AnsibleTask file path=/var/lib/pgsql/ postgres_version /data/recovery.conf state=absent when inventory_hostname in groups or inventory_hostname in groups or inventory_hostname in groups or inventory_hostname in groups register recovery_conf

AnsibleTask shell iptables -nL line-numbers grep POSTGRES -m 1 cut -c 1-2 register matchedRule

AnsibleTask command /sbin/iptables -I INPUT 1 -p tcp dport 5432 -j ACCEPT -m comment comment POSTGRES

AnsibleTask file path=/var/lib/pgsql/ postgres_version /data/recovery.conf state=absent when inventory_hostname in groups or inventory_hostname in groups or inventory_hostname in groups or inventory_hostname in groups

AnsibleTask file path=/var/lib/pgsql/ postgres_version /data-backup state=absent

AnsibleTask command mv -f /var/lib/pgsql/ postgres_version /data /var/lib/pgsql/ postgres_version /data-backup

AnsibleTask shell sudo -u postgres pg_basebackup -h master_db -D /var/lib/pgsql/ postgres_version /data -U replication_user -v -P xlog-method=stream

AnsibleTask template src=recovery.conf.j2 dest=/var/lib/pgsql/ postgres_version /data/recovery.conf mode=644 owner=postgres group=postgres

AnsibleTask fail msg= You will have to reboot machine to have selinux enabled Reboot and trigger installation again If you wish to disable selinux set to permissive or disabled in /etc/bahmni-installer/setup.yml when selinux_status.stdout.find Disabled -1

AnsibleTask copy src=bahmni_httpd_home_dir.te dest=/tmp/bahmni_httpd_home_dir.te

AnsibleTask command checkmodule -M -m -o /tmp/bahmni_httpd_home_dir.mod /tmp/bahmni_httpd_home_dir.te

AnsibleTask command semodule_package -o /tmp/bahmni_httpd_home_dir.pp -m /tmp/bahmni_httpd_home_dir.mod

AnsibleTask file path= item state=absent with_items /tmp/bahmni_httpd_home_dir.te /tmp/bahmni_httpd_home_dir.mod /tmp/bahmni_httpd_home_dir.pp

AnsibleTask command container_exec_cmd default ceph cluster cluster osd set noup delegate_to groups 0 run_once True changed_when False

AnsibleTask command container_exec_cmd default ceph cluster cluster osd unset noup delegate_to groups 0 run_once True changed_when False

AnsibleTask debug msg Playbook has complete However note that it will be deprecated in a future release You can achieve the same goal using the main playbook with limit

AnsibleTask set_fact docker2podman True container_binary podman container_binding_name podman container_service_name podman container_package_name podman

AnsibleTask debug msg WARNING inventory_hostname is already using bluestore Skipping all tasks when current_objectstore

AnsibleTask fail msg nvme_device has not been set by the user when nvme_device is undefined or nvme_device

AnsibleTask become False copy content logfile dest logfile_path delegate_to localhost

AnsibleTask fail msg Exiting lv-teardown playbook logical volumes were NOT torn down To tear down the logical volumes either say on the prompt or or use ` -e ireallymeanit=yes ` on the command line when invoking the playbook when ireallymeanit

AnsibleTask shell grep /var/lib/ceph/osd /proc/mounts awk print 2 register old_osd_filesystems

AnsibleTask command umount -v item with_items old_osd_filesystems.stdout_lines

AnsibleTask command killall -q lvcreate pvcreate vgcreate lvconvert || echo -n failed_when False

AnsibleTask command pvremove force yes item with_items hdd_devices

AnsibleTask fail msg Exiting purge-cluster playbook cluster was NOT purged To purge the cluster either say on the prompt or or use ` -e ireallymeanit=yes ` on the command line when invoking the playbook when ireallymeanit

AnsibleTask service name nfs-ganesha state stopped failed_when False when ansible_service_mgr

AnsibleTask service name ceph-mds ansible_hostname state stopped enabled False failed_when False

AnsibleTask service name ceph-mgr ansible_hostname state stopped enabled False failed_when False when ansible_service_mgr

AnsibleTask service name state stopped enabled False failed_when False

AnsibleTask service name ceph-radosgw rgw ansible_hostname item.instance_name state stopped enabled False failed_when False with_items rgw_instances

AnsibleTask service name ceph-rbd-mirror rbd-mirror ansible_hostname state stopped failed_when False

AnsibleTask set_fact lvm_volumes when lvm_volumes is not defined

AnsibleTask shell if -d /var/lib/ceph/osd then ls /var/lib/ceph/osd sed *-// fi register osd_ids changed_when False

AnsibleTask service name ceph-osd item state stopped enabled False with_items osd_ids.stdout_lines when ansible_service_mgr

AnsibleTask file path item state absent with_items /usr/lib/udev/rules.d/95-ceph-osd.rules /usr/lib/udev/rules.d/60-ceph-by-parttypeuuid.rules

AnsibleTask shell blkid -t TYPE=crypto_LUKS -s PARTLABEL -s PARTUUID grep ceph.* grep -o PARTUUID cut -d -f 2 register encrypted_ceph_partuuid

AnsibleTask shell grep /var/lib/ceph/osd /proc/mounts || echo -n awk print 2 register mounted_osd changed_when False

AnsibleTask shell umount item with_items mounted_osd.stdout_lines

AnsibleTask file path /var/lib/ceph/osd/ state absent register remove_osd_mountpoints ignore_errors True

AnsibleTask command dmsetup wipe_table force item with_items encrypted_ceph_partuuid.stdout_lines when encrypted_ceph_partuuid.stdout_lines length 0

AnsibleTask command dmsetup remove retry force item with_items encrypted_ceph_partuuid.stdout_lines when encrypted_ceph_partuuid.stdout_lines length 0

AnsibleTask shell cryptsetup luksDump /dev/disk/by-partuuid/ item awk offset print 3 register payload_offset with_items encrypted_ceph_partuuid.stdout_lines when encrypted_ceph_partuuid.stdout_lines length 0

AnsibleTask command blockdev getpbsz /dev/disk/by-partuuid/ item with_items encrypted_ceph_partuuid.stdout_lines when encrypted_ceph_partuuid.stdout_lines length 0 register phys_sector_size

AnsibleTask command dd if=/dev/zero of=/dev/disk/by-partuuid/ item.0 bs= item.1.stdout count= item.2.stdout oflag=direct with_together encrypted_ceph_partuuid.stdout_lines payload_offset.results phys_sector_size.results

AnsibleTask shell blkid -o device -t PARTLABEL= ceph data failed_when False register ceph_data_partition_to_erase_path

AnsibleTask shell blkid -o device -t PARTLABEL= ceph lockbox failed_when False register ceph_lockbox_partition_to_erase_path

AnsibleTask shell command -v ceph-volume failed_when False register ceph_volume_present

AnsibleTask shell blkid -o device -t PARTLABEL= ceph block failed_when False register ceph_block_partition_to_erase_path

AnsibleTask shell blkid -o device -t PARTLABEL= ceph journal failed_when False register ceph_journal_partition_to_erase_path

AnsibleTask shell blkid -o device -t PARTLABEL= ceph block.db failed_when False register ceph_db_partition_to_erase_path

AnsibleTask shell blkid -o device -t PARTLABEL= ceph block.wal failed_when False register ceph_wal_partition_to_erase_path

AnsibleTask command lsblk nodeps -no pkname item register tmp_resolved_parent_device with_items combined_devices_list

AnsibleTask set_fact resolved_parent_device tmp_resolved_parent_device.results map list unique

AnsibleTask shell wipefs all item dd if=/dev/zero of= item bs=1 count=4096 with_items combined_devices_list

AnsibleTask shell if the disk passed is a raw device AND the boot system disk if parted -s /dev/ item print grep -sq boot then echo Looks like /dev/ item has a boot partition echo if you want to delete specific partitions point to the partition instead of the raw device echo Do not use your system disk exit 1 fi sgdisk -Z clear mbrtogpt -g /dev/ item dd if=/dev/zero of=/dev/ item bs=1M count=200 parted -s /dev/ item mklabel gpt partprobe /dev/ item udevadm settle timeout=600 with_items resolved_parent_device

AnsibleTask service name ceph- item ansible_hostname state stopped enabled False failed_when False with_items mon mgr

AnsibleTask file path item state absent with_items /var/lib/ceph/mon /var/lib/ceph/bootstrap-mds /var/lib/ceph/bootstrap-osd /var/lib/ceph/bootstrap-rgw /var/lib/ceph/bootstrap-rbd /var/lib/ceph/bootstrap-mgr /var/lib/ceph/tmp

AnsibleTask file path item state absent with_items /etc/ceph /etc/keepalived /etc/haproxy

AnsibleTask file path /etc/yum.repos.d/ item .repo state absent with_items ceph-dev ceph_stable rh_storage when ansible_os_family

AnsibleTask command ps -u ceph -U ceph register check_for_running_ceph failed_when check_for_running_ceph.rc 0

AnsibleTask file path item.path state absent with_items systemd_files.files when ansible_service_mgr

AnsibleTask set_fact fetch_directory fetch/ when fetch_directory is not defined

AnsibleTask fail msg Exiting purge-container-cluster playbook cluster was NOT purged To purge the cluster either say on the prompt or or use ` -e ireallymeanit=yes ` on the command line when invoking the playbook when ireallymeanit

AnsibleTask set_fact ceph_docker_registry docker.io when ceph_docker_registry is not defined

AnsibleTask shell echo item.path basename /sys/bus/rbd/remove_single_major with_items rbd_mapped_ids.files

AnsibleTask service name ceph-nfs ansible_hostname state stopped enabled False ignore_errors True

AnsibleTask file path /etc/systemd/system/ceph-nfs .service state absent

AnsibleTask file path item state absent with_items /etc/ganesha /var/lib/nfs/ganesha /var/run/ganesha

AnsibleTask service name ceph-mds ansible_hostname state stopped enabled False ignore_errors True

AnsibleTask file path /etc/systemd/system/ceph-mds .service state absent

AnsibleTask service name item state stopped enabled False ignore_errors True with_items rbd-target-api rbd-target-gw tcmu-runner

AnsibleTask file path /etc/systemd/system/ item .service state absent ignore_errors True with_items rbd-target-api rbd-target-gw tcmu-runner

AnsibleTask service name ceph-mgr ansible_hostname state stopped enabled False ignore_errors True

AnsibleTask file path /etc/systemd/system/ceph-mgr .service state absent

AnsibleTask file path /etc/systemd/system/ceph-radosgw .service state absent

AnsibleTask service name ceph-rbd-mirror rbd-mirror ansible_hostname state stopped enabled False ignore_errors True

AnsibleTask file path /etc/systemd/system/ceph-rbd-mirror .service state absent

AnsibleTask shell systemctl list-units grep space \+active grep -oE ceph-osd 0-9 .service register osd_units ignore_errors True

AnsibleTask service name item state stopped enabled False with_items osd_units.stdout_lines

AnsibleTask file path /var/lib/ceph/osd/ state absent ignore_errors True

AnsibleTask file path /etc/systemd/system/ceph-osd .service state absent

AnsibleTask file path item.path state absent with_items osd_disk_prepare_logs.files

AnsibleTask service name item state stopped enabled False ignore_errors True with_items ceph-mgr ansible_hostname ceph-mon ansible_hostname

AnsibleTask file path /etc/systemd/system/ceph- item .service state absent with_items mon mgr

AnsibleTask hosts mon_group_name|default osd_group_name|default mds_group_name|default rgw_group_name|default rbdmirror_group_name|default nfs_group_name|default mgr_group_name|default grafana-server iscsigws clients gather_facts False become True tasks node_exporter service False False node_exporter service file node-exporter image container_binary rmi node_exporter_container_image False bool

AnsibleTask hosts grafana-server gather_facts False become True vars grafana_services tasks services item False grafana_services False service files item .service grafana_services False ceph dashboard container images container_binary rmi item prometheus_container_image grafana_container_image alertmanager_container_image False data item False 'when bool

AnsibleTask command container_binary container prune if container_binary -f endif changed_when False

AnsibleTask command container_binary ps -a -q register containers_list changed_when False

AnsibleTask command container_binary images register images_list changed_when False

AnsibleTask fail msg It looks like container are still present when containers_list.stdout_lines|length 0

AnsibleTask command container_binary rmi ceph_docker_registry ceph_docker_image ceph_docker_image_tag tags remove_img

AnsibleTask service name docker state stopped enabled False when not is_atomic container_binary ignore_errors True

AnsibleTask file path item state absent with_items /etc/ceph /var/log/ceph

AnsibleTask shell rm -rf /var/lib/docker/* when not is_atomic bool

AnsibleTask fail msg You have aborted the purge of the iSCSI gateway configuration when purge_config

AnsibleTask service name item state stopped enabled False with_items rbd-target-gw rbd-target-api tcmu-runner

AnsibleTask when igw_purge_type service name item state started enabled True with_items tcmu-runner rbd-target-api rbd-target-gw

AnsibleTask fail msg Exiting rolling_update.yml playbook cluster was NOT upgraded To upgrade the cluster either say on the prompt or use ` -e ireallymeanit=yes ` on the command line when invoking the playbook when ireallymeanit

AnsibleTask file path /etc/profile.d/ceph-aliases.sh state absent when containerized_deployment bool

AnsibleTask set_fact mon_host_count groups mon_group_name length

AnsibleTask fail msg Upgrade of cluster with less than three monitors is not supported when mon_host_count int 3

AnsibleTask set_fact mon_host groups mon_group_name difference inventory_hostname last

AnsibleTask file path /var/lib/ceph/bootstrap-rbd-mirror owner ceph_uid if containerized_deployment else group ceph_uid if containerized_deployment else mode,755 state directory delegate_to item with_items groups mon_group_name when cephx bool inventory_hostname groups mon_group_name 0

AnsibleTask command ceph cluster cluster -m hostvars groups mon_group_name 0 -s format json register ceph_health_raw until ceph_health_raw.rc 0 hostvars inventory_hostname in ceph_health_raw.stdout default from_json quorum_names or hostvars inventory_hostname in ceph_health_raw.stdout default from_json quorum_names retries health_mon_check_retries delay health_mon_check_delay when not containerized_deployment bool

AnsibleTask command container_binary exec ceph-mon- ansible_hostname ceph cluster cluster -m hostvars groups mon_group_name 0 -s format json register ceph_health_raw until ceph_health_raw.rc 0 hostvars inventory_hostname in ceph_health_raw.stdout default from_json quorum_names or hostvars inventory_hostname in ceph_health_raw.stdout default from_json quorum_names retries health_mon_check_retries delay health_mon_check_delay when containerized_deployment bool

AnsibleTask command container_exec_cmd default ceph cluster cluster osd set item with_items noout nodeep-scrub

AnsibleTask shell if -d /var/lib/ceph/osd then ls /var/lib/ceph/osd sed *-// fi register osd_ids changed_when False when not containerized_deployment bool

AnsibleTask shell systemctl list-units grep -E loaded active grep -oE ceph-osd 0-9 .service register osd_names changed_when False when containerized_deployment bool

AnsibleTask set_fact num_osds osd_names.stdout_lines|default |length when containerized_deployment bool

AnsibleTask set_fact container_exec_cmd_update_osd container_binary exec ceph-mon- hostvars groups mon_group_name 0 when containerized_deployment bool

AnsibleTask set_fact num_osds osd_ids.stdout_lines|default |length when not containerized_deployment bool

AnsibleTask command ceph-volume cluster= cluster simple scan force environment CEPH_VOLUME_DEBUG,1 when ceph_release in nautilus octopus not containerized_deployment bool

AnsibleTask command ceph-volume cluster= cluster simple activate all environment CEPH_VOLUME_DEBUG,1 when ceph_release in nautilus octopus not containerized_deployment bool

AnsibleTask command container_exec_cmd_update_osd|default ceph cluster cluster -s format json register ceph_pgs delegate_to groups mon_group_name 0

AnsibleTask command container_exec_cmd_update_osd|default ceph cluster cluster -s format json register ceph_health_post until ceph_health_post.stdout from_json .pgmap.pgs_by_state length 0 and ceph_health_post.stdout from_json .pgmap.pgs_by_state selectattr map list sum ceph_pgs.stdout from_json .pgmap.num_pgs delegate_to groups mon_group_name 0 retries health_osd_check_retries delay health_osd_check_delay when ceph_pgs.stdout from_json .pgmap.num_pgs 0

AnsibleTask command container_exec_cmd_update_osd default ceph osd unset item cluster cluster with_items noout nodeep-scrub

AnsibleTask command container_exec_cmd default ceph cluster cluster fs set cephfs max_mds mds_max_mds changed_when False delegate_to groups mon_group_name 0 when inventory_hostname groups last

AnsibleTask command container_binary exec ceph-mon- hostvars groups mon_group_name 0 ceph osd require-osd-release octopus delegate_to groups mon_group_name 0 run_once True when containerized_deployment bool

AnsibleTask command ceph cluster cluster osd require-osd-release octopus delegate_to groups mon_group_name 0 run_once True when not containerized_deployment bool

AnsibleTask command container_binary exec ceph-mon- hostvars groups mon_group_name 0 ceph mon enable-msgr2 delegate_to groups mon_group_name 0 run_once True when containerized_deployment bool

AnsibleTask command ceph cluster cluster mon enable-msgr2 delegate_to groups mon_group_name 0 run_once True when not containerized_deployment bool

AnsibleTask set_fact container_exec_cmd_status container_binary exec ceph-mon- hostvars groups mon_group_name 0 when containerized_deployment bool

AnsibleTask command container_exec_cmd_status|default ceph cluster cluster -s run_once True delegate_to groups mon_group_name 0

AnsibleTask command container_exec_cmd_status|default ceph cluster cluster versions run_once True delegate_to groups mon_group_name 0

AnsibleTask when containerized_deployment bool command container_exec_cmd default ceph tell mds mds_to_kill exit

AnsibleTask command container_exec_cmd default ceph cluster cluster -s -f json register ceph_status

AnsibleTask set_fact current_max_mds ceph_status.stdout from_json

AnsibleTask fail msg Ca remove more mds as it wo satisfy current max_mds setting when ceph_status.stdout from_json int ceph_status.stdout from_json standby int 1 current_max_mds int ceph_status.stdout from_json int 1

AnsibleTask command container_exec_cmd default ceph cluster cluster fs rm yes-i-really-mean-it cephfs when ceph_status.stdout from_json int 0 ceph_status.stdout from_json standby int 0

AnsibleTask file path /var/lib/ceph/mds/ cluster mds_to_kill_hostname state absent delegate_to mds_to_kill

AnsibleTask command container_exec_cmd default ceph cluster cluster mgr dump -f json register mgr_dump failed_when mgr_to_kill_hostname in mgr_dump.stdout from_json map list mgr_dump.stdout from_json map list until mgr_to_kill_hostname not in mgr_dump.stdout from_json map list mgr_dump.stdout from_json map list retries 12 delay 10

AnsibleTask file path /var/lib/ceph/mgr/ cluster mgr_to_kill_hostname state absent delegate_to mgr_to_kill

AnsibleTask set_fact mon_host item with_items groups mon_group_name when item mon_to_kill

AnsibleTask set_fact container_exec_cmd container_binary exec ceph-mon- hostvars mon_host when containerized_deployment bool

AnsibleTask command container_exec_cmd timeout 5 ceph cluster cluster health register ceph_health until ceph_health.stdout.find HEALTH -1 delegate_to mon_host retries 5 delay 2

AnsibleTask service name ceph-mon mon_to_kill_hostname state stopped enabled False delegate_to mon_to_kill failed_when False

AnsibleTask file path /var/lib/ceph/mon/ cluster mon_to_kill_hostname state absent delegate_to mon_to_kill

AnsibleTask command container_exec_cmd ceph cluster cluster mon remove mon_to_kill_hostname failed_when False delegate_to mon_host

AnsibleTask service name ceph-rbd-mirror rbd-mirror rbdmirror_to_kill_hostname state stopped enabled False delegate_to rbdmirror_to_kill failed_when False

AnsibleTask file path /var/lib/ceph/bootstrap-rbd-mirror/ cluster rbdmirror_to_kill_hostname state absent delegate_to rbdmirror_to_kill

AnsibleTask when rgw_to_kill is not defined or rgw_to_kill length 0 fail msg rgw_to_kill must be declared Exiting shrink-cluster playbook no RGW was removed On the command line when invoking the playbook you can use -e rgw_to_kill=ceph.rgw0 argument You can only remove a single RGW each time the playbook runs

AnsibleTask when ireallymeanit fail msg Exiting shrink-mon playbook no monitor was removed To shrink the cluster either say on the prompt or use ireallymeanit=yes on the command line when invoking the playbook

AnsibleTask hosts mon_group_name default 0 rgw_group_name default become True gather_facts False tasks None

AnsibleTask set_fact container_exec_cmd container_binary exec ceph-mon- ansible_hostname when containerized_deployment bool

AnsibleTask command container_exec_cmd default timeout 5 ceph cluster cluster health register ceph_health until ceph_health is succeeded retries 5 delay 2

AnsibleTask command container_exec_cmd default ceph cluster cluster -s -f json register rgw_instances

AnsibleTask when rgw_to_kill not in rgw_instances.stdout from_json .servicemap.services.rgw.daemons.keys list fail msg It seems that the rgw instance given is not part of the ceph cluster Please make sure it is The rgw instance format is hostname .rgw instance number

AnsibleTask set_fact rgw_host item with_items groups rgw_group_name when hostvars item rgw_to_kill.split 0

AnsibleTask service name ceph-radosgw rgw rgw_to_kill state stopped enabled False delegate_to rgw_host failed_when False

AnsibleTask command systemctl is-active ceph-radosgw rgw rgw_to_kill register rgw_to_kill_status failed_when rgw_to_kill_status.rc 0 delegate_to rgw_host retries 5 delay 2

AnsibleTask command container_exec_cmd default ceph cluster cluster -s -f json register ceph_status failed_when ceph_status.stdout from_json .servicemap.services.rgw is defined rgw_to_kill in ceph_status.stdout from_json .servicemap.services.rgw.daemons.keys list until ceph_status.stdout from_json .servicemap.services.rgw is defined rgw_to_kill not in ceph_status.stdout from_json .servicemap.services.rgw.daemons.keys list retries 3 delay 3

AnsibleTask file path /var/lib/ceph/radosgw/ cluster -rgw rgw_to_kill state absent delegate_to rgw_host

AnsibleTask command container_exec_cmd default ceph cluster cluster -s

AnsibleTask fail msg Exiting switch-from-non-containerized-to-containerized-ceph-daemons.yml playbook cluster did not switch from non-containerized to containerized ceph daemons To switch from non-containerized to containerized ceph daemons either say on the prompt or or use ` -e ireallymeanit=yes ` on the command line when invoking the playbook when ireallymeanit

AnsibleTask service name ceph-radosgw rgw ansible_hostname item.instance_name state stopped enabled False with_items rgw_instances

AnsibleTask file path /usr/lib/systemd/system/ceph-radosgw .service state absent

AnsibleTask shell basename grep exclude -R fsid /etc/ceph/ egrep -o head -n 1 changed_when False register cluster_name

AnsibleTask copy src /etc/ceph/ cluster_name.stdout .conf dest /etc/ceph/ cluster_name.stdout ansible_date_time.iso8601_basic_short .conf.bak remote_src True owner ceph_conf_stat.stat.pw_name group ceph_conf_stat.stat.gr_name mode ceph_conf_stat.stat.mode

AnsibleTask command ceph osd unset noout delegate_to your_monitor

AnsibleTask fail msg devices must be define in host_vars/default.yml or host_vars/ ansible_hostname .yml when devices is not defined

AnsibleTask shell sgdisk zap-all /dev/ item.device_name with_items devices

AnsibleTask shell sgdisk new= item.1.index :0 item.1.size change-name= item.1.index ceph item.1.type typecode= item.1.index if data_typecode else journal_typecode endif mbrtogpt /dev/ item.0.device_name with_subelements devices partitions

AnsibleTask file path /dev/ item.0.device_name item.1.index owner owner default group group default with_subelements devices partitions when item.0.device_name match hsv d a-z 1,2 1,2

AnsibleTask file path /dev/ item.0.device_name p item.1.index owner owner default group group default with_subelements devices partitions when item.0.device_name match cciss/c 0-9 d 0-9 |nvme 0-9 n 0-9 1,2

AnsibleTask fail msg exit playbook osd s is not on this host with_items osds_dir_stat.results when osds_dir_stat is defined and item.stat.exists false

AnsibleTask command uuidgen register osds with_subelements osds_journal_devices partitions

AnsibleTask shell sgdisk new= item.item 1 .index :0 item.item 1 .size change-name= item.item 1 .index ceph journal typecode= item.item 1 .index journal_typecode partition-guid= item.item 1 .index item.stdout mbrtogpt item.item 0 .device_name with_items osds.results

AnsibleTask service name ceph-osd item.item 1 .osd_id state stopped with_items osds.results

AnsibleTask command ceph-osd -i item.item 1 .osd_id flush-journal cluster cluster with_items osds.results when osds_journal_devices is defined

AnsibleTask command ln -sf /dev/disk/by-partuuid/ item.stdout /var/lib/ceph/osd/ cluster item.item 1 .osd_id /journal with_items osds.results

AnsibleTask command echo item.stdout /var/lib/ceph/osd/ cluster item.item 1 .osd_id /journal_uuid with_items osds.results

AnsibleTask command ceph-osd -i item.item 1 .osd_id mkjournal cluster cluster with_items osds.results

AnsibleTask service name ceph-osd item.item 1 .osd_id state started with_items osds.results

AnsibleTask fail msg exit playbook osds is not no this host with_items osds_dir_stat.results when osds_dir_stat is defined bool item.stat.exists false

AnsibleTask command cat /var/lib/ceph/osd/ cluster item.1.osd_id /journal_uuid register osds_uuid with_subelements dev_ssds partitions

AnsibleTask shell sgdisk new= item.item 1 .index :0 item.item 1 .size change-name= item.item 1 .index ceph journal typecode= item.item 1 .index journal_typecode partition-guid= item.item 1 .index item.stdout mbrtogpt item.item 0 .device_name with_items osds_uuid.results

AnsibleTask service name ceph-osd item.item 1 .osd_id state stopped with_items osds_uuid.results

AnsibleTask command ceph-osd -i item.item 1 .osd_id mkjournal cluster cluster with_items osds_uuid.results

AnsibleTask service name ceph-osd item.item 1 .osd_id state started with_items osds_uuid.results

AnsibleTask set_fact keys_tmp keys_tmp|default item.key item.name item.mon_cap item.osd_cap|default item.mds_cap|default item.mgr_cap|default item.mode when item.get None with_items keys

AnsibleTask set_fact delegated_node groups mon_group_name 0 if groups.get mon_group_name length 0 else inventory_hostname

AnsibleTask set_fact condition_copy_admin_key True if groups.get mon_group_name length 0 else copy_admin_key

AnsibleTask copy dest item.source content item.content b64decode mode item.item.get owner ceph_uid group ceph_uid with_items hostvars groups 0 when not item.get False

AnsibleTask file path item state directory owner rbd_client_directory_owner group rbd_client_directory_group mode rbd_client_directory_mode with_items rbd_client_admin_socket_path rbd_client_log_path when rbd_client_directories bool

AnsibleTask command ceph version changed_when False check_mode False register ceph_version

AnsibleTask set_fact ceph_release ceph_stable_release when ceph_origin ceph_repository not in tags always

AnsibleTask set_fact ceph_release jewel when ceph_version.split 0 is version_compare

AnsibleTask set_fact ceph_release kraken when ceph_version.split 0 is version_compare

AnsibleTask set_fact ceph_release luminous when ceph_version.split 0 is version_compare

AnsibleTask set_fact ceph_release mimic when ceph_version.split 0 is version_compare

AnsibleTask set_fact ceph_release nautilus when ceph_version.split 0 is version_compare

AnsibleTask set_fact ceph_release octopus when ceph_version.split 0 is version_compare

AnsibleTask file path /tmp state directory when use_installer bool

AnsibleTask copy src ansible_dir /rundep dest rundep_location.path when use_installer bool

AnsibleTask command yum clean all args warn False changed_when False when ansible_pkg_mgr

AnsibleTask template src role_path /templates/rhcs.pref.j2 dest /etc/apt/preferences.d/rhcs.pref owner root group root mode,420

AnsibleTask file path item state directory with_items ceph_rhcs_mount_path ceph_rhcs_repository_path

AnsibleTask file path ceph_rhcs_iso_path dirname state directory recurse True when ceph_rhcs_iso_path dirname

AnsibleTask shell cp -r ceph_rhcs_mount_path /* ceph_rhcs_repository_path args creates if not rolling_update else

AnsibleTask template src role_path /templates/redhat_storage_repo.j2 dest /etc/yum.repos.d/rh_storage.repo owner root group root mode,420

AnsibleTask shell cp -r ceph_rhcs_mount_path /* ceph_rhcs_repository_path args creates ceph_rhcs_repository_path /README

AnsibleTask command dnf copr enable -y ktdreyer/ceph-el8 args creates /etc/yum.repos.d/_copr copr.fedorainfracloud.org ktdreyer ceph-el8.repo warn False register result until result is succeeded

AnsibleTask copy content ceph_dev_yum_repo.content dest /etc/yum.repos.d/ceph-dev.repo owner root group root backup True

AnsibleTask file path item state directory owner ceph_uid group ceph_uid mode,493 loop /etc/ceph /var/lib/ceph/ /var/lib/ceph/mon /var/lib/ceph/osd /var/lib/ceph/mds /var/lib/ceph/tmp /var/lib/ceph/radosgw /var/lib/ceph/bootstrap-rgw /var/lib/ceph/bootstrap-mgr /var/lib/ceph/bootstrap-mds /var/lib/ceph/bootstrap-osd /var/lib/ceph/bootstrap-rbd /var/lib/ceph/bootstrap-rbd-mirror /var/run/ceph /var/log/ceph

AnsibleTask command container_binary inspect ceph_mon_container_stat.stdout changed_when False register ceph_mon_inspect when mon_group_name in group_names ceph_mon_container_stat.get 0 ceph_mon_container_stat.get |length 0

AnsibleTask command container_binary inspect ceph_osd_container_stat.stdout changed_when False register ceph_osd_inspect when osd_group_name in group_names ceph_osd_container_stat.get 0 ceph_osd_container_stat.get |length 0

AnsibleTask command container_binary inspect ceph_mds_container_stat.stdout changed_when False register ceph_mds_inspect when mds_group_name in group_names ceph_mds_container_stat.get 0 ceph_mds_container_stat.get |length 0

AnsibleTask command container_binary inspect ceph_rgw_container_stat.stdout changed_when False register ceph_rgw_inspect when rgw_group_name in group_names ceph_rgw_container_stat.get 0 ceph_rgw_container_stat.get |length 0

AnsibleTask command container_binary inspect ceph_mgr_container_stat.stdout changed_when False register ceph_mgr_inspect when mgr_group_name in group_names ceph_mgr_container_stat.get 0 ceph_mgr_container_stat.get |length 0

AnsibleTask command container_binary inspect ceph_rbd_mirror_container_stat.stdout changed_when False register ceph_rbd_mirror_inspect when rbdmirror_group_name in group_names ceph_rbd_mirror_container_stat.get 0 ceph_rbd_mirror_container_stat.get |length 0

AnsibleTask command container_binary inspect ceph_nfs_container_stat.stdout changed_when False register ceph_nfs_inspect when nfs_group_name in group_names ceph_nfs_container_stat.get 0 ceph_nfs_container_stat.get |length 0

AnsibleTask command container_binary inspect ceph_mon_inspect.stdout from_json 0 .Image changed_when False failed_when False register ceph_mon_container_inspect_before_pull when mon_group_name in group_names ceph_mon_inspect.get 0

AnsibleTask command container_binary inspect ceph_osd_inspect.stdout from_json 0 .Image changed_when False failed_when False register ceph_osd_container_inspect_before_pull when osd_group_name in group_names ceph_osd_inspect.get 0

AnsibleTask command container_binary inspect ceph_rgw_inspect.stdout from_json 0 .Image changed_when False failed_when False register ceph_rgw_container_inspect_before_pull when rgw_group_name in group_names ceph_rgw_inspect.get 0

AnsibleTask command container_binary inspect ceph_mds_inspect.stdout from_json 0 .Image changed_when False failed_when False register ceph_mds_container_inspect_before_pull when mds_group_name in group_names ceph_mds_inspect.get 0

AnsibleTask command container_binary inspect ceph_mgr_inspect.stdout from_json 0 .Image changed_when False failed_when False register ceph_mgr_container_inspect_before_pull when mgr_group_name in group_names ceph_mgr_inspect.get 0

AnsibleTask command container_binary inspect ceph_rbd_mirror_inspect.stdout from_json 0 .Image changed_when False failed_when False register ceph_rbd_mirror_container_inspect_before_pull when rbdmirror_group_name in group_names ceph_rbd_mirror_inspect.get 0

AnsibleTask command container_binary inspect ceph_nfs_inspect.stdout from_json 0 .Image changed_when False failed_when False register ceph_nfs_container_inspect_before_pull when nfs_group_name in group_names ceph_nfs_inspect.get 0

AnsibleTask set_fact ceph_mon_image_repodigest_before_pulling ceph_mon_container_inspect_before_pull.stdout from_json 0 .RepoDigests 0 .split 1 when mon_group_name in group_names ceph_mon_container_inspect_before_pull.get 0

AnsibleTask set_fact ceph_osd_image_repodigest_before_pulling ceph_osd_container_inspect_before_pull.stdout from_json 0 .RepoDigests 0 .split 1 when osd_group_name in group_names ceph_osd_container_inspect_before_pull.get 0

AnsibleTask set_fact ceph_mds_image_repodigest_before_pulling ceph_mds_container_inspect_before_pull.stdout from_json 0 .RepoDigests 0 .split 1 when mds_group_name in group_names ceph_mds_container_inspect_before_pull.get 0

AnsibleTask set_fact ceph_rgw_image_repodigest_before_pulling ceph_rgw_container_inspect_before_pull.stdout from_json 0 .RepoDigests 0 .split 1 when rgw_group_name in group_names ceph_rgw_container_inspect_before_pull.get 0

AnsibleTask set_fact ceph_mgr_image_repodigest_before_pulling ceph_mgr_container_inspect_before_pull.stdout from_json 0 .RepoDigests 0 .split 1 when mgr_group_name in group_names ceph_mgr_container_inspect_before_pull.get 0

AnsibleTask set_fact ceph_rbd_mirror_image_repodigest_before_pulling ceph_rbd_mirror_container_inspect_before_pull.stdout from_json 0 .RepoDigests 0 .split 1 when rbdmirror_group_name in group_names ceph_rbd_mirror_container_inspect_before_pull.get 0

AnsibleTask set_fact ceph_nfs_image_repodigest_before_pulling ceph_nfs_container_inspect_before_pull.stdout from_json 0 .RepoDigests 0 .split 1 when nfs_group_name in group_names ceph_nfs_container_inspect_before_pull.get 0

AnsibleTask command timeout_command container_binary pull ceph_docker_registry ceph_docker_image ceph_docker_image_tag changed_when False register docker_image until docker_image.rc 0 retries docker_pull_retry delay 10 when ceph_docker_dev_image is undefined or not ceph_docker_dev_image bool

AnsibleTask command container_binary inspect ceph_docker_registry ceph_docker_image ceph_docker_image_tag changed_when False failed_when False register image_inspect_after_pull

AnsibleTask set_fact image_repodigest_after_pulling image_inspect_after_pull.stdout from_json 0 .RepoDigests 0 .split 1 when image_inspect_after_pull.rc 0

AnsibleTask set_fact ceph_mon_image_updated ceph_mon_image_repodigest_before_pulling image_repodigest_after_pulling changed_when True notify restart ceph mons when mon_group_name in group_names ceph_mon_container_inspect_before_pull.get 0 ceph_mon_image_repodigest_before_pulling image_repodigest_after_pulling

AnsibleTask set_fact ceph_osd_image_updated ceph_osd_image_repodigest_before_pulling image_repodigest_after_pulling changed_when True notify restart ceph osds when osd_group_name in group_names ceph_osd_container_inspect_before_pull.get 0 ceph_osd_image_repodigest_before_pulling image_repodigest_after_pulling

AnsibleTask set_fact ceph_mds_image_updated ceph_mds_image_repodigest_before_pulling image_repodigest_after_pulling changed_when True notify restart ceph mdss when mds_group_name in group_names ceph_mds_container_inspect_before_pull.get 0 ceph_mds_image_repodigest_before_pulling image_repodigest_after_pulling

AnsibleTask set_fact ceph_rgw_image_updated ceph_rgw_image_repodigest_before_pulling image_repodigest_after_pulling changed_when True notify restart ceph rgws when rgw_group_name in group_names ceph_rgw_container_inspect_before_pull.get 0 ceph_rgw_image_repodigest_before_pulling image_repodigest_after_pulling

AnsibleTask set_fact ceph_mgr_image_updated ceph_mgr_image_repodigest_before_pulling image_repodigest_after_pulling changed_when True notify restart ceph mgrs when mgr_group_name in group_names ceph_mgr_container_inspect_before_pull.get 0 ceph_mgr_image_repodigest_before_pulling image_repodigest_after_pulling

AnsibleTask set_fact ceph_rbd_mirror_image_updated ceph_rbd_mirror_image_repodigest_before_pulling image_repodigest_after_pulling changed_when True notify restart ceph rbdmirrors when rbdmirror_group_name in group_names ceph_rbd_mirror_container_inspect_before_pull.get 0 ceph_rbd_mirror_image_repodigest_before_pulling image_repodigest_after_pulling

AnsibleTask set_fact ceph_nfs_image_updated ceph_nfs_image_repodigest_before_pulling image_repodigest_after_pulling changed_when True notify restart ceph nfss when nfs_group_name in group_names ceph_nfs_container_inspect_before_pull.get 0 ceph_nfs_image_repodigest_before_pulling image_repodigest_after_pulling

AnsibleTask command container_binary save -o /tmp/ ceph_docker_username ceph_docker_imagename ceph_docker_image_tag .tar ceph_docker_username ceph_docker_imagename ceph_docker_image_tag delegate_to localhost when ceph_docker_dev_image is defined and ceph_docker_dev_image run_once True

AnsibleTask copy src /tmp/ ceph_docker_username ceph_docker_imagename ceph_docker_image_tag .tar dest /tmp/ ceph_docker_username ceph_docker_imagename ceph_docker_image_tag .tar when ceph_docker_dev_image is defined and ceph_docker_dev_image bool

AnsibleTask command container_binary load -i /tmp/ ceph_docker_username ceph_docker_imagename ceph_docker_image_tag .tar when ceph_docker_dev_image is defined and ceph_docker_dev_image bool

AnsibleTask file name /tmp/ ceph_docker_username ceph_docker_imagename ceph_docker_image_tag .tar state absent when ceph_docker_dev_image is defined and ceph_docker_dev_image bool

AnsibleTask command container_binary run rm net=host entrypoint /usr/bin/ceph ceph_client_docker_registry ceph_client_docker_image ceph_client_docker_image_tag version changed_when False check_mode False register ceph_version

AnsibleTask command container_binary login -u ceph_docker_registry_username -p ceph_docker_registry_password ceph_docker_registry changed_when False no_log True

AnsibleTask service name container_service_name state started enabled True tags with_pkg when container_service_name

AnsibleTask set_fact container_exec_cmd container_binary exec ceph-mon- hostvars groups mon_group_name 0 when containerized_deployment bool

AnsibleTask command container_exec_cmd ceph cluster cluster config set mgr mgr/dashboard/ssl false delegate_to groups mon_group_name 0 run_once True when dashboard_protocol http

AnsibleTask command container_exec_cmd ceph cluster cluster config set mgr mgr/dashboard/server_port dashboard_port changed_when False delegate_to groups mon_group_name 0 run_once True

AnsibleTask command container_exec_cmd ceph cluster cluster config set mgr mgr/dashboard/ssl_server_port dashboard_port delegate_to groups mon_group_name 0 run_once True changed_when False failed_when False

AnsibleTask command container_exec_cmd ceph cluster cluster mgr module disable dashboard delegate_to groups mon_group_name 0 run_once True changed_when False

AnsibleTask command container_exec_cmd ceph cluster cluster mgr module enable dashboard delegate_to groups mon_group_name 0 run_once True changed_when False

AnsibleTask shell if container_exec_cmd ceph cluster cluster dashboard ac-user-show dashboard_admin_user quote then container_exec_cmd ceph cluster cluster dashboard ac-user-set-password dashboard_admin_user quote dashboard_admin_password quote else container_exec_cmd ceph cluster cluster dashboard ac-user-create dashboard_admin_user quote dashboard_admin_password quote administrator fi retries 6 delay 5 register ac_result delegate_to groups mon_group_name 0 run_once True changed_when False until ac_result.rc 0

AnsibleTask command container_exec_cmd ceph cluster cluster dashboard set-grafana-api-username grafana_admin_user delegate_to groups mon_group_name 0 run_once True changed_when False

AnsibleTask command container_exec_cmd ceph cluster cluster dashboard set-grafana-api-password grafana_admin_password delegate_to groups mon_group_name 0 run_once True changed_when False

AnsibleTask command container_exec_cmd ceph cluster cluster dashboard set-alertmanager-api-host dashboard_protocol // grafana_server_addrs first alertmanager_port delegate_to groups mon_group_name 0 run_once True changed_when False

AnsibleTask command container_exec_cmd ceph cluster cluster dashboard set-prometheus-api-host dashboard_protocol // grafana_server_addrs first prometheus_port delegate_to groups mon_group_name 0 run_once True changed_when False

AnsibleTask command container_exec_cmd ceph cluster cluster dashboard set-grafana-api-url dashboard_protocol // dashboard_frontend_vip grafana_port delegate_to groups mon_group_name 0 run_once True changed_when False when dashboard_frontend_vip is defined and dashboard_frontend_vip |length 0

AnsibleTask command container_exec_cmd ceph cluster cluster mgr module disable dashboard changed_when False delegate_to groups mon_group_name 0 run_once True

AnsibleTask command container_exec_cmd ceph cluster cluster mgr module enable dashboard changed_when False delegate_to groups mon_group_name 0 run_once True

AnsibleTask set_fact mgr_server_addr hostvars dashboard_backend ips_in_ranges public_network.split first when ip_version

AnsibleTask set_fact mgr_server_addr hostvars dashboard_backend ips_in_ranges public_network.split last ipwrap when ip_version

AnsibleTask command container_exec_cmd ceph cluster cluster config set mgr mgr/dashboard/ hostvars dashboard_backend /server_addr mgr_server_addr delegate_to groups mon_group_name 0 changed_when False run_once True

AnsibleTask command container_exec_cmd ceph cluster cluster dashboard set-grafana-api-url dashboard_protocol // grafana_server_addr grafana_port delegate_to groups mon_group_name 0 run_once True changed_when False

AnsibleTask command container_exec_cmd ceph cluster cluster dashboard grafana dashboards update delegate_to groups mon_group_name 0 run_once True changed_when False when containerized_deployment bool

AnsibleTask debug msg The dashboard has been deployed You can access your dashboard web UI at dashboard_protocol // ansible_fqdn dashboard_port as an dashboard_admin_user user with dashboard_admin_password password run_once True

AnsibleTask set_fact container_binary if podman_binary.stat.exists and ansible_distribution or ansible_os_family and ansible_distribution_major_version 8 else

AnsibleTask set_fact discovered_interpreter_python ansible_python_interpreter when ansible_python_interpreter is defined

AnsibleTask set_fact ceph_current_status 1 when rolling_update or groups.get mon_group_name length 0

AnsibleTask file path fetch_directory state directory delegate_to localhost changed_when False become False when cephx bool or generate_fsid bool

AnsibleTask command timeout_command container_exec_cmd ceph admin-daemon /var/run/ceph/ cluster -mon hostvars mon_host default groups mon_group_name 0 .asok config get fsid register rolling_update_fsid delegate_to mon_host default groups mon_group_name 0 until rolling_update_fsid is succeeded when rolling_update bool

AnsibleTask set_fact fsid rolling_update_fsid.stdout from_json .fsid when rolling_update bool

AnsibleTask set_fact ceph_current_status ceph_current_status.stdout from_json when not rolling_update bool ceph_current_status.rc 0

AnsibleTask set_fact fsid ceph_current_status.fsid when ceph_current_status.fsid is defined

AnsibleTask command readlink -f item changed_when False check_mode False with_items devices register devices_prepare_canonicalize when devices is defined inventory_hostname in groups.get osd_group_name not osd_auto_discovery default False bool

AnsibleTask set_fact devices devices default item.stdout with_items devices_prepare_canonicalize.results when devices is defined inventory_hostname in groups.get osd_group_name not osd_auto_discovery default False bool

AnsibleTask set_fact devices devices reject list unique when devices is defined inventory_hostname in groups.get osd_group_name not osd_auto_discovery default False bool

AnsibleTask set_fact devices devices default item.key regex_replace unique with_dict ansible_devices when osd_auto_discovery default False bool inventory_hostname in groups.get osd_group_name ansible_devices is defined item.value.removable 0 item.value.sectors 0 item.value.partitions|count 0 item.value.holders|count 0 item.key is not match osd_auto_discovery_exclude

AnsibleTask set_fact ceph_uid,64045 when not containerized_deployment bool ansible_os_family

AnsibleTask set_fact rgw_hostname set _value ansible_hostname for key in ceph_current_status list if key ansible_fqdn set _value key endif endfor _value when inventory_hostname in groups.get rgw_group_name or inventory_hostname in groups.get nfs_group_name ceph_current_status is defined ceph_current_status is defined ceph_current_status is defined

AnsibleTask set_fact osd_pool_default_pg_num ceph_conf_overrides.get .get ceph_osd_pool_default_pg_num

AnsibleTask set_fact osd_pool_default_size ceph_conf_overrides.get .get ceph_osd_pool_default_size

AnsibleTask set_fact osd_pool_default_min_size ceph_conf_overrides.get .get ceph_osd_pool_default_min_size

AnsibleTask command grep pool default crush rule /etc/ceph/ cluster .conf register crush_rule_variable changed_when False check_mode False failed_when False when ceph_conf.stat.exists

AnsibleTask set_fact osd_pool_default_crush_rule if crush_rule_variable.rc 0 crush_rule_variable.stdout.split 1 else ceph_osd_pool_default_crush_rule endif when ceph_conf.stat.exists

AnsibleTask set_fact use_new_ceph_iscsi gateway_ip_list 0.0.0.0 and gateway_iqn length 0 and client_connections length 0 and rbd_devices length 0 bool ternary true false when iscsi_gw_group_name in group_names

AnsibleTask set_fact grafana_server_addr hostvars inventory_hostname ips_in_ranges public_network.split first when groups.get grafana_server_group_name length 0 ip_version dashboard_enabled bool inventory_hostname in groups grafana_server_group_name

AnsibleTask set_fact grafana_server_addr hostvars inventory_hostname ips_in_ranges public_network.split last ipwrap when groups.get grafana_server_group_name length 0 ip_version dashboard_enabled bool inventory_hostname in groups grafana_server_group_name

AnsibleTask set_fact grafana_server_addrs grafana_server_addrs default hostvars item ips_in_ranges public_network.split first unique with_items groups.get grafana_server_group_name when groups.get grafana_server_group_name length 0 ip_version dashboard_enabled bool

AnsibleTask set_fact grafana_server_addrs grafana_server_addrs default hostvars item ips_in_ranges public_network.split last ipwrap unique with_items groups.get grafana_server_group_name when groups.get grafana_server_group_name length 0 ip_version dashboard_enabled bool

AnsibleTask set_fact _monitor_addresses _monitor_addresses default item hostvars item ips_in_ranges hostvars item .split first with_items groups.get mon_group_name when item not in _monitor_addresses default selectattr map list hostvars item is defined hostvars item ip_version

AnsibleTask set_fact _monitor_addresses _monitor_addresses default item hostvars item ips_in_ranges hostvars item .split last ipwrap with_items groups.get mon_group_name when item not in _monitor_addresses default selectattr map list hostvars item is defined hostvars item ip_version

AnsibleTask set_fact _monitor_addresses _monitor_addresses default item hostvars item ipwrap with_items groups.get mon_group_name when item not in _monitor_addresses default selectattr map list hostvars item is defined hostvars item x.x.x.x

AnsibleTask set_fact _monitor_addresses _monitor_addresses default item hostvars item hostvars item |replace _ ip_version ipwrap with_items groups.get mon_group_name when item not in _monitor_addresses default selectattr map list ip_version hostvars item default hostvars item default x.x.x.x x.x.x.x hostvars item default

AnsibleTask set_fact _monitor_addresses _monitor_addresses default item hostvars item hostvars item |replace _ ip_version 0 ipwrap with_items groups.get mon_group_name when item not in _monitor_addresses default selectattr map list ip_version hostvars item default hostvars item default x.x.x.x x.x.x.x hostvars item default

AnsibleTask set_fact _current_monitor_address item.addr with_items _monitor_addresses when inventory_hostname item.name

AnsibleTask set_fact _radosgw_address hostvars inventory_hostname ips_in_ranges hostvars inventory_hostname .split first when radosgw_address_block is defined radosgw_address_block ip_version

AnsibleTask set_fact _radosgw_address hostvars inventory_hostname ips_in_ranges hostvars inventory_hostname .split last ipwrap when radosgw_address_block is defined radosgw_address_block ip_version

AnsibleTask set_fact _radosgw_address radosgw_address ipwrap when radosgw_address is defined radosgw_address x.x.x.x

AnsibleTask set_fact rgw_instances rgw_instances|default union item|string _radosgw_address radosgw_frontend_port|int item|int with_sequence start=0 end= radosgw_num_instances|int 1 when inventory_hostname in groups.get rgw_group_name not rgw_multisite bool

AnsibleTask set_fact rgw_instances rgw_instances|default union item string _radosgw_address radosgw_frontend_port int rgw_realm string rgw_zonegroup string rgw_zone string system_access_key system_secret_key rgw_zone_user rgw_zone_user_display_name rgw_pull_proto // rgw_pullhost rgw_pull_port string if not rgw_zonemaster bool and rgw_zonesecondary bool else omit with_sequence start=0 end= radosgw_num_instances|int 1 when inventory_hostname in groups.get rgw_group_name rgw_instances is undefined rgw_multisite bool

AnsibleTask set_fact rgw_instances_all rgw_instances_all default union item.1 combine host item.0 with_nested groups.get rgw_group_name rgw_instances when inventory_hostname in groups.get rgw_group_name rgw_multisite bool

AnsibleTask shell ls -1 /etc/ceph/*.keyring changed_when False register ceph_keys

AnsibleTask file path item state directory recurse True owner grafana_uid group grafana_uid with_items /etc/grafana/dashboards/ceph-dashboard /etc/grafana/provisioning/datasources /etc/grafana/provisioning/dashboards /etc/grafana/provisioning/notifiers

AnsibleTask template src grafana.ini.j2 dest /etc/grafana/grafana.ini owner grafana_uid group grafana_uid mode,416

AnsibleTask template src datasources-ceph-dashboard.yml.j2 dest /etc/grafana/provisioning/datasources/ceph-dashboard.yml owner grafana_uid group grafana_uid mode,416

AnsibleTask template src dashboards-ceph-dashboard.yml.j2 dest /etc/grafana/provisioning/dashboards/ceph-dashboard.yml owner grafana_uid group grafana_uid mode,416 when not containerized_deployment bool

AnsibleTask copy src grafana_crt dest /etc/grafana/ceph-dashboard.crt owner grafana_uid group grafana_uid mode,416 when grafana_crt length 0 dashboard_protocol https

AnsibleTask copy src grafana_key dest /etc/grafana/ceph-dashboard.key owner grafana_uid group grafana_uid mode,288 when grafana_key length 0 dashboard_protocol https

AnsibleTask shell test -f /etc/grafana/ceph-dashboard.key -a -f /etc/grafana/ceph-dashboard.crt || openssl req -new -nodes -x509 -subj -days 3650 -keyout /etc/grafana/ceph-dashboard.key -out /etc/grafana/ceph-dashboard.crt -extensions v3_ca chown grafana_uid grafana_uid /etc/grafana/ceph-dashboard.key /etc/grafana/ceph-dashboard.crt when dashboard_protocol https grafana_key length 0 or grafana_crt length 0

AnsibleTask service name grafana-server state restarted enabled True

AnsibleTask file path item state directory owner grafana_uid group grafana_uid recurse True with_items /etc/grafana /var/lib/grafana

AnsibleTask template src grafana-server.service.j2 dest /etc/systemd/system/grafana-server.service owner root group root mode,420

AnsibleTask command container_binary ps -q ansible_hostname register ceph_mon_container_stat changed_when False failed_when False check_mode False when inventory_hostname in groups.get mon_group_name

AnsibleTask command container_binary ps -q register ceph_osd_container_stat changed_when False failed_when False check_mode False when inventory_hostname in groups.get osd_group_name

AnsibleTask command container_binary ps -q ansible_hostname register ceph_mds_container_stat changed_when False failed_when False check_mode False when inventory_hostname in groups.get mds_group_name

AnsibleTask command container_binary ps -q ansible_hostname register ceph_rgw_container_stat changed_when False failed_when False check_mode False when inventory_hostname in groups.get rgw_group_name

AnsibleTask command container_binary ps -q ansible_hostname register ceph_mgr_container_stat changed_when False failed_when False check_mode False when inventory_hostname in groups.get mgr_group_name

AnsibleTask command container_binary ps -q ansible_hostname register ceph_rbd_mirror_container_stat changed_when False failed_when False check_mode False when inventory_hostname in groups.get rbdmirror_group_name

AnsibleTask command container_binary ps -q ceph_nfs_service_suffix default ansible_hostname register ceph_nfs_container_stat changed_when False failed_when False check_mode False when inventory_hostname in groups.get nfs_group_name

AnsibleTask command container_binary ps -q register ceph_tcmu_runner_stat changed_when False failed_when False check_mode False when inventory_hostname in groups.get iscsi_gw_group_name

AnsibleTask command container_binary ps -q register ceph_rbd_target_api_stat changed_when False failed_when False check_mode False when inventory_hostname in groups.get iscsi_gw_group_name

AnsibleTask command container_binary ps -q register ceph_rbd_target_gw_stat changed_when False failed_when False check_mode False when inventory_hostname in groups.get iscsi_gw_group_name

AnsibleTask shell stat printf= n rbd_client_admin_socket_path cluster -mon*.asok changed_when False failed_when False check_mode False register mon_socket_stat when inventory_hostname in groups.get mon_group_name

AnsibleTask command grep -q mon_socket_stat.stdout /proc/net/unix changed_when False failed_when False check_mode False register mon_socket when inventory_hostname in groups.get mon_group_name mon_socket_stat.rc 0

AnsibleTask file name mon_socket_stat.stdout state absent when inventory_hostname in groups.get mon_group_name mon_socket_stat.rc 0 mon_socket.rc 1

AnsibleTask shell stat printf= n rbd_client_admin_socket_path cluster -osd*.asok changed_when False failed_when False check_mode False register osd_socket_stat when inventory_hostname in groups.get osd_group_name

AnsibleTask command grep -q osd_socket_stat.stdout /proc/net/unix changed_when False failed_when False check_mode False register osd_socket when inventory_hostname in groups.get osd_group_name osd_socket_stat.rc 0

AnsibleTask file name osd_socket_stat.stdout state absent when inventory_hostname in groups.get osd_group_name osd_socket_stat.rc 0 osd_socket.rc 1

AnsibleTask shell stat printf= n rbd_client_admin_socket_path cluster -mds*.asok changed_when False failed_when False check_mode False register mds_socket_stat when inventory_hostname in groups.get mds_group_name

AnsibleTask command grep -q mds_socket_stat.stdout /proc/net/unix changed_when False failed_when False check_mode False register mds_socket when inventory_hostname in groups.get mds_group_name mds_socket_stat.rc 0

AnsibleTask file name mds_socket_stat.stdout state absent when inventory_hostname in groups.get mds_group_name mds_socket_stat.rc 0 mds_socket.rc 1

AnsibleTask shell stat printf= n rbd_client_admin_socket_path cluster -client.rgw*.asok changed_when False failed_when False check_mode False register rgw_socket_stat when inventory_hostname in groups.get rgw_group_name

AnsibleTask command grep -q rgw_socket_stat.stdout /proc/net/unix changed_when False failed_when False check_mode False register rgw_socket when inventory_hostname in groups.get rgw_group_name rgw_socket_stat.rc 0

AnsibleTask file name rgw_socket_stat.stdout state absent when inventory_hostname in groups.get rgw_group_name rgw_socket_stat.rc 0 rgw_socket.rc 1

AnsibleTask shell stat printf= n rbd_client_admin_socket_path cluster -mgr*.asok changed_when False failed_when False check_mode False register mgr_socket_stat when inventory_hostname in groups.get mgr_group_name

AnsibleTask command grep -q mgr_socket_stat.stdout /proc/net/unix changed_when False failed_when False check_mode False register mgr_socket when inventory_hostname in groups.get mgr_group_name mgr_socket_stat.rc 0

AnsibleTask file name mgr_socket_stat.stdout state absent when inventory_hostname in groups.get mgr_group_name mgr_socket_stat.rc 0 mgr_socket.rc 1

AnsibleTask shell stat printf= n rbd_client_admin_socket_path cluster -client.rbd-mirror*.asok changed_when False failed_when False check_mode False register rbd_mirror_socket_stat when inventory_hostname in groups.get rbdmirror_group_name

AnsibleTask command grep -q rbd_mirror_socket_stat.stdout /proc/net/unix changed_when False failed_when False check_mode False register rbd_mirror_socket when inventory_hostname in groups.get rbdmirror_group_name rbd_mirror_socket_stat.rc 0

AnsibleTask file name rbd_mirror_socket_stat.stdout state absent when inventory_hostname in groups.get rbdmirror_group_name rbd_mirror_socket_stat.rc 0 rbd_mirror_socket.rc 1

AnsibleTask command stat printf= n /var/run/ganesha.pid changed_when False failed_when False check_mode False register nfs_socket_stat when inventory_hostname in groups.get nfs_group_name

AnsibleTask command grep -q nfs_socket_stat.stdout /proc/net/unix changed_when False failed_when False check_mode False register nfs_socket when inventory_hostname in groups.get nfs_group_name nfs_socket_stat.rc 0

AnsibleTask file name nfs_socket_stat.stdout state absent when inventory_hostname in groups.get nfs_group_name nfs_socket_stat.rc 0 nfs_socket.rc 1

AnsibleTask command pgrep tcmu-runner register ceph_tcmu_runner_stat changed_when False failed_when False check_mode False when inventory_hostname in groups.get iscsi_gw_group_name

AnsibleTask command pgrep rbd-target-api register ceph_rbd_target_api_stat changed_when False failed_when False check_mode False when inventory_hostname in groups.get iscsi_gw_group_name

AnsibleTask command pgrep name=rbd-target-gw register ceph_rbd_target_gw_stat changed_when False failed_when False check_mode False when inventory_hostname in groups.get iscsi_gw_group_name

AnsibleTask template src restart_mds_daemon.sh.j2 dest /tmp/restart_mds_daemon.sh owner root group root mode,488

AnsibleTask command /usr/bin/env bash /tmp/restart_mds_daemon.sh when hostvars item default False bool hostvars item default False bool with_items groups mds_group_name delegate_to item run_once True

AnsibleTask template src restart_mgr_daemon.sh.j2 dest /tmp/restart_mgr_daemon.sh owner root group root mode,488

AnsibleTask command /usr/bin/env bash /tmp/restart_mgr_daemon.sh when hostvars item default False bool hostvars item default False bool with_items groups mgr_group_name delegate_to item run_once True

AnsibleTask template src restart_mon_daemon.sh.j2 dest /tmp/restart_mon_daemon.sh owner root group root mode,488

AnsibleTask command /usr/bin/env bash /tmp/restart_mon_daemon.sh when hostvars item default False bool hostvars item default False bool with_items groups mon_group_name delegate_to item run_once True

AnsibleTask template src restart_nfs_daemon.sh.j2 dest /tmp/restart_nfs_daemon.sh owner root group root mode,488

AnsibleTask command /usr/bin/env bash /tmp/restart_nfs_daemon.sh when hostvars item default False bool hostvars item default False bool with_items groups nfs_group_name delegate_to item run_once True

AnsibleTask command hostvars groups mon_group_name 0 default ceph cluster cluster osd unset noup delegate_to groups mon_group_name 0 run_once True changed_when False

AnsibleTask template src restart_osd_daemon.sh.j2 dest /tmp/restart_osd_daemon.sh owner root group root mode,488

AnsibleTask command /usr/bin/env bash /tmp/restart_osd_daemon.sh when hostvars item default False bool handler_health_osd_check bool hostvars item default False bool with_items groups osd_group_name intersect ansible_play_batch delegate_to item run_once True

AnsibleTask template src restart_rbd_mirror_daemon.sh.j2 dest /tmp/restart_rbd_mirror_daemon.sh owner root group root mode,488

AnsibleTask command /usr/bin/env bash /tmp/restart_rbd_mirror_daemon.sh when hostvars item default False bool hostvars item default False bool with_items groups rbdmirror_group_name delegate_to item run_once True

AnsibleTask template src restart_rbd_target_api.sh.j2 dest /tmp/restart_rbd_target_api.sh owner root group root mode,488

AnsibleTask command /usr/bin/env bash /tmp/restart_rbd_target_api.sh when ceph_rbd_target_api_stat.get 0 hostvars item default False bool ceph_rbd_target_api_stat.get |length 0 with_items groups iscsi_gw_group_name delegate_to item run_once True

AnsibleTask template src restart_rbd_target_gw.sh.j2 dest /tmp/restart_rbd_target_gw.sh owner root group root mode,488

AnsibleTask command /usr/bin/env bash /tmp/restart_rbd_target_gw.sh when ceph_rbd_target_gw_stat.get 0 hostvars item default False bool ceph_rbd_target_gw_stat.get |length 0 with_items groups iscsi_gw_group_name delegate_to item run_once True

AnsibleTask template src restart_rgw_daemon.sh.j2 dest /tmp/restart_rgw_daemon.sh owner root group root mode,488

AnsibleTask command /usr/bin/env bash /tmp/restart_rgw_daemon.sh when hostvars item default False bool hostvars item default False bool with_items groups rgw_group_name delegate_to item run_once True

AnsibleTask template src restart_tcmu_runner.sh.j2 dest /tmp/restart_tcmu_runner.sh owner root group root mode,488

AnsibleTask command /usr/bin/env bash /tmp/restart_tcmu_runner.sh when ceph_tcmu_runner_stat.get 0 hostvars item default False bool ceph_tcmu_runner_stat.get |length 0 with_items groups iscsi_gw_group_name delegate_to item run_once True

AnsibleTask set_fact handler_mon_status mon_socket_stat.get 0 if not containerized_deployment bool else ceph_mon_container_stat.get 0 and ceph_mon_container_stat.get length 0 when inventory_hostname in groups.get mon_group_name

AnsibleTask set_fact handler_osd_status osd_socket_stat.get 0 and ceph_current_status.fsid is defined if not containerized_deployment bool else ceph_osd_container_stat.get 0 and ceph_osd_container_stat.get length 0 when inventory_hostname in groups.get osd_group_name

AnsibleTask set_fact handler_mds_status mds_socket_stat.get 0 if not containerized_deployment bool else ceph_mds_container_stat.get 0 and ceph_mds_container_stat.get length 0 when inventory_hostname in groups.get mds_group_name

AnsibleTask set_fact handler_rgw_status rgw_socket_stat.get 0 if not containerized_deployment bool else ceph_rgw_container_stat.get 0 and ceph_rgw_container_stat.get length 0 when inventory_hostname in groups.get rgw_group_name

AnsibleTask set_fact handler_nfs_status nfs_socket_stat.get 0 if not containerized_deployment bool else ceph_nfs_container_stat.get 0 and ceph_nfs_container_stat.get length 0 when inventory_hostname in groups.get nfs_group_name

AnsibleTask set_fact handler_rbd_mirror_status rbd_mirror_socket_stat.get 0 if not containerized_deployment bool else ceph_rbd_mirror_container_stat.get 0 and ceph_rbd_mirror_container_stat.get length 0 when inventory_hostname in groups.get rbdmirror_group_name

AnsibleTask set_fact handler_mgr_status mgr_socket_stat.get 0 if not containerized_deployment bool else ceph_mgr_container_stat.get 0 and ceph_mgr_container_stat.get length 0 when inventory_hostname in groups.get mgr_group_name

AnsibleTask failed_when False service name ntp_service_name state stopped enabled False

AnsibleTask failed_when False service name chrony_daemon_name enabled False state stopped

AnsibleTask failed_when False service name timesyncd enabled False state stopped

AnsibleTask command rpm -q firewalld args warn False register firewalld_pkg_query ignore_errors True check_mode False changed_when False tags firewall

AnsibleTask service name firewalld state started enabled True register result retries 5 delay 3 until result is succeeded

AnsibleTask set_fact chrony_daemon_name chrony ntp_service_name ntp when ansible_os_family

AnsibleTask set_fact chrony_daemon_name chronyd ntp_service_name ntpd when ansible_os_family in

AnsibleTask command container_exec_cmd ceph cluster cluster auth get item.name register _iscsi_keys with_items cluster .client.admin.keyring copy_admin_key delegate_to groups.get mon_group_name 0 run_once True when cephx bool item.copy_key bool

AnsibleTask copy dest item.item.path content item.stdout owner ceph_uid if containerized_deployment else group ceph_uid if containerized_deployment else mode ceph_keyring_permissions with_items _iscsi_keys.results when cephx bool item.item.copy_key bool

AnsibleTask set_fact trusted_ip_list trusted_ip_list hostvars item ansible_all_ipv4_addresses ips_in_ranges public_network.split first with_items groups mgr_group_name default groups mon_group_name when dashboard_enabled bool ip_version

AnsibleTask set_fact trusted_ip_list trusted_ip_list hostvars item ansible_all_ipv6_addresses ips_in_ranges public_network.split last with_items groups mgr_group_name default groups mon_group_name when dashboard_enabled bool ip_version

AnsibleTask set_fact container_exec_cmd container_binary exec ceph-mon- hostvars groups mon_group_name 0 delegate_to groups mon_group_name 0 when containerized_deployment bool

AnsibleTask command container_exec_cmd default ceph cluster cluster osd pool ls format json changed_when False register iscsi_pool_exists delegate_to groups mon_group_name 0

AnsibleTask file path /var/log/ item state directory with_items rbd-target-api rbd-target-gw

AnsibleTask command container_exec_cmd ceph cluster cluster config get iscsi/ssl/ item with_items crt_files changed_when False failed_when False run_once True delegate_to groups.get mon_group_name 0 register crt_files_exist

AnsibleTask set_fact crt_files_missing crt_files_exist.results selectattr 0 map list length crt_files length

AnsibleTask copy content item.stdout b64decode dest /etc/ceph/ item.item owner root group root mode,256 changed_when False with_items crt_files_exist.results if not crt_files_missing else iscsi_ssl_files_content.results when not crt_files_missing

AnsibleTask become True template src role_path /templates/ item .service.j2 dest /etc/systemd/system/ item .service owner root group root mode,0644 with_items tcmu-runner rbd-target-gw rbd-target-api notify restart ceph tcmu-runner restart ceph rbd-target-api-gw

AnsibleTask service name item state started enabled True masked False with_items rbd-target-api rbd-target-gw

AnsibleTask service name tcmu-runner state started enabled True masked False

AnsibleTask file path item state directory owner ceph_uid if containerized_deployment else group ceph_uid if containerized_deployment else mode ceph_directories_mode with_items /var/lib/ceph/bootstrap-mds/ /var/lib/ceph/mds/ cluster mds_name

AnsibleTask command container_exec_cmd default ceph cluster cluster auth get item.name register _mds_keys with_items cluster .keyring True cluster .client.admin.keyring copy_admin_key delegate_to groups.get mon_group_name 0 run_once True when cephx bool item.copy_key bool

AnsibleTask copy dest item.item.path content item.stdout owner ceph_uid if containerized_deployment else group ceph_uid if containerized_deployment else mode ceph_keyring_permissions with_items _mds_keys.results when cephx bool item.item.copy_key bool

AnsibleTask command container_binary exec ceph-mds- ansible_hostname sh -c /var/run/ceph/ cluster -mds ansible_hostname .asok || stat /var/run/ceph/ cluster -mds ansible_fqdn .asok changed_when False register multi_mds_socket retries 5 delay 15 until multi_mds_socket.rc 0

AnsibleTask command container_exec_cmd default ceph cluster cluster fs set cephfs max_mds mds_max_mds changed_when False delegate_to groups mon_group_name 0 when mds_max_mds 1 not rolling_update

AnsibleTask command ceph cluster cluster name client.bootstrap-mds keyring /var/lib/ceph/bootstrap-mds/ cluster .keyring auth get-or-create mds mds_name osd rwx mds mon profile mds -o /var/lib/ceph/mds/ cluster mds_name /keyring args creates /var/lib/ceph/mds/ cluster mds_name /keyring changed_when False when cephx

AnsibleTask file path /var/lib/ceph/mds/ cluster mds_name /keyring owner ceph group ceph mode,0600 when cephx

AnsibleTask file state directory path /etc/systemd/system/ceph-mds .service.d/ when ceph_mds_systemd_overrides is defined ansible_service_mgr

AnsibleTask service name ceph-mds mds_name state started enabled True masked False changed_when False

AnsibleTask become True template src role_path /templates/ceph-mds.service.j2 dest /etc/systemd/system/ceph-mds .service owner root group root mode,0644 notify restart ceph mdss

AnsibleTask file path /var/lib/ceph/mgr/ cluster ansible_hostname state directory owner ceph_uid if containerized_deployment else group ceph_uid if containerized_deployment else mode ceph_directories_mode

AnsibleTask file path /var/lib/ceph/mgr/ cluster ansible_hostname /keyring owner ceph_uid if containerized_deployment else group ceph_uid if containerized_deployment else mode ceph_keyring_permissions when cephx bool

AnsibleTask set_fact container_exec_cmd container_binary exec ceph-mon- hostvars item with_items groups.get mon_group_name delegate_to item delegate_facts True run_once True when containerized_deployment bool

AnsibleTask set_fact ceph_mgr_modules ceph_mgr_modules unique when dashboard_enabled bool

AnsibleTask command hostvars groups mon_group_name 0 default ceph cluster cluster mgr dump -f json register mgr_dump retries 30 delay 5 delegate_to groups mon_group_name 0 changed_when False until mgr_dump.rc 0 mgr_dump.stdout from_json .available bool

AnsibleTask command hostvars groups mon_group_name 0 default ceph cluster cluster format json mgr module ls check_mode False changed_when False register _ceph_mgr_modules delegate_to groups mon_group_name 0

AnsibleTask set_fact _ceph_mgr_modules _ceph_mgr_modules.get from_json

AnsibleTask set_fact _disabled_ceph_mgr_modules if _ceph_mgr_modules.disabled_modules length 0 elif _ceph_mgr_modules.disabled_modules 0 type_debug _ceph_mgr_modules else _ceph_mgr_modules map list endif

AnsibleTask command hostvars groups mon_group_name 0 default ceph cluster cluster mgr module disable item with_items _ceph_mgr_modules.get delegate_to groups mon_group_name 0 when item not in ceph_mgr_modules

AnsibleTask command hostvars groups mon_group_name 0 default ceph cluster cluster mgr module enable item with_items ceph_mgr_modules delegate_to groups mon_group_name 0 when item in _disabled_ceph_mgr_modules or _disabled_ceph_mgr_modules

AnsibleTask file state directory path /etc/systemd/system/ceph-mgr .service.d/ when ceph_mgr_systemd_overrides is defined ansible_service_mgr

AnsibleTask become True template src role_path /templates/ceph-mgr.service.j2 dest /etc/systemd/system/ceph-mgr .service owner root group root mode,0644 notify restart ceph mgrs

AnsibleTask command container_exec_cmd ceph cluster cluster daemon mon ansible_hostname mon_status format json register ceph_health_raw run_once True until ceph_health_raw.stdout length 0 and ceph_health_raw.stdout default from_json in retries handler_health_mon_check_retries delay handler_health_mon_check_delay changed_when False

AnsibleTask command _container_exec_cmd default ceph cluster cluster name mon -k /var/lib/ceph/mon/ cluster hostvars groups mon_group_name 0 if running_mon is undefined else running_mon /keyring auth get-key mon register initial_mon_key run_once True delegate_to groups mon_group_name 0 if running_mon is undefined else running_mon when ceph_current_status.fsid is defined

AnsibleTask command hostvars groups mon_group_name 0 if running_mon is undefined else running_mon -c import os import struct import time import base64 key os.urandom 16 header struct.pack int time.time ,0 len key print base64.b64encode header key .decode register monitor_keyring run_once True delegate_to groups mon_group_name 0 if running_mon is undefined else running_mon when initial_mon_key.skipped is defined ceph_current_status.fsid is undefined

AnsibleTask set_fact monitor_keyring initial_mon_key.stdout if monitor_keyring.skipped is defined else monitor_keyring.stdout if initial_mon_key.skipped is defined

AnsibleTask command cp /var/lib/ceph/tmp/ cluster .mon..keyring /etc/ceph/ cluster .mon.keyring changed_when False when containerized_deployment bool

AnsibleTask file path /var/lib/ceph/mon/ cluster monitor_name state directory owner ceph_uid if containerized_deployment else group ceph_uid if containerized_deployment else mode ceph_directories_mode recurse True

AnsibleTask set_fact ceph_authtool_cmd container_binary run net=host rm -v /var/lib/ceph /var/lib/ceph z -v /etc/ceph/ /etc/ceph/ z entrypoint=ceph-authtool ceph_client_docker_registry ceph_client_docker_image ceph_client_docker_image_tag if containerized_deployment else

AnsibleTask command ceph_authtool_cmd /var/lib/ceph/tmp/ cluster .mon..keyring import-keyring /etc/ceph/ cluster .client.admin.keyring when not create_custom_admin_secret.get cephx bool admin_secret

AnsibleTask set_fact ceph_mon_cmd container_binary run rm net=host -v /var/lib/ceph/ /var/lib/ceph z -v /etc/ceph/ /etc/ceph/ z entrypoint=ceph-mon ceph_client_docker_registry ceph_client_docker_image +ceph_client_docker_image_tag if containerized_deployment else

AnsibleTask command ceph_mon_cmd cluster cluster setuser ceph_uid if containerized_deployment else setgroup ceph_uid if containerized_deployment else mkfs -i monitor_name fsid fsid keyring /var/lib/ceph/tmp/ cluster .mon..keyring args creates /var/lib/ceph/mon/ cluster monitor_name /keyring when cephx bool

AnsibleTask command ceph_mon_cmd cluster cluster setuser ceph_uid if containerized_deployment else setgroup ceph_uid if containerized_deployment else mkfs -i monitor_name fsid fsid args creates /var/lib/ceph/mon/ cluster monitor_name /store.db when not cephx bool

AnsibleTask command container_exec_cmd rados cluster cluster lspools changed_when False register ceph_pools check_mode False

AnsibleTask command container_exec_cmd ceph cluster cluster osd pool set item 0 item 1 true changed_when False with_nested ceph_pools.stdout_lines|default secure_cluster_flags

AnsibleTask file state directory path /etc/systemd/system/ceph-mon .service.d/ when not containerized_deployment bool ceph_mon_systemd_overrides is defined ansible_service_mgr

AnsibleTask become True template src role_path /templates/ceph-mon.service.j2 dest /etc/systemd/system/ceph-mon .service owner root group root mode,0644 notify restart ceph mons

AnsibleTask set_fact container_exec_cmd_nfs container_binary exec ceph-mon- hostvars groups mon_group_name 0 when containerized_deployment bool

AnsibleTask command container_exec_cmd_nfs default radosgw-admin cluster cluster user info uid= ceph_nfs_rgw_user run_once True register rgwuser_exists changed_when False failed_when False delegate_to groups mon_group_name 0 when nfs_obj_gw bool

AnsibleTask command container_exec_cmd_nfs default radosgw-admin cluster cluster user create uid= ceph_nfs_rgw_user NFS User run_once True register rgwuser changed_when False delegate_to groups mon_group_name 0 when nfs_obj_gw bool rgwuser_exists.get 1 0

AnsibleTask command container_exec_cmd_nfs default radosgw-admin cluster cluster user modify uid= ceph_nfs_rgw_user access-key= ceph_nfs_rgw_access_key secret-key= ceph_nfs_rgw_secret_key delegate_to groups mon_group_name 0 when nfs_obj_gw bool ceph_nfs_rgw_access_key is defined ceph_nfs_rgw_secret_key is defined

AnsibleTask set_fact ceph_nfs_rgw_access_key rgwuser.stdout from_json 0 if rgwuser_exists.get 1 0 else rgwuser_exists.stdout from_json 0 delegate_to groups mon_group_name 0 when nfs_obj_gw bool ceph_nfs_rgw_access_key is not defined

AnsibleTask set_fact ceph_nfs_rgw_secret_key rgwuser.stdout from_json 0 if rgwuser_exists.get 1 0 else rgwuser_exists.stdout from_json 0 delegate_to groups mon_group_name 0 when nfs_obj_gw bool ceph_nfs_rgw_secret_key is not defined

AnsibleTask command getenforce register selinuxstatus changed_when False failed_when False check_mode False

AnsibleTask copy src /etc/ceph/ cluster ceph_nfs_ceph_user .keyring dest /var/lib/ceph/radosgw/ cluster -rgw ansible_hostname /keyring mode,0600 owner ceph_uid if containerized_deployment else group ceph_uid if containerized_deployment else remote_src True when groups.get mon_group_name length 0 ceph_nfs_ceph_user is defined

AnsibleTask file path item.name state directory owner item.owner default group item.group default mode ceph_directories_mode with_items nfs_obj_gw nfs_obj_gw cluster -rgw ansible_hostname nfs_obj_gw rbd_client_admin_socket_path nfs_obj_gw True True ' True when item.create bool

AnsibleTask shell container_exec_cmd_nfs default rados -p cephfs_data_pool.name cluster cluster ls|grep ceph_nfs_rados_export_index changed_when False failed_when False register rados_index_exists check_mode False when ceph_nfs_rados_backend bool delegate_to groups mon_group_name 0 run_once True

AnsibleTask command container_exec_cmd_nfs default rados -p cephfs_data_pool.name cluster cluster put ceph_nfs_rados_export_index /dev/null when ceph_nfs_rados_backend bool rados_index_exists.rc 0 delegate_to groups mon_group_name 0 run_once True

AnsibleTask file path /etc/ganesha state directory owner root group root mode,0755

AnsibleTask template src ganesha.conf.j2 dest /etc/ganesha/ganesha.conf owner root group root mode,0644 notify restart ceph nfss

AnsibleTask file path /etc/ganesha/export.d state directory owner root group root mode,0755 when ceph_nfs_dynamic_exports bool

AnsibleTask copy content ,force False dest /etc/ganesha/export.d/INDEX.conf owner root group root mode,0644 when ceph_nfs_dynamic_exports bool

AnsibleTask become True template src role_path /templates/ceph-nfs.service.j2 dest /etc/systemd/system/ceph-nfs .service owner root group root mode,0644 notify restart ceph nfss

AnsibleTask template src node_exporter.service.j2 dest /etc/systemd/system/node_exporter.service owner root group root mode,420

AnsibleTask file path item state directory owner ceph_uid if containerized_deployment else group ceph_uid if containerized_deployment else mode ceph_directories_mode when cephx bool with_items /var/lib/ceph/bootstrap-osd/ /var/lib/ceph/osd/

AnsibleTask command hostvars groups mon_group_name 0 default ceph cluster cluster auth get item.name register _osd_keys with_items cluster .keyring True cluster .client.admin.keyring copy_admin_key delegate_to groups.get mon_group_name 0 run_once True when cephx bool item.copy_key bool

AnsibleTask copy dest item.item.path content item.stdout owner ceph_uid if containerized_deployment else group ceph_uid if containerized_deployment else mode ceph_keyring_permissions with_items _osd_keys.results when cephx bool item.item.copy_key bool

AnsibleTask set_fact container_env_args -e OSD_BLUESTORE=0 -e OSD_FILESTORE=1 -e OSD_DMCRYPT=0 when osd_objectstore not dmcrypt bool

AnsibleTask set_fact container_env_args -e OSD_BLUESTORE=0 -e OSD_FILESTORE=1 -e OSD_DMCRYPT=1 when osd_objectstore dmcrypt bool

AnsibleTask set_fact container_env_args -e OSD_BLUESTORE=1 -e OSD_FILESTORE=0 -e OSD_DMCRYPT=0 when osd_objectstore not dmcrypt bool

AnsibleTask set_fact container_env_args -e OSD_BLUESTORE=1 -e OSD_FILESTORE=0 -e OSD_DMCRYPT=1 when osd_objectstore dmcrypt bool

AnsibleTask command hostvars groups mon_group_name 0 default ceph cluster cluster osd crush rule if item.class is defined else item.name item.root item.type item.class default changed_when False with_items hostvars groups mon_group_name 0 default crush_rules unique delegate_to groups mon_group_name 0 run_once True

AnsibleTask command hostvars groups mon_group_name 0 default ceph cluster cluster osd -f json crush rule dump item.name register info_ceph_default_crush_rule changed_when False with_items hostvars groups mon_group_name 0 default crush_rules unique delegate_to groups mon_group_name 0 run_once True when item.default bool

AnsibleTask set_fact info_ceph_default_crush_rule_yaml item.stdout from_json with_items info_ceph_default_crush_rule.results run_once True when not item.get false

AnsibleTask command hostvars item default ceph admin-daemon /var/run/ceph/ cluster -mon hostvars item .asok config set osd_pool_default_crush_rule info_ceph_default_crush_rule_yaml.rule_id changed_when False delegate_to item with_items groups mon_group_name run_once True when not config_crush_hierarchy.get false info_ceph_default_crush_rule_yaml default length 0

AnsibleTask set_fact add_osd groups osd_group_name length ansible_play_hosts_all length

AnsibleTask command hostvars groups mon_group_name 0 default ceph cluster cluster osd set noup delegate_to groups mon_group_name 0 run_once True changed_when False when not rolling_update default False bool

AnsibleTask command hostvars groups mon_group_name 0 default ceph cluster cluster osd unset noup delegate_to groups mon_group_name 0 changed_when False when not rolling_update default False bool inventory_hostname ansible_play_hosts_all last

AnsibleTask command hostvars groups mon_group_name 0 default ceph cluster cluster -s -f json register wait_for_all_osds_up retries nb_retry_wait_osd_up delay delay_wait_osd_up changed_when False delegate_to groups mon_group_name 0 until wait_for_all_osds_up.stdout from_json osdmap num_osds int 0 wait_for_all_osds_up.stdout from_json osdmap num_osds wait_for_all_osds_up.stdout from_json osdmap num_up_osds when inventory_hostname ansible_play_hosts_all last

AnsibleTask set_fact openstack_keys_tmp openstack_keys_tmp|default item.key item.name item.mon_cap item.osd_cap|default item.mds_cap|default item.mgr_cap|default item.mode with_items openstack_keys when not add_osd bool openstack_config bool item.get None

AnsibleTask set_fact openstack_keys openstack_keys_tmp when not add_osd bool openstack_keys_tmp is defined

AnsibleTask shell set -o pipefail ls /var/lib/ceph/osd/ sed *-// args executable /bin/bash changed_when False register osd_ids_non_container

AnsibleTask set_fact docker_exec_start_osd container_binary run rm ulimit nofile=1024:4096 net=host privileged=true -v /var/run/udev/ /var/run/udev/ z -v /run/lvm/ /run/lvm/ -v /etc/ceph /etc/ceph z -v /dev /dev entrypoint=ceph-volume ceph_docker_registry ceph_docker_image ceph_docker_image_tag if containerized_deployment else

AnsibleTask command docker_exec_start_osd lvm list format json changed_when False failed_when False register ceph_osd_ids

AnsibleTask file state directory path /etc/systemd/system/ceph-osd .service.d/ when ceph_osd_systemd_overrides is defined ansible_service_mgr

AnsibleTask become True template src role_path /templates/ceph-osd-run.sh.j2 dest ceph_osd_docker_run_script_path /ceph-osd-run.sh owner root group root mode,0744 setype bin_t notify restart ceph osds

AnsibleTask become True template src role_path /templates/ceph-osd.service.j2 dest /etc/systemd/system/ceph-osd .service owner root group root mode,0644 notify restart ceph osds

AnsibleTask file path /etc/tmpfiles.d state directory owner root group root mode,0755 register tmpfiles_d when disable_transparent_hugepage bool

AnsibleTask template src tmpfiles_hugepage.j2 dest /etc/tmpfiles.d/ceph_transparent_hugepage.conf group root owner root mode,0644 force yes validate systemd-tmpfiles create s when disable_transparent_hugepage bool

AnsibleTask command sysctl -b vm.min_free_kbytes changed_when False failed_when False check_mode False register default_vm_min_free_kbytes

AnsibleTask set_fact vm_min_free_kbytes 4194303 if ansible_memtotal_mb 49152 else default_vm_min_free_kbytes.stdout

AnsibleTask file path item state directory owner prometheus_user_id with_items prometheus_conf_dir prometheus_data_dir

AnsibleTask template src prometheus.yml.j2 dest prometheus_conf_dir /prometheus.yml owner prometheus_user_id notify service handler

AnsibleTask file path /etc/prometheus/alerting/ state directory recurse True

AnsibleTask copy src ceph_dashboard.yml dest /etc/prometheus/alerting/ceph_dashboard.yml owner root group root mode,420

AnsibleTask file path item state directory owner root with_items alertmanager_conf_dir alertmanager_data_dir

AnsibleTask template src alertmanager.yml.j2 dest alertmanager_conf_dir /alertmanager.yml owner root notify service handler

AnsibleTask template src item .j2 dest /etc/systemd/system/ item owner root group root mode,420 with_items alertmanager.service prometheus.service notify service handler

AnsibleTask command container_exec_cmd ceph cluster cluster auth get item.name register _rbd_mirror_keys with_items cluster .keyring True cluster .client.admin.keyring copy_admin_key delegate_to groups.get mon_group_name 0 run_once True when cephx bool item.copy_key bool

AnsibleTask copy dest item.item.path content item.stdout owner ceph_uid if containerized_deployment else group ceph_uid if containerized_deployment else mode ceph_keyring_permissions with_items _rbd_mirror_keys.results when cephx bool item.item.copy_key bool

AnsibleTask command ceph cluster cluster name client.bootstrap-rbd-mirror keyring /var/lib/ceph/bootstrap-rbd-mirror/ cluster .keyring auth get-or-create client.rbd-mirror ansible_hostname mon rbd-mirror osd rbd -o /etc/ceph/ cluster .client.rbd-mirror ansible_hostname .keyring args creates /etc/ceph/ cluster .client.rbd-mirror ansible_hostname .keyring when not containerized_deployment bool

AnsibleTask file path /etc/ceph/ cluster .client.rbd-mirror ansible_hostname .keyring owner ceph group ceph mode ceph_keyring_permissions when not containerized_deployment bool

AnsibleTask command container_exec_cmd default rbd cluster cluster keyring /etc/ceph/ cluster .client.rbd-mirror ansible_hostname .keyring name client.rbd-mirror ansible_hostname mirror pool enable ceph_rbd_mirror_pool ceph_rbd_mirror_mode changed_when False

AnsibleTask command container_exec_cmd default rbd cluster cluster keyring /etc/ceph/ cluster .client.rbd-mirror ansible_hostname .keyring name client.rbd-mirror ansible_hostname mirror pool info ceph_rbd_mirror_pool changed_when False register mirror_peer

AnsibleTask command container_exec_cmd default rbd cluster cluster keyring /etc/ceph/ cluster .client.rbd-mirror ansible_hostname .keyring name client.rbd-mirror ansible_hostname mirror pool peer add ceph_rbd_mirror_pool ceph_rbd_mirror_remote_user ceph_rbd_mirror_remote_cluster changed_when False when ceph_rbd_mirror_remote_user in mirror_peer.stdout

AnsibleTask file state directory path /etc/systemd/system/ceph-rbd-mirror .service.d/ when ceph_rbd_mirror_systemd_overrides is defined ansible_service_mgr

AnsibleTask service name ceph-rbd-mirror ceph_rbd_mirror_local_user state stopped enabled False changed_when False

AnsibleTask service name ceph-rbd-mirror rbd-mirror ansible_hostname state started enabled True masked False changed_when False

AnsibleTask become True template src role_path /templates/ceph-rbd-mirror.service.j2 dest /etc/systemd/system/ceph-rbd-mirror .service owner root group root mode,0644 notify restart ceph rbdmirrors

AnsibleTask service name ceph-radosgw rgw ansible_hostname item.instance_name state restarted with_items rgw_instances

AnsibleTask file path item state directory owner ceph_uid if containerized_deployment else group ceph_uid if containerized_deployment else mode ceph_directories_mode with_items rbd_client_admin_socket_path

AnsibleTask file path /var/lib/ceph/radosgw/ cluster -rgw ansible_hostname item.instance_name state directory owner ceph_uid if containerized_deployment else group ceph_uid if containerized_deployment else mode ceph_directories_mode with_items rgw_instances when rgw_instances is defined

AnsibleTask command container_exec_cmd ceph cluster cluster auth get item.name register _rgw_keys with_items cluster .keyring True cluster .client.admin.keyring copy_admin_key delegate_to groups.get mon_group_name 0 run_once True when cephx bool item.copy_key bool

AnsibleTask copy dest item.item.path content item.stdout owner ceph_uid if containerized_deployment else group ceph_uid if containerized_deployment else mode ceph_keyring_permissions with_items _rgw_keys.results when cephx bool item.item.copy_key bool

AnsibleTask copy content radosgw_frontend_ssl_certificate_data dest radosgw_frontend_ssl_certificate owner ceph_uid if containerized_deployment else group ceph_uid if containerized_deployment else mode,288 when radosgw_frontend_ssl_certificate length 0 and radosgw_frontend_ssl_certificate_data length 0 notify restart ceph rgws

AnsibleTask file path radosgw_nss_db_path state directory owner root group root mode,420

AnsibleTask shell item args warn False changed_when False with_items openssl x509 -in /etc/keystone/ssl/certs/ca.pem -pubkey certutil -d radosgw_nss_db_path -A -n ca -t Cu Tuw openssl x509 -in /etc/keystone/ssl/certs/signing_cert.pem -pubkey certutil -A -d radosgw_nss_db_path -n signing_cert -t P P P tags skip_ansible_lint

AnsibleTask command ceph cluster cluster name client.bootstrap-rgw keyring /var/lib/ceph/bootstrap-rgw/ cluster .keyring auth get-or-create client.rgw ansible_hostname item.instance_name osd rwx mon rw -o /var/lib/ceph/radosgw/ cluster -rgw ansible_hostname item.instance_name /keyring args creates /var/lib/ceph/radosgw/ cluster -rgw ansible_hostname item.instance_name /keyring changed_when False with_items rgw_instances when cephx bool

AnsibleTask file path /var/lib/ceph/radosgw/ cluster -rgw ansible_hostname item.instance_name /keyring owner ceph group ceph mode,0600 with_items rgw_instances when cephx bool

AnsibleTask command container_exec_cmd ceph connect-timeout 10 cluster cluster osd erasure-code-profile rm item.value.ec_profile with_dict rgw_create_pools delegate_to groups mon_group_name 0 changed_when False when item.value.type is defined item.value.type failed_when False

AnsibleTask command container_exec_cmd ceph connect-timeout 10 cluster cluster osd erasure-code-profile set item.value.ec_profile k= item.value.ec_k m= item.value.ec_m with_dict rgw_create_pools delegate_to groups mon_group_name 0 changed_when False when item.value.type is defined item.value.type

AnsibleTask command container_exec_cmd ceph connect-timeout 10 cluster cluster osd crush rule create-erasure item.key item.value.ec_profile with_dict rgw_create_pools delegate_to groups mon_group_name 0 changed_when False when item.value.type is defined item.value.type

AnsibleTask command container_exec_cmd ceph connect-timeout 10 cluster cluster osd pool create item.key item.value.pg_num default osd_pool_default_pg_num erasure item.value.ec_profile with_dict rgw_create_pools delegate_to groups mon_group_name 0 changed_when False when item.value.type is defined item.value.type

AnsibleTask command container_exec_cmd ceph connect-timeout 10 cluster cluster osd pool create item.key item.value.pg_num default osd_pool_default_pg_num replicated changed_when False register result retries 60 delay 3 until result is succeeded with_dict rgw_create_pools delegate_to groups mon_group_name 0 when item.value.type is not defined or item.value.type

AnsibleTask command container_exec_cmd ceph connect-timeout 10 cluster cluster osd pool set item.key size item.value.size default osd_pool_default_size yes-i-really-mean-it if item.value.size default osd_pool_default_size int 1 else register result retries 60 delay 3 until result is succeeded with_dict rgw_create_pools delegate_to groups mon_group_name 0 changed_when False when item.value.type is not defined or item.value.type item.value.size default osd_pool_default_size ceph_osd_pool_default_size

AnsibleTask command container_exec_cmd ceph connect-timeout 10 cluster cluster osd pool application enable item.key rgw register result retries 60 delay 3 until result is succeeded changed_when False with_dict rgw_create_pools delegate_to groups mon_group_name 0

AnsibleTask copy dest /var/lib/ceph/radosgw/ cluster -rgw ansible_hostname item.instance_name /EnvironmentFile owner root group root mode,0644 content INST_NAME= item.instance_name INST_PORT= item.radosgw_frontend_port with_items rgw_instances

AnsibleTask file state directory path /etc/systemd/system/ceph-radosgw .service.d/ when ceph_rgw_systemd_overrides is defined

AnsibleTask service name ceph-radosgw rgw ansible_hostname item.instance_name state started enabled True masked False with_items rgw_instances

AnsibleTask become True template src role_path /templates/ceph-radosgw.service.j2 dest /etc/systemd/system/ceph-radosgw .service owner root group root mode,0644 notify restart ceph rgws

AnsibleTask command container_exec_cmd radosgw-admin realm get cluster= cluster rgw-realm= item delegate_to groups mon_group_name 0 register realmcheck failed_when False changed_when False check_mode False run_once True loop realms when realms is defined

AnsibleTask command container_exec_cmd radosgw-admin zonegroup get cluster= cluster rgw-realm= item.realm rgw-zonegroup= item.zonegroup delegate_to groups mon_group_name 0 register zonegroupcheck failed_when False changed_when False check_mode False run_once True loop zonegroups when zonegroups is defined

AnsibleTask command container_exec_cmd radosgw-admin zone get rgw-realm= item.realm cluster= cluster rgw-zonegroup= item.zonegroup rgw-zone= item.zone delegate_to groups mon_group_name 0 register zonecheck failed_when False changed_when False check_mode False run_once True loop zones when zones is defined

AnsibleTask set_fact realms realms default union item.rgw_realm loop rgw_instances_all run_once True

AnsibleTask set_fact secondary_realms secondary_realms default union item.rgw_realm item.endpoint item.system_access_key item.system_secret_key hostvars item.host loop rgw_instances_all run_once True when not hostvars item.host bool

AnsibleTask set_fact zonegroups zonegroups default union item.rgw_realm item.rgw_zonegroup hostvars item.host loop rgw_instances_all run_once True when hostvars item.host bool

AnsibleTask set_fact zones zones default union item.rgw_realm item.rgw_zonegroup item.rgw_zone hostvars item.host item.system_access_key item.system_secret_key loop rgw_instances_all run_once True

AnsibleTask set_fact zone_endpoint_pairs zone_endpoint_pairs default union hostvars item.host // item.radosgw_address item.radosgw_frontend_port string item.rgw_zone item.rgw_realm item.rgw_zonegroup hostvars item.host loop rgw_instances_all run_once True

AnsibleTask set_fact zone_endpoints_list zone_endpoints_list default union item.rgw_zone item.rgw_zonegroup item.rgw_realm item.rgw_zonemaster zone_endpoint_pairs selectattr item.rgw_zone selectattr item.rgw_realm selectattr item.rgw_zonegroup map loop zone_endpoint_pairs run_once True

AnsibleTask set_fact zone_users zone_users default union item.rgw_realm item.rgw_zonegroup item.rgw_zone item.system_access_key item.system_secret_key item.rgw_zone_user item.rgw_zone_user_display_name loop rgw_instances_all run_once True when hostvars item.host bool hostvars item.host bool

AnsibleTask command container_exec_cmd radosgw-admin user info cluster= cluster rgw-realm= item.realm rgw-zonegroup= item.zonegroup rgw-zone= item.zone uid= item.user delegate_to groups mon_group_name 0 register usercheck failed_when False changed_when False check_mode False run_once True loop zone_users

AnsibleTask command container_exec_cmd radosgw-admin user create cluster= cluster rgw-realm= item.item.realm rgw-zonegroup= item.item.zonegroup rgw-zone= item.item.zone uid= item.item.user display-name= item.item.display_name access-key= item.item.system_access_key secret= item.item.system_secret_key system delegate_to groups mon_group_name 0 run_once True loop usercheck.results when zone_users is defined not fetch user info no user info saved in item.stderr

AnsibleTask command container_exec_cmd radosgw-admin realm create cluster= cluster rgw-realm= item.item default if realms length 1 else delegate_to groups mon_group_name 0 run_once True loop realmcheck.results when realms is defined realms length 0 such file or directory in item.stderr

AnsibleTask command container_exec_cmd radosgw-admin zonegroup create cluster= cluster rgw-realm= item.item.realm rgw-zonegroup= item.item.zonegroup default if zonegroups length 1 else master if item.item.is_master bool else delegate_to groups mon_group_name 0 run_once True loop zonegroupcheck.results when zonegroups is defined zonegroups length 0 item.item.is_master bool such file or directory in item.stderr

AnsibleTask command container_exec_cmd radosgw-admin zone create cluster= cluster rgw-realm= item.item.realm rgw-zonegroup= item.item.zonegroup rgw-zone= item.item.zone access-key= item.item.system_access_key secret= item.item.system_secret_key default if zones length 1 else master delegate_to groups mon_group_name 0 run_once True loop zonecheck.results when zones is defined zones length 0 item.item.is_master bool such file or directory in item.stderr

AnsibleTask command container_exec_cmd radosgw-admin zone modify cluster= cluster rgw-realm= item.realm rgw-zonegroup= item.zonegroup rgw-zone= item.zone endpoints item.endpoints loop zone_endpoints_list delegate_to groups mon_group_name 0 run_once True when zone_endpoints_list is defined item.is_master bool

AnsibleTask command container_exec_cmd radosgw-admin cluster= cluster rgw-realm= item.realm rgw-zonegroup= item.zonegroup rgw-zone= item.zone period update commit delegate_to groups mon_group_name 0 run_once True loop zone_endpoints_list when zone_endpoints_list is defined item.is_master bool

AnsibleTask command container_exec_cmd radosgw-admin realm pull cluster= cluster rgw-realm= item.realm url= item.endpoint access-key= item.system_access_key secret= item.system_secret_key delegate_to groups mon_group_name 0 run_once True loop secondary_realms when secondary_realms is defined

AnsibleTask command container_exec_cmd radosgw-admin period get cluster= cluster rgw-realm= item.realm delegate_to groups mon_group_name 0 run_once True loop secondary_realms when secondary_realms is defined

AnsibleTask command container_exec_cmd radosgw-admin zone create cluster= cluster rgw-realm= item.item.realm rgw-zonegroup= item.item.zonegroup rgw-zone= item.item.zone access-key= item.item.system_access_key secret= item.item.system_secret_key default if zones length 1 else delegate_to groups mon_group_name 0 run_once True loop zonecheck.results when zones is defined zones length 0 not item.item.is_master bool such file or directory in item.stderr

AnsibleTask command container_exec_cmd radosgw-admin zone modify cluster= cluster rgw-realm= item.realm rgw-zonegroup= item.zonegroup rgw-zone= item.zone endpoints item.endpoints loop zone_endpoints_list delegate_to groups mon_group_name 0 run_once True when zone_endpoints_list is defined not item.is_master bool

AnsibleTask command container_exec_cmd radosgw-admin cluster= cluster rgw-realm= item.realm rgw-zonegroup= item.zonegroup rgw-zone= item.zone period update commit delegate_to groups mon_group_name 0 run_once True loop zone_endpoints_list when zone_endpoints_list is defined not item.is_master bool

AnsibleTask template src haproxy.cfg.j2 dest /etc/haproxy/haproxy.cfg owner root group root mode,0644 validate haproxy -f s -c notify restart haproxy

AnsibleTask set_fact vrrp_instances vrrp_instances default union index|string item loop virtual_ips flatten levels=1

AnsibleTask template src keepalived.conf.j2 dest /etc/keepalived/keepalived.conf owner root group root mode,0644 notify restart keepalived

AnsibleTask command findmnt -v -n -T -o SOURCE changed_when False register root_device

AnsibleTask command readlink -f root_device.stdout changed_when False register _root_device

AnsibleTask fail msg root_device found in either lvm_volumes or devices variable when root_device in lvm_volumes_data_devices default or root_device in _devices default

AnsibleTask fail msg monitor_interface does not exist on inventory_hostname when monitor_interface not in ansible_interfaces

AnsibleTask fail msg monitor_interface is not active on inventory_hostname when not hostvars inventory_hostname monitor_interface replace _

AnsibleTask fail msg monitor_interface does not have any IPv4 address on inventory_hostname when ip_version ipv4 hostvars inventory_hostname monitor_interface replace _ is not defined

AnsibleTask fail msg monitor_interface does not have any IPv6 address on inventory_hostname when ip_version ipv6 hostvars inventory_hostname monitor_interface replace _ is not defined

AnsibleTask fail msg radosgw_interface does not exist on inventory_hostname when radosgw_interface not in ansible_interfaces

AnsibleTask fail msg radosgw_interface is not active on inventory_hostname when hostvars inventory_hostname radosgw_interface replace _ false

AnsibleTask fail msg radosgw_interface does not have any IPv4 address on inventory_hostname when ip_version ipv4 hostvars inventory_hostname radosgw_interface replace _ is not defined

AnsibleTask fail msg radosgw_interface does not have any IPv6 address on inventory_hostname when ip_version ipv6 hostvars inventory_hostname radosgw_interface replace _ is not defined

AnsibleTask fail msg inventory_hostname does not have any ip_version address on monitor_address_block when hostvars inventory_hostname ip_version ips_in_ranges hostvars inventory_hostname .split length 0

AnsibleTask fail msg iSCSI gateways can only be deployed on Red Hat Enterprise Linux CentOS or Fedora when ansible_distribution not in

AnsibleTask fail msg you must set a list of IPs comma separated for gateway_ip_list when gateway_ip_list 0.0.0.0 not containerized_deployment bool not use_new_ceph_iscsi bool

AnsibleTask fail msg you must set a iqn for the iSCSI target when gateway_iqn length 0 not containerized_deployment bool not use_new_ceph_iscsi bool

AnsibleTask fail msg Mixing clients with CHAP enabled and disabled is not supported with_items client_connections when item.status is defined item.status present item.chap in client_connections selectattr map list

AnsibleTask command grep -q item =m if is_atomic|bool /usr/lib/ostree-boot else /boot endif /config- ansible_kernel register iscsi_kernel changed_when False failed_when iscsi_kernel.rc 0 loop CONFIG_TARGET_CORE CONFIG_TCM_USER2 CONFIG_ISCSI_TARGET when ansible_distribution in

AnsibleTask fail msg ceph_nfs_rgw_access_key and ceph_nfs_rgw_secret_key must be set if nfs_obj_gw is True when nfs_obj_gw groups.get mon_group_name length 0 ceph_nfs_rgw_access_key is undefined or ceph_nfs_rgw_secret_key is undefined

AnsibleTask fail msg ceph-nfs packages are not available from openSUSE Leap 15.x repositories ceph_origin when ceph_origin ansible_distribution Leap

AnsibleTask fail msg You must set a target_size_ratio value on following pool item.name with_items openstack_pools default cephfs_pools default pools default when item.pg_autoscale_mode default False bool item.target_size_ratio is undefined

AnsibleTask fail msg ceph_rbd_mirror_pool needs to be provided when ceph_rbd_mirror_pool default length 0

AnsibleTask fail msg ceph_rbd_mirror_remote_cluster needs to be provided when ceph_rbd_mirror_remote_cluster default length 0

AnsibleTask fail msg ceph_rbd_mirror_remote_user needs to be provided when ceph_rbd_mirror_remote_user default length 0

AnsibleTask fail msg rgw_zone can not be named loop rgw_instances when item.rgw_zone is undefined or item.rgw_zone

AnsibleTask fail msg rgw_zonemaster and rgw_zonesecondary must be defined when rgw_zonemaster is undefined or rgw_zonesecondary is undefined

AnsibleTask fail msg rgw_zonemaster and rgw_zonesecondary can not both be true when rgw_zonemaster bool rgw_zonesecondary bool

AnsibleTask fail msg rgw_zonegroup has not been set by the user loop rgw_instances when item.rgw_zonegroup is undefined

AnsibleTask fail msg rgw_zone_user has not been set by the user loop rgw_instances when item.rgw_zone_user is undefined

AnsibleTask fail msg rgw_zone_user_display_name has not been set by the user loop rgw_instances when item.rgw_zone_user_display_name is undefined

AnsibleTask fail msg rgw_realm has not been set by the user loop rgw_instances when item.rgw_realm is undefined

AnsibleTask fail msg system_access_key has not been set by the user loop rgw_instances when item.system_access_key is undefined

AnsibleTask fail msg system_secret_key has not been set by the user loop rgw_instances when item.system_secret_key is undefined

AnsibleTask fail msg endpoint has not been set by the user loop rgw_instances when rgw_zonesecondary bool rgw_pull_port is undefined and rgw_pullhost is undefined and rgw_pull_proto is undefined item.endpoint is undefined

AnsibleTask fail msg ec_profile must be set for ec pools with_dict rgw_create_pools when item.value.type is defined item.value.type item.value.ec_profile is undefined

AnsibleTask fail msg ec_k must be set for ec pools with_dict rgw_create_pools when item.value.type is defined item.value.type item.value.ec_k is undefined

AnsibleTask fail msg ec_m must be set for ec pools with_dict rgw_create_pools when item.value.type is defined item.value.type item.value.ec_m is undefined

AnsibleTask fail msg Ansible version must be 2.x please update when ansible_version.major|int 2

AnsibleTask fail msg Ansible version must be 2.8 or 2.9 when ansible_version.major|int 2 ansible_version.minor|int not in 8 9

AnsibleTask fail msg System not supported ansible_system when ansible_system not in

AnsibleTask fail msg Architecture not supported ansible_architecture when ansible_architecture not in

AnsibleTask fail msg Distribution not supported ansible_os_family when ansible_os_family not in

AnsibleTask fail msg CentOS release not supported ansible_distribution_major_version when ansible_distribution ansible_distribution_major_version int 8

AnsibleTask fail msg Distribution not supported by Ubuntu Cloud Archive ansible_distribution when ceph_repository ansible_distribution

AnsibleTask fail msg Distribution not supported ansible_distribution ansible_distribution_major_version when ansible_distribution Leap or ansible_distribution ansible_distribution_major_version

AnsibleTask fail msg Systemd must be present when ansible_service_mgr

AnsibleTask fail msg osd_objectstore must be either or when osd_objectstore not in

AnsibleTask fail msg Either monitor_address monitor_address_block or monitor_interface must be provided when mon_group_name in group_names monitor_address x.x.x.x monitor_address_block monitor_interface

AnsibleTask fail msg Either radosgw_address radosgw_address_block or radosgw_interface must be provided when rgw_group_name in group_names radosgw_address x.x.x.x radosgw_address_block radosgw_interface

AnsibleTask fail msg ntp_daemon_type must be one of chronyd ntpd or timesyncd when ntp_service_enabled bool ntp_daemon_type not in

AnsibleTask fail msg installation ca happen on Atomic and ntpd needs to be installed when is_atomic default False bool ansible_os_family ntp_daemon_type

AnsibleTask debug msg WARNING journal_size is configured to journal_size which is less than 5GB This is not recommended and can lead to severe issues when journal_size|int 5120 osd_objectstore osd_group_name in group_names

AnsibleTask debug msg WARNING radosgw_civetweb_num_threads variable is deprecated Please use radosgw_thread_pool_size instead when radosgw_frontend_type radosgw_civetweb_num_threads is defined

AnsibleTask fail msg you must add a grafana-server group and add at least one node when groups grafana_server_group_name is undefined

AnsibleTask fail msg you must add at least one node in the grafana-server hosts group when groups grafana_server_group_name length 1

AnsibleTask fail msg you must set dashboard_admin_password and grafana_admin_password when dashboard_admin_password is undefined or grafana_admin_password is undefined

AnsibleTask fail msg ceph_docker_registry_username and/or ceph_docker_registry_password variables need to be set when ceph_docker_registry_auth bool ceph_docker_registry_username is not defined or ceph_docker_registry_password is not defined or ceph_docker_registry_username length 0 or ceph_docker_registry_password length 0

AnsibleTask fail msg item.name key format invalid with_items openstack_keys when osd_group_name in group_names openstack_keys is defined openstack_keys length 0 item.key is defined item.key is not match a-zA-Z0-9+/ 38

AnsibleTask fail msg item.name key format invalid with_items keys when client_group_name in group_names keys is defined keys length 0 item.key is defined item.key is not match a-zA-Z0-9+/ 38

AnsibleTask fail msg ceph_nfs_ceph_user.name key format invalid when client_group_name in group_names ceph_nfs_ceph_user is defined ceph_nfs_ceph_user.key is defined ceph_nfs_ceph_user.key is not match a-zA-Z0-9+/ 38

AnsibleTask set_fact is_atomic stat_ostree.stat.exists tags always

AnsibleTask command rbd create size=1024 test/rbd_test delegate_to mon0 when not is_atomic bool not containerized_deployment default false bool

AnsibleTask command podman run rm -v /etc/ceph /etc/ceph net=host entrypoint=rbd ceph_docker_registry ceph_docker_image ceph_docker_image_tag create size=1024 test/rbd_test delegate_to mon0 when is_atomic bool or containerized_deployment default false bool

AnsibleTask command podman run rm name=rgw_multisite_test entrypoint=/bin/bash ceph_docker_registry ceph_docker_image ceph_docker_image_tag -c if=/dev/urandom of=/tmp/testinfra.img bs=1M count=10 s3cmd_cmd mb s3 //testinfra s3cmd_cmd put /tmp/testinfra.img s3 //testinfra when rgw_zonemaster bool containerized_deployment default False bool

AnsibleTask shell dd if=/dev/urandom of=/tmp/testinfra.img bs=1M count=10 s3cmd_cmd mb s3 //testinfra s3cmd_cmd put /tmp/testinfra.img s3 //testinfra when rgw_zonemaster default False bool not containerized_deployment default False bool

AnsibleTask command podman run rm name=rgw_multisite_test entrypoint=/bin/bash ceph_docker_registry ceph_docker_image ceph_docker_image_tag -c s3cmd_cmd info s3 //testinfra/testinfra.img register s3cmd_info_status when not rgw_zonemaster default False bool containerized_deployment default False bool retries 10 delay 2 until s3cmd_info_status.get 1 0

AnsibleTask command s3cmd_cmd info s3 //testinfra/testinfra.img register s3cmd_info_status when not rgw_zonemaster default False bool not containerized_deployment default False bool retries 10 delay 2 until s3cmd_info_status.get 1 0

AnsibleTask command yum-config-manager enable rhel-7-extras-nightly

AnsibleTask set_fact rootmount ansible_mounts|json_query mount== ` ` 0

AnsibleTask command passwd -d cm_user when user_created is defined and user_created|changed tags user

AnsibleTask template src cephlab_sudo dest /etc/sudoers.d/cephlab_sudo owner root group root mode,288 validate visudo -cf s tags sudoers user

AnsibleTask file src /root/ secrets_repo.name /ansible/inventory/ dest /etc/ansible/hosts state link force True

AnsibleTask file src /root/ secrets_repo.name /ansible/secrets/ dest /etc/ansible/secrets state link force True

AnsibleTask set_fact ipmi_creds_path secrets_path /ipmi.yml when ipmi_creds_path is undefined

AnsibleTask copy content item.data dest item.path mode,600 with_items cobbler_keys ansible_hostname no_log True

AnsibleTask service name cobbler_service state started enabled True

AnsibleTask service name xinetd state reloaded enabled True when tftp_enabled is defined and tftp_enabled|changed tags tftp

AnsibleTask service name httpd_service state started enabled True

AnsibleTask shell cobbler setting report grep xmlrpc_port awk FS= print 3 register cobbler_port_cmd

AnsibleTask service name cobbler_service state restarted changed_when False

AnsibleTask copy content for line in users_digest_lines line endfor dest /etc/cobbler/users.digest owner root group root mode,384 register users_digest

AnsibleTask command cobbler setting edit name= item.name value= item.value with_items settings

AnsibleTask template src httpd/index.html dest /var/www/html/ owner root group root mode,420 tags httpd

AnsibleTask template src kickstarts/ item dest /var/lib/cobbler/kickstarts/ item owner root group root mode,420 with_items kickstarts tags kickstarts

AnsibleTask template src snippets/ item dest /var/lib/cobbler/snippets/ item owner root group root mode,420 with_items snippets tags snippets

AnsibleTask template src scripts/ item dest /var/lib/cobbler/scripts/ item owner root group root mode,420 with_items scripts tags scripts

AnsibleTask template src triggers/ item dest /var/lib/cobbler/triggers/ item owner root group root mode,484 with_items triggers tags triggers

AnsibleTask file path /root/bin state directory owner root group root mode,493 tags utils

AnsibleTask template src utils/ item dest /root/bin/ item owner root group root mode,493 with_items utils tags utils

AnsibleTask command systemctl status firewalld register firewalld ignore_errors True no_log True tags firewall

AnsibleTask set_fact files_exist kernel_stat.stat.exists or download_kernel|changed and initrd_stat.stat.exists or download_initrd|changed

AnsibleTask set_fact distros for distro in distros.keys extra_distros.keys distros distro .update extra_distros distro |default endfor distros

AnsibleTask fail msg= Can not specify both and or distro distro_name when distro.iso and distro.kernel is defined or distro.initrd is defined

AnsibleTask set_fact profile_type iso when distro.iso is defined and distro.iso

AnsibleTask set_fact profile_type image when distro.kernel is defined and distro.kernel and distro.initrd is defined and distro.initrd

AnsibleTask command cobbler profile find name distro_name when profile_type|default register profile ignore_errors True changed_when False

AnsibleTask set_fact profile_found profile is defined and profile.stdout distro_name or import is defined and import.rc 0

AnsibleTask set_fact arch distro.arch|default when download_kernel is defined and download_kernel|success

AnsibleTask command cobbler distro add kernel kernel_path initrd initrd_path name distro_name when download|changed or files_exist and profile is defined and profile.stdout register import

AnsibleTask command cobbler profile add name distro_name distro distro_name when import is defined and import.stdout register import

AnsibleTask set_fact arch distro.arch|default when mount is defined and mount|changed

AnsibleTask command cobbler import path= iso_mount name= distro_name arch= arch register import when mount is defined and mount|changed

AnsibleTask shell cobbler profile dumpvars name= distro_name grep cut -d -f 2 changed_when False register kernel_options

AnsibleTask command cobbler profile edit name= distro_name kopts= distro.kernel_options when kernel_options.stdout.strip distro.kernel_options

AnsibleTask shell cobbler profile dumpvars name= distro_name grep cut -d -f 2 changed_when False register kernel_options_post

AnsibleTask command cobbler profile edit name= distro_name kopts-post= distro.kernel_options_post when kernel_options_post.stdout.strip distro.kernel_options_post

AnsibleTask set_fact kickstart_path /var/lib/cobbler/kickstarts/ distro.kickstart

AnsibleTask shell cobbler profile dumpvars name= distro_name grep awk print 3 when kickstart_path is defined changed_when False register kickstart

AnsibleTask command cobbler profile edit name= distro_name kickstart= kickstart_path when kickstart is defined and kickstart.stdout kickstart_path

AnsibleTask command cobbler system list register cmd_cobbler_systems no_log True

AnsibleTask set_fact cobbler_systems_current for host in cmd_cobbler_systems.stdout.strip .split host lab_domain endfor

AnsibleTask set_fact cobbler_systems_add groups.cobbler_managed difference cobbler_systems_current

AnsibleTask command cobbler system add name= item.split 0 profile= default_profile mac= hostvars item .mac ip-address= hostvars item .ip interface= hostvars item .interface|default interface hostname= item.split 0 lab_domain kopts= hostvars item .kernel_options|default kernel_options ksmeta= hostvars item .kickstart_metadata|default kickstart_metadata power-type= hostvars item .power_type|default power_type power-address= item.split 0 ipmi_domain power-user= hostvars item .power_user|default power_user power-pass= hostvars item .power_pass|default power_pass netboot-enabled false with_items cobbler_systems_add

AnsibleTask set_fact cobbler_systems_update groups.cobbler_managed intersect cobbler_systems_current

AnsibleTask command cobbler system edit name= item.split 0 mac= hostvars item .mac ip-address= hostvars item .ip interface= hostvars item .interface|default interface hostname= item.split 0 lab_domain kopts= hostvars item .kernel_options|default kernel_options ksmeta= hostvars item .kickstart_metadata|default kickstart_metadata power-type= hostvars item .power_type|default power_type power-address= item.split 0 ipmi_domain power-user= hostvars item .power_user|default power_user power-pass= hostvars item .power_pass|default power_pass with_items cobbler_systems_update

AnsibleTask shell cat /etc/timezone register current_tz changed_when False tags timezone

AnsibleTask copy content timezone dest /etc/timezone owner root group root mode,420 when current_tz.stdout|default timezone register etc_timezone tags timezone

AnsibleTask command dpkg-reconfigure frontend noninteractive tzdata when etc_timezone|changed tags timezone

AnsibleTask template src yum_repo.j2 dest /etc/yum.repos.d/ item.key .repo owner root group root mode,420 register beta_repo with_dict beta_repos no_log True

AnsibleTask shell yum clean all when beta_repo is defined and beta_repo|changed

AnsibleTask copy src ../files/sbin/ item dest /usr/sbin/ item owner root group root mode,493 with_items megacli cli64

AnsibleTask file path /usr/libexec owner root group root mode,493 state directory

AnsibleTask copy src ../files/libexec/ item dest /usr/libexec/ item owner root group root mode,493 with_items smart.sh raid.pl diskusage.pl

AnsibleTask template src yum_repo.j2 dest /etc/yum.repos.d/ item.key .repo owner root group root mode,420 register epel_repo with_dict epel_repos

AnsibleTask template src item dest /etc/yum.repos.d/ item owner root group root mode,420 with_items epel-mirrorlist epel-testing-mirrorlist

AnsibleTask shell yum clean all when epel_repo is defined and epel_repo|changed

AnsibleTask template src krb5.conf dest /etc/krb5.conf owner root group root mode,420

AnsibleTask debug msg= Host inventory_hostname is running ansible_distribution ansible_distribution_version ansible_distribution_release

AnsibleTask command getenforce register selinux_status when ansible_pkg_mgr yum tags nagios

AnsibleTask shell grep -q /etc/yum.repos.d/* register have_epel no_log True ignore_errors True when ansible_pkg_mgr yum

AnsibleTask template src nagios/90-nagios dest /etc/sudoers.d/90-nagios owner root group root mode,288 validate visudo -cf s

AnsibleTask copy src nagios/check_mem.sh dest nagios_plugins_directory /check_mem.sh owner root group root mode,493

AnsibleTask command systemctl status firewalld register firewalld ignore_errors True no_log True when ansible_pkg_mgr yum

AnsibleTask template src nagios/nrpe.cfg dest /etc/nagios/nrpe.cfg owner root group root mode,420 notify restart nagios-nrpe-server

AnsibleTask service name nrpe_service_name enabled True state started

AnsibleTask command checkmodule -M -m -o /tmp/nrpe.mod /tmp/nrpe.te

AnsibleTask command semodule_package -o /tmp/nrpe.pp -m /tmp/nrpe.mod

AnsibleTask set_fact entitlements_path secrets_path /entitlements.yml

AnsibleTask set_fact have_entitlements subscription_manager_org and subscription_manager_activationkey

AnsibleTask command subscription-manager identity register subscription ignore_errors True changed_when False no_log True

AnsibleTask command subscription-manager register activationkey= subscription_manager_activationkey org= subscription_manager_org no_log True when rhsm_registered false and have_entitlements true register entitled until entitled|success retries 5 delay 10

AnsibleTask shell sudo subscription-manager repos list grep -B4 *1 grep ID sed -e ID \s*\ *\ /\1/ sort register repo_list_cmd when rhsm_registered true changed_when False

AnsibleTask set_fact repo_list repo_list_cmd.stdout.split when repo_list_cmd is defined and not repo_list_cmd|skipped

AnsibleTask set_fact replace_repos False when have_entitlements false

AnsibleTask set_fact replace_repos repo_list|sort rhsm_repos|sort when repo_list is defined

AnsibleTask set_fact replace_repos True when entitled|changed and entitled.rc 0

AnsibleTask command subscription-manager repos disable when replace_repos|bool true no_log True

AnsibleTask command subscription-manager repos enable item with_items rhsm_repos when replace_repos

AnsibleTask file path /etc/yum.repos.d/cd.repo state absent when entitled|success

AnsibleTask shell cut -d -f2 /etc/sysconfig/clock when ansible_distribution_major_version 6 register current_tz changed_when False tags timezone

AnsibleTask shell timedatectl grep -E Time zone sed -e s/ *\ */\1/ when ansible_distribution_major_version 7 register current_tz changed_when False tags timezone

AnsibleTask file src /usr/share/zoneinfo/ timezone dest /etc/localtime state link force True when ansible_distribution_major_version 6 and current_tz.stdout|default timezone tags timezone

AnsibleTask command hwclock systohc when ansible_distribution_major_version 6 and current_tz.stdout|default timezone tags timezone

AnsibleTask command timedatectl set-timezone timezone when ansible_distribution_major_version 7 and current_tz.stdout|default timezone tags timezone

AnsibleTask set_fact beta_distro True when ansible_distribution and in ansible_lsb.description or in ansible_lsb.description

AnsibleTask file path /etc/yum.repos.d/ item .repo state absent with_items repos

AnsibleTask template src templates/f2b.jail.local.j2 dest /etc/fail2ban/jail.local notify restart fail2ban

AnsibleTask set_fact f2b_grep_var This file is managed by ansible do make changes here they will be overwritten

AnsibleTask shell for file in grep -l f2b_grep_var|quote /etc/fail2ban/jail.d/* do rm -vf file done register f2b_rm_out

AnsibleTask template src templates/f2b.service.j2 dest /etc/fail2ban/jail.d/ item.key .local with_dict gw_f2b_services notify reload fail2ban

AnsibleTask shell fail2ban-client status register fail2ban_status

AnsibleTask service name iptables state stopped enabled False ignore_errors True

AnsibleTask copy content item.data dest item.path mode item.mode with_items gateway_secrets no_log True

AnsibleTask service name openvpn openvpn_server_name state started enabled True

AnsibleTask copy src files/openvpn.logrotate dest /etc/logrotate.d/openvpn

AnsibleTask template src ifcfg.j2 dest /etc/sysconfig/network-scripts/ifcfg- item.value.ifname with_dict gw_networks register interfaces

AnsibleTask service name network state restarted when interfaces.changed

AnsibleTask set_fact openvpn_users admin_users|list lab_users|list openvpn_users|list

AnsibleTask template src users.j2 dest openvpn_data_dir /users owner root group root mode,420

AnsibleTask template src auth-openvpn dest openvpn_data_dir /auth-openvpn owner root group root mode,493

AnsibleTask template src named.conf.j2 dest named_conf_file validate named-checkconf s notify restart named with_dict named_domains

AnsibleTask template src forward.j2 dest named_conf_zones_path item.key validate named-checkzone item.key s with_dict named_domains notify reload named

AnsibleTask template src reverse.j2 dest named_conf_zones_path item.1 validate named-checkzone item.1 s with_subelements named_domains reverse None True notify reload named

AnsibleTask set_fact paddles_repo_path /home/ paddles_user /paddles tags always

AnsibleTask set_fact paddles_address http // ansible_hostname when paddles_address is not defined or not paddles_address.startswith tags always

AnsibleTask set_fact db_url postgresql+psycopg2 // paddles_user db_pass localhost/paddles no_log True tags always

AnsibleTask file name /etc/nginx/sites-enabled/default state absent

AnsibleTask template src nginx.conf dest /etc/nginx/sites-available/paddles

AnsibleTask file src /etc/nginx/sites-available/paddles dest /etc/nginx/sites-enabled/paddles state link

AnsibleTask service name apache_service enabled False state stopped failed_when False

AnsibleTask service name nginx enabled True state reloaded changed_when False

AnsibleTask command ./virtualenv/bin/pecan populate prod.py args chdir paddles_repo_path become_user paddles_user when create_db|changed

AnsibleTask command cp ./alembic.ini.in alembic.ini args creates alembic.ini chdir paddles_repo_path register alembic_ini become_user paddles_user

AnsibleTask shell ./virtualenv/bin/alembic stamp head args chdir paddles_repo_path when alembic_ini|changed become_user paddles_user

AnsibleTask command ./virtualenv/bin/python setup.py develop args chdir paddles_repo_path changed_when False become_user paddles_user

AnsibleTask template src prod.py dest paddles_repo_path /prod.py owner paddles_user group paddles_user mode,493 register prod_conf tags config

AnsibleTask template src supervisor.conf dest supervisor_conf_d /paddles supervisor_conf_suffix mode,493 register supervisor_conf

AnsibleTask command supervisorctl update when supervisor_conf|changed

AnsibleTask service name pmcd_service state restarted enabled True when install_pcp_apt|changed or install_pcp_yum|changed or install_pcp_dnf|changed

AnsibleTask service name pmlogger_service state restarted enabled True when install_pcp_apt|changed or install_pcp_yum|changed or install_pcp_dnf|changed

AnsibleTask template src target-host dest /etc/pcp/pmmgr/target-host owner root group root mode,420 register target_host

AnsibleTask template src target-discovery dest /etc/pcp/pmmgr/target-discovery owner root group root mode,420 register target_discovery

AnsibleTask copy dest /etc/pcp/pmmgr/pmlogmerge-retain content pmlogmerge_retain owner root group root mode,420 register update_pmlogmerge_retain

AnsibleTask copy dest /etc/pcp/pmmgr/pmlogmerge-reduce content pmlogmerge_reduce owner root group root mode,420 register update_pmlogmerge_reduce

AnsibleTask service name pmmgr_service state restarted enabled True when install_pmmgr_apt|changed or install_pmmgr_yum|changed or target_host|changed or target_discovery|changed or pmmgr_options|changed or update_pmlogmerge_retain|changed or update_pmlogmerge_reduce|changed

AnsibleTask file path /var/log/pcp owner pcp_user group pcp_user recurse True failed_when False

AnsibleTask copy content upstream_repo_source dest /etc/apt/sources.list.d/pcp.list when ansible_pkg_mgr apt

AnsibleTask shell DEBIAN_FRONTEND=noninteractive apt -y install only-upgrade .*pcp when ansible_pkg_mgr apt

AnsibleTask fail msg pcp-webapi is only available when using upstream packages Set upstream_repo to true when ansible_distribution Ubuntu and upstream_repo|bool true

AnsibleTask service name pmwebd_service enabled True register enable_pmwebd

AnsibleTask copy src ../files/ item dest /usr/share/pcp/webapps/grafana/app/dashboards/ owner root group root mode,420 with_items 1h1m.json index.js tags dashboards

AnsibleTask service name pmmgr_service state restarted when install_pcp_webapi|changed or install_pcp_webjs|changed or enable_pmwebd|changed

AnsibleTask file path /etc/puddle/ceph owner root group root mode,493 state directory

AnsibleTask template src item .conf dest /etc/puddle/ceph/ item .conf owner root group root mode,420 with_items ceph-1.2-rhel-6 ceph-1.2-rhel-6-async ceph-1.2-rhel-7 ceph-1.2-rhel-7-async rh-common-rhel-6 rh-common-rhel-7 ceph-1.3-rhel-7 ceph-1.3-rhel-7-async ceph-1.3.z-rhel-7

AnsibleTask template src rcm-kerberos.conf dest /etc/rcm-kerberos.conf owner root group root mode,420

AnsibleTask file path puddle.kerberos_keytab owner root group puddle mode,416

AnsibleTask template src faucet.conf dest /etc/puddle/faucet.conf owner root group root mode,420 notify restart faucet

AnsibleTask template src ceph-puddle dest /usr/local/bin/ceph-puddle owner root group root mode,493

AnsibleTask template src eng-rhel-7.repo dest /etc/yum.repos.d/eng-rhel-7.repo owner root group root mode,420

AnsibleTask file path /var/www/ item /htdocs owner puddle_user mode,493 state directory with_items dev- ansible_hostname ansible_hostname

AnsibleTask template src nginx.conf dest /etc/nginx/nginx.conf notify restart nginx

AnsibleTask file path /etc/nginx/htpasswd owner root group nginx mode,416 notify restart nginx

AnsibleTask template src rsyncd.conf dest /etc/rsyncd.conf notify restart rsyncd

AnsibleTask file path /etc/distill/ owner root group root mode,493 state directory

AnsibleTask file src /mnt/redhat/brewroot dest /mnt/brew owner root group root state link

AnsibleTask file path /var/www/ ansible_hostname /htdocs/distill/ item -trees owner puddle_user mode,493 state directory with_items 1.3-compose

AnsibleTask template src ../../templates/distill/ceph-distill dest /usr/local/bin/ceph-distill owner root group root mode,493

AnsibleTask shell virtualenv ./virtualenv chdir= pulpito_repo_path become_user pulpito when virtualenv.stat.exists false

AnsibleTask shell cp ./config.py.in prod.py chdir= pulpito_repo_path when pulpito_config.stat.exists false become_user pulpito

AnsibleTask service name supervisor_service enabled True state started

AnsibleTask set_fact supervisor_conf_path supervisor_conf_d /pulpito supervisor_conf_suffix

AnsibleTask shell cp ./supervisord_pulpito.conf supervisor_conf_path chdir= pulpito_repo_path when supervisor_conf.stat.exists false register supervisor_conf

AnsibleTask command supervisorctl status pulpito register pulpito_status changed_when False

AnsibleTask service name rpcbind state started enabled True when start_rpcbind

AnsibleTask command perl -pe m \S*\s+/\s+\S+\s+ \S+ \s+ _= 1 2 user_xattr 3\n unless 2=~m ^| user_xattr -i.bak /etc/fstab args creates /etc/fstab.bak register add_user_xattr when modify_fstab true

AnsibleTask command mount -o remount user_xattr when add_user_xattr is defined and add_user_xattr|changed

AnsibleTask template src fuse.conf dest /etc/fuse.conf owner root group fuse mode,420

AnsibleTask file path /home/ teuthology_user /.cpan/CPAN/ owner teuthology_user group teuthology_user mode,493 recurse True state directory

AnsibleTask file path /root/.cpan/CPAN/ owner root group root mode,493 recurse True state directory

AnsibleTask template src cpan_config.pm dest /home/ teuthology_user /.cpan/CPAN/MyConfig.pm owner teuthology_user group teuthology_user mode,493

AnsibleTask template src cpan_config.pm dest /root/.cpan/CPAN/MyConfig.pm owner root group root mode,493

AnsibleTask command perldoc -l Amazon :S3 register cpan_check ignore_errors True changed_when False

AnsibleTask command cpan Amazon :S3 when cpan_check is defined and cpan_check.rc 0

AnsibleTask shell parted -m drive_to_partition print grep 0-9 wc -l register partition_count

AnsibleTask command parted -s drive_to_partition mktable msdos when partition_count.stdout 4

AnsibleTask command parted drive_to_partition unit mkpart primary item with_items 0 25,25 50,50 75,75 100 when partition_count.stdout 4

AnsibleTask file state link src /sbin/lspci dest /usr/bin/lspci force True

AnsibleTask file state directory dest /usr/lib/ltp/testcases/bin

AnsibleTask file state link src /usr/bin/fsstress dest /usr/lib/ltp/testcases/bin/fsstress force True

AnsibleTask template src security_limits.conf dest /etc/security/limits.d/ teuthology_user .conf owner root group root mode,493

AnsibleTask template src exports dest /etc/exports owner root group root mode,420 notify start rpcbind restart nfs-server

AnsibleTask service name nfs_service enabled True when ansible_distribution RedHat and ansible_distribution_major_version 7

AnsibleTask template src ntp.conf dest /etc/ntp.conf owner root group root mode,420 notify restart ntp

AnsibleTask service name ntp_service_name enabled True state started

AnsibleTask file path /home/ teuthology_user /.pip owner teuthology_user group teuthology_user mode,420 state directory

AnsibleTask template src pip.conf dest /home/ teuthology_user /.pip/pip.conf owner teuthology_user group teuthology_user mode,420

AnsibleTask shell ifdown interface ifup interface when bounce_interface True or ansible_distribution|lower and ansible_distribution_major_version|int 16

AnsibleTask template src wgetrc dest /etc/wgetrc owner root group root mode,420

AnsibleTask command grep /usr/sbin /etc/profile register update_profile changed_when False ignore_errors True

AnsibleTask command sed -i /\/usr\/games \/usr\/sbin /g /etc/profile when update_profile is defined and update_profile.rc 0

AnsibleTask template src grub dest /etc/default/grub owner root group root mode,420

AnsibleTask template src cron/kernel-clean dest /etc/cron.weekly/kernel-clean owner root group root mode,493 notify restart cron

AnsibleTask template src grub.d/02_force_timeout dest /etc/grub.d/02_force_timeout owner root group root mode,493

AnsibleTask command update-grub when kernel_logging|changed tags kernel_logging

AnsibleTask template src modules dest /etc/modules owner root group root mode,420

AnsibleTask template src ssh/sshd_config_ ansible_distribution lower _ ansible_distribution_major_version dest /etc/ssh/sshd_config owner root group root mode,493 notify restart ssh

AnsibleTask template src ssh/ssh_config dest /etc/ssh/ssh_config owner root group root mode,493

AnsibleTask command passwd -d teuthology_user when teuthology_user_existence is defined and teuthology_user_existence|changed

AnsibleTask template src remote.conf dest /etc/security/limits.d/remote.conf group root owner root mode,420

AnsibleTask file path /etc/fuse.conf mode,420 state touch changed_when False

AnsibleTask template src sudoers dest /etc/sudoers owner root group root mode,288 validate visudo -cf s tags sudoers

AnsibleTask template src limits.conf dest /etc/security/limits.conf group root owner root mode,420

AnsibleTask shell ls -1 /etc/apt/sources.list.d/ register custom_repos changed_when False

AnsibleTask file path=/etc/apt/sources.list.d/ item state=absent with_items custom_repos.stdout_lines changed_when False

AnsibleTask template dest /etc/apt/preferences.d/ceph.pref src apt/ceph.pref owner root group root mode,420 register apt_prefs

AnsibleTask template dest /etc/apt/sources.list src apt/sources.list ansible_distribution_release lower owner root group root mode,420 register sources when ansible_architecture aarch64

AnsibleTask service name firewalld state stopped enabled False ignore_errors True

AnsibleTask command yum-complete-transaction cleanup-only register transaction_cleanup changed_when up in transaction_cleanup.stdout

AnsibleTask command rpm -q ceph-debuginfo ignore_errors True changed_when False register bz1234967 tags remove-ceph

AnsibleTask command rpm -e ceph-debuginfo when bz1234967 is defined and bz1234967.rc 0 tags remove-ceph

AnsibleTask template src yum_repo.j2 dest /etc/yum.repos.d/ item.key .repo owner root group root mode,420 register repo_file with_dict common_yum_repos when common_yum_repos.keys length 0

AnsibleTask template src yum_repo.j2 dest /etc/yum.repos.d/ item.key .repo owner root group root mode,420 register version_repo_file with_dict yum_repos when yum_repos.keys length 0

AnsibleTask shell yum clean all when repo_file is defined and repo_file|changed or gpg_keys is defined and gpg_keys|changed or version_repo_file is defined and version_repo_file|changed

AnsibleTask template src teuthology.yaml dest /etc/teuthology.yaml mode,493 tags config

AnsibleTask template src nginx.conf dest /etc/nginx/sites-available/test_logs

AnsibleTask file src /etc/nginx/sites-available/test_logs dest /etc/nginx/sites-enabled/test_logs state link

AnsibleTask service name apache_service enabled False state stopped ignore_errors True

AnsibleTask shell NO_CLOBBER=true ./bootstrap args chdir /home/ item /src/teuthology_master/ become_user item with_items teuthology_users register bootstrap changed_when bootstrap.stdout_lines -1 |length 60 tags repos

AnsibleTask shell ./teuthology version args chdir /home/ item /src/teuthology_master/virtualenv/bin/ become_user item with_items teuthology_users changed_when False

AnsibleTask set_fact managed_admin_users for new_admin in extra_admin_users for lab_user in managed_users if new_admin.name lab_user.name new_admin.update lab_user endif endfor endfor managed_admin_users|list extra_admin_users|list when extra_admin_users is defined and extra_admin_users|length 0

AnsibleTask set_fact managed_users for lab_user in managed_users if not managed_admin_users|selectattr lab_user.name |list|length lab_user endif endfor when extra_admin_users is defined and extra_admin_users|length 0

AnsibleTask set_fact managed_users for user in managed_users if user.name in users user endif endfor when users|length 0

AnsibleTask set_fact managed_admin_users for user in managed_admin_users if user.name in users user endif endfor when users|length 0

AnsibleTask set_fact revoked_users for user in revoked_users if user in users user endif endfor when users|length 0 tags always

AnsibleTask set_fact pubkey_users managed_users|list managed_admin_users|list

AnsibleTask command virsh pool-uuid default register pool_uuid failed_when False

AnsibleTask command virsh pool-define-as name default dir target /var/lib/libvirt/images when pool_uuid is defined and pool_uuid failed

AnsibleTask command virsh -q pool-info default ignore_errors True register default_pool_info

AnsibleTask command virsh pool-start default when default_pool_info is defined and default_pool_info.stdout|search State *inactive

AnsibleTask command virsh pool-autostart default when default_pool_info is defined and default_pool_info.stdout search Autostart *no

AnsibleTask file path /srv/libvirtpool state directory owner libvirt-qemu group kvm recurse True when srv_libvirtpool.stat.exists

AnsibleTask command ls /srv/libvirtpool register ls_libvirtpool when srv_libvirtpool.stat.exists

AnsibleTask shell virsh pool-info item with_items ls_libvirtpool.stdout_lines register pool_info when srv_libvirtpool.stat.exists failed_when False

AnsibleTask set_fact pools_to_define set l for result in pool_info.results if result.rc 1 set dummy l.append result.item endif endfor l list

AnsibleTask shell virsh pool-define-as name item quote type dir target /srv/libvirtpool/ item virsh pool-autostart item quote virsh pool-build item quote virsh pool-start item quote with_items pools_to_define when pools_to_define|length 0

AnsibleTask command virsh net-info front failed_when False register front_net

AnsibleTask copy src ../files/libvirt-net-front.xml dest /tmp/libvirt-net-front.xml when front_net is defined and front_net failed

AnsibleTask command virsh net-define /tmp/libvirt-net-front.xml when front_net is defined and front_net failed

AnsibleTask file dest /tmp/libvirt-net-front.xml state absent when front_net is defined and front_net failed

AnsibleTask command virsh net-info front ignore_errors True register front_net

AnsibleTask command virsh net-start front when front_net is defined and front_net.stdout search Active *no

AnsibleTask command virsh net-autostart front when front_net is defined and front_net.stdout search Autostart *no

AnsibleTask copy src interfaces dest /etc/network/interfaces force True owner root group root mode,420 backup True register interface_install

AnsibleTask shell /sbin/ifdown -a /sbin/ifup -a when interface_install|changed

AnsibleTask copy src files/sshd_config dest /etc/ssh/sshd_config

AnsibleTask file dest=/GBS/ state=directory mode=0777 become True tags debug

AnsibleTask shell wget -r -nd -np cut-dirs=100 -R index.html* http //cdn.download.tizen.org/releases/2.4/2.4-base/latest/repos/standard/packages/noarch/ -P /GBS/

AnsibleTask shell wget -r -nd -np cut-dirs=100 -R index.html* http //cdn.download.tizen.org/releases/2.4/2.4-base/latest/repos/standard/packages/armv7l/ -P /GBS/

AnsibleTask shell wget -r -nd -np cut-dirs=100 -R index.html* http //cdn.download.tizen.org/releases/2.4/2.4-mobile/latest/repos/target-TM1/packages/noarch/ -P /GBS/

AnsibleTask shell wget -r -nd -np cut-dirs=100 -R index.html* http //cdn.download.tizen.org/releases/2.4/2.4-mobile/latest/repos/target-TM1/packages/armv7l/ -P /GBS/

AnsibleTask shell /opt/rh/rh-postgresql96/enable swiftbackmeup backup mode now when swiftbackmeup_modes is defined in rpmupdate.results|map tags dci-core

AnsibleTask file path /etc/ssl/repo state directory recurse True tags dci-core

AnsibleTask copy content repo_cacert dest repo_sslcacertfile tags dci-core

AnsibleTask copy content repo_cakey dest repo_sslcakeyfile tags dci-core

AnsibleTask template src settings.py.j2 dest /etc/dci-api/settings.py notify reload httpd tags dci-core

AnsibleTask template src item .sh.j2 dest /etc/ item .sh mode,256 with_items dci_admin dci_db tags dci-core

AnsibleTask shell /opt/rh/rh-postgresql96/enable /etc/dci_db.sh psql -w -c count FROM users register dbexist ignore_errors True tags dci-core

AnsibleTask shell /etc/dci_admin.sh dci-dbinit when dbexist is failed tags dci-core

AnsibleTask shell /etc/dci_admin.sh dci-dbsync when dbexist is success tags dci-core

AnsibleTask file path store_file_path default /var/lib/dci-control-server/files state directory owner apache group apache recurse True when store_engine tags dci-core

AnsibleTask template src dci_api.conf dest /etc/httpd/conf.d/dci_api.conf notify reload httpd tags dci-core

AnsibleTask file path repo_sslcacertfile dirname state directory recurse True

AnsibleTask copy content repo_servercert dest repo_sslcertificatefile when repo_servercert is defined

AnsibleTask copy content repo_serverkey dest repo_sslcertificatekeyfile when repo_serverkey is defined

AnsibleTask file path repo_rootdir state directory recurse True selevel s0 serole object_r setype httpd_sys_content_t seuser system_u

AnsibleTask template src dci_repo.conf.j2 dest /etc/opt/rh/rh-nginx112/nginx/conf.d/dci_repo.conf notify reload nginx

AnsibleTask template src config.json.j2 dest /etc/dci-ui/config.json notify reload httpd tags dci-core

AnsibleTask template src dci_ui.conf dest /etc/httpd/conf.d/dci_ui.conf notify reload httpd tags dci-core

AnsibleTask template src dci_worker.sh dest /etc/dci_worker.sh mode,493 notify restart dci-worker tags dci-core

AnsibleTask service name dci-worker state started enabled True tags dci-core

AnsibleTask template dest /etc/httpd/conf.d/03_docs.distributed-ci.io.conf src,03_docs.distributed-ci.io.conf notify reload httpd

AnsibleTask copy src,01-sshd.conf dest /etc/fail2ban/jail.d/01-sshd.conf notify restart fail2ban

AnsibleTask copy src,02-httpd.conf dest /etc/fail2ban/jail.d/02-httpd.conf when in group_names or in group_names notify restart fail2ban

AnsibleTask file path /etc/httpd/conf.d/ item state absent with_items welcome.conf userdir.conf tags dci-core

AnsibleTask file name /etc/httpd/ item .conf state absent with_items conf.modules.d/00-dav conf.modules.d/00-lua conf.modules.d/00-proxy conf.modules.d/01-cgi notify reload httpd tags dci-core

AnsibleTask copy src item dest /etc/httpd/conf.d/ item with_items security.conf notify reload httpd tags dci-core

AnsibleTask copy src ssl-sec.conf dest /etc/httpd/conf.d/ssl-sec.conf notify reload httpd when ssl_enabled|bool tags dci-core

AnsibleTask service name httpd state started enabled True tags dci-core

AnsibleTask template src nginx.conf.j2 dest /etc/opt/rh/rh-nginx112/nginx/nginx.conf notify reload nginx

AnsibleTask service name rh-nginx112-nginx state started enabled True

AnsibleTask file path /var/www/html/repos/ item 0 item 1 /x86_64 state directory with_nested supported_versions

AnsibleTask file path /var/www/html/repos/ item /el/7Server src /var/www/html/repos/ item /el/7 state link with_items current development extras

AnsibleTask template dest /etc/httpd/conf.d/02_packages.distributed-ci.io.conf src,02_packages.distributed-ci.io.conf notify reload httpd

AnsibleTask service name rh-postgresql96-postgresql state restarted

AnsibleTask shell /opt/rh/rh-postgresql96/enable postgresql-setup initdb debug tags dci-core when not new_pg_conf_file.stat.exists

AnsibleTask service name rh-postgresql96-postgresql state started enabled True tags dci-core

AnsibleTask service name docker-distribution enabled True state started

AnsibleTask template src docker_auth.yml.j2 dest /etc/docker_auth.yml

AnsibleTask template src config.yml.j2 dest /etc/docker-distribution/registry/config.yml notify restart distribution

AnsibleTask template src dci_registry.conf.j2 dest /etc/httpd/conf.d/dci_registry.conf notify reload httpd

AnsibleTask file path /var/www/cgi-bin/keystone state directory owner keystone group keystone mode,0755

AnsibleTask copy src /usr/bin/ item dest /var/www/cgi-bin/keystone/ item.replace wsgi- owner keystone group keystone mode,0644 remote_src True with_items keystone-wsgi-public

AnsibleTask template src item dest /etc/httpd/conf.d/ item with_items keystone_wsgi_main.conf

AnsibleTask template src keystone.conf dest /etc/keystone/keystone.conf owner root group keystone mode,0640

AnsibleTask file path /etc/keystone/ item -keys state directory owner keystone group keystone mode,0700 with_items credential fernet

AnsibleTask template src openrc dest /home/ ansible_user /openrc owner ansible_user group ansible_user

AnsibleTask shell keystone-manage fernet_setup keystone-user keystone keystone-group keystone

AnsibleTask shell keystone-manage credential_setup keystone-user keystone keystone-group keystone

AnsibleTask shell keystone-manage bootstrap bootstrap-password swift_ks_admin_token bootstrap-admin-url http // ansible_eth0.ipv4.address :5000/v3/ bootstrap-internal-url http // ansible_eth0.ipv4.address :5000/v3/ bootstrap-public-url http // ansible_host :5000/v3/ bootstrap-region-id regionOne

AnsibleTask shell source /home/ ansible_user /openrc openstack project create domain default description Service Project service openstack role create service openstack role create swiftoperator openstack role create user openstack user create project service password swift_service_password swift openstack role add project service user swift admin openstack role add project service user admin admin openstack service create name swift description OpenStack Object Storage object-store openstack endpoint create region regionOne object-store public http // ansible_eth0.ipv4.address :8080/v1/AUTH_ tenant_id\ s openstack endpoint create region regionOne object-store internal http // ansible_host :8080/v1/AUTH_ tenant_id\ s openstack endpoint create region regionOne object-store admin http // ansible_eth0.ipv4.address :8080/v1 openstack project create store_tenant_name openstack user create project store_tenant_name password store_password store_username openstack role add project store_tenant_name user store_username member openstack role add project store_tenant_name user store_username user openstack role add project store_tenant_name user store_username swiftoperator

AnsibleTask command dd if=/dev/zero of=/dev/ swift_volume_device bs=1M count=1024 when volume_type.stat.isblk is undefined

AnsibleTask file path /srv/node/ swift_volume_device state directory

AnsibleTask file path /srv/node state directory owner swift group swift seuser system_u serole object_r setype swift_data_t recurse True

AnsibleTask template src memcached dest /etc/sysconfig/memcached

AnsibleTask template src item .conf dest /etc/swift/ item .conf owner root group swift with_items account-server container-server object-server proxy-server swift

AnsibleTask file path /var/cache/swift state directory owner swift group swift mode,0700

AnsibleTask shell swift-ring-builder /etc/swift/object.builder create 10 1 1 swift-ring-builder /etc/swift/container.builder create 10 1 1 swift-ring-builder /etc/swift/account.builder create 10 1 1 swift-ring-builder /etc/swift/object.builder add r1z1- ansible_eth0.ipv4.address :6000/ swift_volume_device 1 swift-ring-builder /etc/swift/container.builder add r1z1- ansible_eth0.ipv4.address :6001/ swift_volume_device 1 swift-ring-builder /etc/swift/account.builder add r1z1- ansible_eth0.ipv4.address :6002/ swift_volume_device 1 swift-ring-builder /etc/swift/object.builder rebalance swift-ring-builder /etc/swift/container.builder rebalance swift-ring-builder /etc/swift/account.builder rebalance when swift_bootstrap|bool

AnsibleTask service name item state started enabled True with_items openstack-swift-proxy openstack-swift-account openstack-swift-account-auditor openstack-swift-account-reaper openstack-swift-account-replicator openstack-swift-container openstack-swift-container-auditor openstack-swift-container-replicator openstack-swift-container-updater openstack-swift-object openstack-swift-object-auditor openstack-swift-object-replicator openstack-swift-object-updater

AnsibleTask hosts mesos-masters become True gather_facts False tasks

AnsibleTask hosts mesos-agents become True gather_facts False tasks

AnsibleTask vars master_ips set_fact master_ips master_ips hostvars item .ansible_host with_items groups

AnsibleTask copy dest /etc/mesos-slave/hostname content ansible_host

AnsibleTask copy dest /etc/mesos/zk content zk // master_ips|join :2181/mesos

AnsibleTask copy dest /etc/mesos-slave/containerizers content docker mesos

AnsibleTask copy dest /etc/mesos-slave/executor_registration_timeout content,5mins

AnsibleTask copy dest /etc/mesos-slave/switch_user content false

AnsibleTask vars host_count,0 set_fact host_count master_ips length

AnsibleTask copy dest /etc/zookeeper/conf/myid content inventory_hostname last

AnsibleTask copy dest /etc/mesos-master/hostname content ansible_host

AnsibleTask copy dest /etc/mesos-master/quorum content host_count int 2 round int

AnsibleTask copy dest /etc/default/marathon content MARATHON_MASTER=zk // master_ips|join :2181/mesos MARATHON_ZK=zk // master_ips|join :2181/marathon

AnsibleTask command echo item.key loop query mydict|default when item.value 5

AnsibleTask copy dest /etc/docker/daemon.json content exec-opts native.cgroupdriver=cgroupfs

AnsibleTask become False copy src ~/.ssh/id_rsa dest ~/.ssh/id_rsa mode,384

AnsibleTask shell kubeadm reset force rm -rf /home/ubuntu/.kube rm -rf /root/.kube register reset_cluster

AnsibleTask when reset_cluster is successful shell kubeadm init apiserver-advertise-address= private_ip pod-network-cidr=10.244.0.0/16 register init_cluster

AnsibleTask file dest /home/ubuntu/.kube/ owner ubuntu group ubuntu state directory

AnsibleTask copy src /etc/kubernetes/admin.conf dest /root/.kube/config remote_src True

AnsibleTask copy src /etc/kubernetes/admin.conf dest /home/ubuntu/.kube/config owner ubuntu group ubuntu remote_src True

AnsibleTask when init_cluster is successful shell kubectl apply -f https //raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml

AnsibleTask shell kubeadm token create print-join-command register kubeadm_join

AnsibleTask become False copy src ../inventory-okd.ini dest ~/inventory.ini mode,384

AnsibleTask become False copy src ../ansible.cfg dest ~/ansible.cfg mode,384

AnsibleTask file path= home_dir.stdout /qtip_result state=absent

AnsibleTask file path= home_dir.stdout /qtip_result state=directory

AnsibleTask shell sudo yum install wget gcc libaio-devel -y when ansible_os_family RedHat

AnsibleTask shell sudo apt-get install wget gcc libaio-dev -y when ansible_os_family Debian

AnsibleTask shell cd HOME/fio/ wget http //freecode.com/urls/3aa21b8c106cab742bf1f20d60629e3f -O fio.tar.gz

AnsibleTask shell cd HOME/fio/fio-2.1.10 sudo ./configure sudo make

AnsibleTask copy src=./etc/fio_test_job dest= home_dir.stdout /fio/fio-2.1.10/

AnsibleTask shell cd HOME/fio/fio-2.1.10 sudo ./fio output-format=json output= HOME/qtip_result/fio_result.json fio_test_job

AnsibleTask copy src= workingdir /qtip/utils/transform/fio_transform.py dest= home_dir.stdout /qtip_result

AnsibleTask shell cd HOME/qtip_result sudo python fio_transform.py

AnsibleTask copy src= workingdir /qtip/utils/transform/final_report.py dest= home_dir.stdout /qtip_result

AnsibleTask shell cd HOME/qtip_result sudo python final_report.py FIO fname

AnsibleTask shell cd HOME/qtip_result/ find -maxdepth 1 -name *.json cut -f2 register files_to_copy

AnsibleTask shell cd HOME/qtip_result/ find -maxdepth 1 -name *.log cut -f2 register copy_log_results

AnsibleTask shell find Dest_dir /fio/fio_temp/ -name *.json xargs cp -t Dest_dir /fio/

AnsibleTask shell find Dest_dir /fio/fio_temp/ -name *.log xargs cp -t Dest_dir /fio/logs

AnsibleTask file path= Dest_dir /iperf/iperf_temp state=directory

AnsibleTask shell sudo yum install epel-release -y when ansible_os_family RedHat

AnsibleTask shell iptables -A INPUT -p tcp dport iperf_port -j ACCEPT vars iperf_port,5201 ignore_errors True when rolename 1-server and installertype

AnsibleTask shell sudo apt-get install iperf3 -y when ansible_os_family Debian

AnsibleTask shell sudo yum install iperf3 -y when ansible_os_family RedHat

AnsibleTask shell iperf3 -s async 400 poll 0 when rolename 1-server

AnsibleTask shell iperf3 time duration -b 0 G -c ip1 -J -O10 home_dir.stdout /qtip_result/iperf_raw.json ignore_errors True with_items ip1 when rolename 2-host and privateip1 NONE

AnsibleTask shell iperf3 time duration -b 0 G -c privateip1 -J -O10 home_dir.stdout /qtip_result/iperf_raw.json ignore_errors True with_items ip1 when rolename 2-host and privateip1 NONE

AnsibleTask copy src= workingdir /qtip/utils/transform/iperf_transform.py dest= home_dir.stdout /qtip_result

AnsibleTask shell cd HOME/qtip_result sudo python iperf_transform.py when rolename 2-host and ip2

AnsibleTask copy src= workingdir /qtip/utils/transform/final_report.py dest= home_dir.stdout /qtip_result when rolename 2-host and ip2

AnsibleTask shell cd HOME/qtip_result sudo python final_report.py IPERF fname when rolename 2-host and ip2

AnsibleTask shell cd HOME/qtip_result/ find -maxdepth 1 -name *.json cut -f2 register files_to_copy when rolename 2-host and ip2

AnsibleTask shell cd HOME/qtip_result/ find -maxdepth 1 -name *.log cut -f2 register copy_log_results when rolename 2-host and ip2

AnsibleTask shell find Dest_dir /iperf/iperf_temp/ -name *.json xargs cp -t Dest_dir /iperf/ when rolename 2-host

AnsibleTask shell find Dest_dir /iperf/iperf_temp/ -name *.log xargs cp -t Dest_dir /iperf/logs when rolename 2-host

AnsibleTask file path= Dest_dir /iperf/iperf_raw.json state=absent when rolename 2-host

AnsibleTask shell git config global http.proxy http_proxy when http_proxy is defined ignore_errors True

AnsibleTask shell git config global https.proxy https_proxy when https_proxy is defined ignore_errors True

AnsibleTask shell bwm-ng -o plain -c 1 bwm-dump.log args chdir dest_path

AnsibleTask become True shell apt-cache policy docker-engine when ansible_distribution Ubuntu and ansible_distribution_version== 16.04

AnsibleTask become True template src= item .conf.j2 dest=/etc/nginx/sites-enabled/ item .conf with_items elk qtip testapi notify restart nginx

AnsibleTask become True file src sudoers.d-qtip dest /etc/sudoers.d/50-qtip mode,288

AnsibleTask become True file path /home/ item.name /.ssh state directory owner item.name group item.name mode,448 with_items users

AnsibleTask become True copy src item.name .authorized_keys dest /home/ item.name /.ssh/authorized_keys owner item.name group item.name mode,384 with_items users

AnsibleTask set_fact item lookup item section=client default= file= output /ceph.conf with_items rbd_cache rbd_cache_max_dirty rdb_cache_size delegate_to localhost ignore_errors True register result

AnsibleTask copy content item item.stdout dest logfile when result|succeeded delegate_to localhost with_items rbd_cache rbd_cache_max_dirty rdb_cache_size

AnsibleTask become True command ceph-disk list register ceph_disk_out

AnsibleTask copy content ceph_disk_out.stdout dest logfile delegate_to localhost

AnsibleTask become True shell lsblk -d -o name rota |awk if 2 0 printf s SSD \n 1 register ceph_journal_out

AnsibleTask become True command ceph report register ceph_report_out

AnsibleTask copy content ceph_report_out.stdout dest output /ceph_report.json delegate_to localhost

AnsibleTask shell netstat -nr |grep U awk printf interface s network s mask s \n 8 1 3 register ceph_network_out

AnsibleTask copy content ceph_network_out.stdout dest logfile delegate_to localhost

AnsibleTask set_fact item lookup item section=global default= file= output /ceph.conf with_items cluster_network delegate_to localhost

AnsibleTask copy content inxi_out.stdout dest logfile delegate_to localhost

AnsibleTask template src system-info.j2 dest output /report delegate_to localhost tags report

AnsibleTask command tar zxf nDPI-1.6.tar.gz args chdir workdir creates nDPI-1.6

AnsibleTask command item with_items ./autogen.sh ./configure make args chdir workdir /nDPI-1.6 creates example/ndpiReader

AnsibleTask command ./ndpiReader -i sample_pcap args chdir workdir /nDPI-1.6/example/ register ndpi_out

AnsibleTask copy content ndpi_out.stdout dest logfile delegate_to localhost

AnsibleTask template src dpi-metrics.j2 dest output /dpi-metrics delegate_to localhost

AnsibleTask command openssl speed -evp aes-128-cbc register openssl_aes_out

AnsibleTask set_fact rsa_logfile output /openssl-rsa.log aes_logfile output /openssl-aes.log tags always

AnsibleTask copy content openssl_rsa_out.stdout dest rsa_logfile delegate_to localhost

AnsibleTask copy content openssl_aes_out.stdout dest aes_logfile delegate_to localhost

AnsibleTask template src ssl-metrics.j2 dest output /ssl-metrics delegate_to localhost tags report

AnsibleTask template src qtip_resources /template/qpi.html.j2 dest qtip_results /current/index.html

AnsibleTask shell source ansible_env.HOME /stackrc openstack baremetal list fields instance_uuid properties provision_state format json register baremetal_info

AnsibleTask shell source ansible_env.HOME /stackrc openstack server list format json register server_info

AnsibleTask template src=templates/hosts dest=./hosts delegate_to localhost

AnsibleTask template src=templates/ssh.cfg dest=./ssh.cfg delegate_to localhost

AnsibleTask shell echo SSH_AUTH_SOCK register sock_status ignore_errors True

AnsibleTask shell pidof ssh-agent register pid_status ignore_errors True

AnsibleTask file state link src pod_results dest qtip_results /current

AnsibleTask file path item state directory with_items qtip_cache

AnsibleTask set_fact qtip_results qtip_results /current/ inventory_hostname tags always

AnsibleTask file path qtip_results state directory delegate_to localhost

AnsibleTask file state directory path output delegate_to localhost

AnsibleTask file path cwd project_name item.path state directory force True with_filetree project_template when item.state

AnsibleTask template src item.src dest cwd project_name item.path force True with_filetree project_template when item.state

AnsibleTask command tar zxf ramsmp-3.5.0.tar.gz args chdir workdir creates ramsmp-3.5.0

AnsibleTask command ./build.sh args chdir workdir /ramsmp-3.5.0 creates ramsmp

AnsibleTask command ./ramsmp -b 3 -l 5 -p 1 args chdir workdir /ramsmp-3.5.0 register ramsmp_int_out

AnsibleTask command ./ramsmp -b 6 -l 5 -p 1 args chdir workdir /ramsmp-3.5.0 register ramsmp_float_out

AnsibleTask set_fact int_logfile output /ramsmp-int.log float_logfile output /ramsmp-float.log tags always

AnsibleTask copy content ramsmp_int_out.stdout dest int_logfile delegate_to localhost

AnsibleTask copy content ramsmp_float_out.stdout dest float_logfile delegate_to localhost

AnsibleTask template src memory-metrics.j2 dest output /report delegate_to localhost

AnsibleTask command tar zxf byte-unixbench-5.1.3.tar.gz args chdir workdir creates byte-unixbench-5.1.3

AnsibleTask command make args chdir workdir /byte-unixbench-5.1.3/UnixBench creates Run

AnsibleTask shell ./Run -i iterations -c parallel_copies dhrystone whetstone args chdir workdir /byte-unixbench-5.1.3/UnixBench register unixbench_out

AnsibleTask copy content unixbench_out.stdout dest logfile delegate_to localhost

AnsibleTask template src arithmetic-metrics.j2 dest output /report delegate_to localhost

AnsibleTask hosts localhost connection local gather_facts False become False vars_files ANSIBLE_REPO_PATH /configs/ env_type /env_vars.yml ANSIBLE_REPO_PATH /configs/ env_type /env_secret_vars.yml tasks cloud_provider is defined region for AWS aws_access_key_id aws_secret_access_key cloudformation describe-stacks stack-name project_tag region item aws_region fallback_regions|d True item._ansible_item_label cloudformation_detect.results item._ansible_item_label|d false

AnsibleTask fail msg you need azure-cli installed when az_result is failed

AnsibleTask template src ANSIBLE_REPO_PATH /configs/ env_type /files/cloud_providers/ cloud_provider _cloud_template.j2 dest t_dest tags azure_infrastructure_deployment validate_azure_template gen_azure_template

AnsibleTask command az login service-principal -u azure_service_principal -p azure_password tenant azure_tenant tags validate_azure_template create_inventory must

AnsibleTask tags azure_infrastructure_deployment validate_azure_template command az group create name az_resource_group location azure_region

AnsibleTask set_fact ssh_key ~/.ssh/ key_name .pem ssh_key_data lookup key_name .pub tags validate_azure_template must create_inventory

AnsibleTask copy content adminUsername value remote_user sshKeyData value ssh_key_data DNSZone value HostedZoneId guid value guid dest params_dest tags azure_infrastructure_deployment validate_azure_template

AnsibleTask command az group deployment validate template-file t_dest resource-group az_resource_group parameters params_dest changed_when False tags azure_infrastructure_deployment validate_azure_template

AnsibleTask command az group deployment create name env_type guid template-file t_dest resource-group az_resource_group parameters params_dest register az_deploy tags azure_infrastructure_deployment until az_deploy|succeeded retries 5

AnsibleTask command az vm list resource-group az_resource_group show-details changed_when False register result_list tags create_inventory must

AnsibleTask set_fact vm_list result_list.stdout from_json tags create_inventory must

AnsibleTask become False environment AZURE_CLIENT_ID azure_service_principal AZURE_TENANT azure_tenant AZURE_SECRET azure_password AZURE_SUBSCRIPTION_ID azure_subscription_id AZURE_CONFIG_DIR /tmp/.azure- project_tag command az vm restart resource-group az_resource_group name inventory_hostname delegate_to localhost when rwait is failed

AnsibleTask command domainname -d register internalfqdn_r changed_when False

AnsibleTask command nmcli get-values UUID connection show active register result_active_uuid changed_when False

AnsibleTask set_fact internal_azure_dns_suffix internalfqdn_r.stdout nm_active_connection result_active_uuid.stdout

AnsibleTask set_fact ansible_become False ansible_connection winrm ansible_host public_dns_name ansible_password windows_password default hostvars .generated_windows_password ansible_port,5986 ansible_user Administrator ansible_ssh_user Administrator ansible_winrm_server_cert_validation ignore

AnsibleTask set_fact bastion_hostname groups .0 ansible_ssh_config ANSIBLE_REPO_PATH /workdir/ env_type _ guid _ssh_conf ansible_known_host ANSIBLE_REPO_PATH /workdir/ env_type _ guid _ssh_known_hosts

AnsibleTask set_fact ansible_ssh_extra_args ansible_ssh_extra_args|d -F hostvars .ansible_ssh_config

AnsibleTask fail msg FAIL project_tag Destroy Cloudformation when not cloudformation_result|succeeded cloud_provider tags destroying destroy_cf_deployment destroy_cloud_deployment

AnsibleTask fail msg FAIL project_tag Create Cloudformation when not cloudformation_out is succeeded tags provision_cf_template

AnsibleTask tags create_inventory set_fact aws_region_final hostvars .aws_region_final ansible_ssh_extra_args ansible_ssh_extra_args|d -F ANSIBLE_REPO_PATH /workdir/ env_type _ guid _ssh_conf

AnsibleTask tags create_inventory set_fact ansible_become False ansible_connection winrm ansible_host public_dns_name ansible_password windows_password default hostvars .generated_windows_password ansible_port,5986 ansible_user Administrator ansible_ssh_user Administrator ansible_winrm_server_cert_validation ignore aws_region_final hostvars .aws_region_final

AnsibleTask template src ANSIBLE_REPO_PATH /configs/ env_type /files/cloud_providers/ cloud_provider _cloud_template.j2 dest ANSIBLE_REPO_PATH /workdir/ cloud_provider _cloud_template env_type guid .template tags ravello_infrastructure_deployment gen_rav_template

AnsibleTask debug var item verbosity,1 with_items blueprint_name blueprint_description

AnsibleTask debug var item verbosity,1 with_items application_name application_description design_results.blueprint_id wait_timeout

AnsibleTask shell ANSIBLE_REPO_PATH /inventory/ cloud_provider .py list app_results.app_name when not tower_run register task_result until task_result.rc 0 retries 5 delay 30 ignore_errors True tags refresh_inventory refresh_inventory_script

AnsibleTask set_fact ravello_groups task_result.stdout from_json

AnsibleTask set_fact bastion_hostname ravello_groups json_query ravello_groups json_query bastion-REPL.rhpds.opentlc.com .externalFqdn\

AnsibleTask copy content /bin/bash ssh -i ANSIBLE_REPO_PATH /workdir/ guid key cloud-user bastion_hostname.external dest ANSIBLE_REPO_PATH /workdir/ guid -quickssh.sh mode,493

AnsibleTask file dest ANSIBLE_REPO_PATH /workdir/ env_type _ guid _ssh_conf state touch

AnsibleTask shell cd ANSIBLE_REPO_PATH /workdir terraform init terraform destroy -force tags destroying destroy_terraform_deployment destroy_cloud_deployment register terraform_result until terraform_result|succeeded retries 5 delay 60 ignore_errors True when cloud_provider

AnsibleTask fail msg FAIL project_tag Destroy Terraform when not terraform_result|succeeded cloud_provider tags destroying destroy_terraform_deployment destroy_cloud_deployment

AnsibleTask command terraform version register terraform_check tags step001

AnsibleTask fail msg You need to install Terraform when terraform_check.stdout.find not installed -1 tags step001

AnsibleTask template dest ANSIBLE_REPO_PATH /workdir/ env_type guid cloud_provider .tf src ANSIBLE_REPO_PATH /configs/ env_type /files/cloud_providers/ cloud_provider _cloud_template.tf.j2 tags step001

AnsibleTask template dest ANSIBLE_REPO_PATH /workdir/terraform.tfvars src ANSIBLE_REPO_PATH /configs/ env_type /files/cloud_providers/ cloud_provider _cloud_template.tfvars.j2 tags step001

AnsibleTask shell cd ANSIBLE_REPO_PATH /workdir terraform init terraform apply chdir= ANSIBLE_REPO_PATH /workdir -auto-approve tags step001

AnsibleTask set_fact project_tag_ostype project_tag _ostype tags create_inventory must

AnsibleTask template dest terraform_working_dir workshop_prefix /aws.tf src ANSIBLE_REPO_PATH /configs/ env_type /files/cloud_providers/aws.tf.j2 tags step001

AnsibleTask template dest terraform_working_dir workshop_prefix /terraform.tfvars src ANSIBLE_REPO_PATH /configs/ env_type /files/cloud_providers/terraform.tfvars.j2 tags step001

AnsibleTask command terraform apply chdir= terraform_working_dir workshop_prefix tags step001

AnsibleTask shell ssh-keygen -b 2048 -t rsa -f ANSIBLE_REPO_PATH /workdir/ env_authorized_key -q -N args creates ANSIBLE_REPO_PATH /workdir/ env_authorized_key when set_env_authorized_key

AnsibleTask set_fact env_public_key lookup ANSIBLE_REPO_PATH /workdir/ env_authorized_key .pub regex_replace my_login_domain

AnsibleTask fail msg FAIL project_tag Destroy Cloudformation when not cloudformation_result|succeeded tags destroying destroy_cf_deployment

AnsibleTask hosts support gather_facts False become True vars_files ANSIBLE_REPO_PATH /configs/ env_type /env_vars.yml tasks tasks Started

AnsibleTask service name sssd state restarted when install_ipa_client

AnsibleTask hosts localhost connection local gather_facts False become False vars_files ANSIBLE_REPO_PATH /configs/ env_type /env_vars.yml ANSIBLE_REPO_PATH /configs/ env_type /env_secret_vars.yml tags post_flight_check tasks checks completed successfully

AnsibleTask hosts all windows network become True gather_facts False vars_files ANSIBLE_REPO_PATH /configs/ env_type /env_vars.yml ANSIBLE_REPO_PATH /configs/ env_type /env_secret_vars.yml tags step004 common_tasks roles ANSIBLE_REPO_PATH /roles/set-repositories is defined ANSIBLE_REPO_PATH /roles/common ANSIBLE_REPO_PATH /roles/set_env_authorized_key

AnsibleTask hosts localhost connection local gather_facts False become False vars_files ANSIBLE_REPO_PATH /configs/ env_type /env_vars.yml ANSIBLE_REPO_PATH /configs/ env_type /env_secret_vars.yml tags flight_check tasks checks completed successfully

AnsibleTask hosts localhost gather_facts False become False tasks tasks Started

AnsibleTask hosts localhost connection local gather_facts False become False tags post_flight_check tasks checks completed successfully

AnsibleTask copy src ~/secrets/ans-tower-lab_license.txt dest /root/license.txt

AnsibleTask copy src ~/secrets/ans-tower-lab_openstack.pem dest /root/.ssh/openstack.pem owner root group root mode,256

AnsibleTask copy src ~/secrets/ans-tower-lab_openstack.pub dest /root/.ssh/openstack.pub owner root group root mode,256

AnsibleTask copy content windows_password default generated_windows_password dest ANSIBLE_REPO_PATH /workdir/ env_type _ guid _windows_password.txt mode,384

AnsibleTask hosts all windows become True gather_facts False vars_files ANSIBLE_REPO_PATH /configs/ env_type /env_vars.yml ANSIBLE_REPO_PATH /configs/ env_type /env_secret_vars.yml tags step004 common_tasks roles ANSIBLE_REPO_PATH /roles/set-repositories is defined ANSIBLE_REPO_PATH /roles/common ANSIBLE_REPO_PATH /roles/set_env_authorized_key

AnsibleTask hosts windows gather_facts False vars_files ANSIBLE_REPO_PATH /configs/ env_type /env_vars.yml ANSIBLE_REPO_PATH /configs/ env_type /env_secret_vars.yml tags step004 common_tasks windows_tasks roles ANSIBLE_REPO_PATH /roles/windows-common

AnsibleTask hosts bastions 0 become True gather_facts False vars_files ANSIBLE_REPO_PATH /configs/ env_type /env_vars.yml ANSIBLE_REPO_PATH /configs/ env_type /env_secret_vars.yml tags install_ci_components roles ANSIBLE_REPO_PATH /roles/host-gogs-server ANSIBLE_REPO_PATH /roles/host-jenkins-server

AnsibleTask file path ANSIBLE_REPO_PATH /workdir/ env_authorized_key mode,256 when set_env_authorized_key

AnsibleTask shell ssh-keygen -y -f ANSIBLE_REPO_PATH /workdir/ env_authorized_key ANSIBLE_REPO_PATH /workdir/ env_authorized_key .pub args creates ANSIBLE_REPO_PATH /workdir/ env_authorized_key .pub when set_env_authorized_key

AnsibleTask copy src ~/.ssh/ item.private_key .pem dest item.home /.ssh/ item.private_key .pem mode,256 owner item.name when item.private_key is defined with_items mgr_users no_log True

AnsibleTask file path item.home /.aws owner item.name group item.name mode,448 state directory when item.aws_access_key_id is defined with_items mgr_users no_log True

AnsibleTask copy dest item.home /.aws/credentials owner item.name group item.name content default aws_access_key_id item.aws_access_key_id aws_secret_access_key item.aws_secret_access_key when item.aws_access_key_id is defined item.aws_secret_access_key is defined with_items mgr_users no_log True

AnsibleTask copy src ANSIBLE_REPO_PATH /inventory/boto.cfg dest /etc/boto.cfg

AnsibleTask copy src ANSIBLE_REPO_PATH /configs/ env_type /files/Sync_Repositories.sh dest /root/

AnsibleTask command vgchange -ay when srv_snapshot_id is defined

AnsibleTask command openssl req -x509 -nodes -days 3650 -newkey rsa:2048 -keyout httpd_ssl_key -out httpd_ssl_cert -subj provisioner_public_dns /O=Red Hat/C=US args creates /etc/pki/tls/certs/admin.pem tags httpd

AnsibleTask template src files/repos.conf.j2 dest /etc/httpd/conf.d/repos.conf tags httpd

AnsibleTask service name httpd enabled True state started tags httpd

AnsibleTask hosts provisioners gather_facts True become True vars_files ANSIBLE_REPO_PATH /configs/ env_type /env_vars.yml ANSIBLE_REPO_PATH /configs/ env_type /env_secret_vars.yml roles ANSIBLE_REPO_PATH /roles/zabbix-client tags env-specific install_zabbix

AnsibleTask hosts localhost connection local gather_facts False become False vars_files ./env_vars.yml ./env_secret_vars.yml tasks workshop_prefix

AnsibleTask hosts workshop_prefix remote_user ec2-user gather_facts False become True vars_files ANSIBLE_REPO_PATH /configs/ env_type /env_vars.yml ANSIBLE_REPO_PATH /configs/ env_type /env_secret_vars.yml roles ANSIBLE_REPO_PATH /roles/unregister

AnsibleTask file path terraform_working_dir workshop_prefix state directory tags pre_infra_tasks

AnsibleTask copy content ec2_key.key.private_key dest terraform_working_dir workshop_prefix workshop_prefix -tower mode,256 tags pre_infra_tasks

AnsibleTask hosts workshop_prefix gather_facts True become True vars_files ANSIBLE_REPO_PATH /configs/ env_type /env_vars.yml ANSIBLE_REPO_PATH /configs/ env_type /env_secret_vars.yml roles ANSIBLE_REPO_PATH /roles/subscription_manager ANSIBLE_REPO_PATH /roles/epel ANSIBLE_REPO_PATH /roles/nodejs ANSIBLE_REPO_PATH /roles/wetty ANSIBLE_REPO_PATH /roles/ansible.tower ANSIBLE_REPO_PATH /roles/zsh

AnsibleTask template src ANSIBLE_REPO_PATH /configs/ env_type /files/labs_hosts_template.j2 dest ANSIBLE_REPO_PATH /workdir/labs_hosts- env_type guid

AnsibleTask copy backup True src ANSIBLE_REPO_PATH /workdir/labs_hosts- env_type guid dest /etc/ansible/hosts tags overwrite_hosts_with_lab_hosts

AnsibleTask shell /usr/sbin/ipa-client-install domain=OPENTLC.COM -w ipa_host_password -N -U mkhomedir no-dns-sshfp hostname= bastion_public_dns_chomped

AnsibleTask shell /usr/sbin/ipa-client-install domain=OPENTLC.COM -w ipa_host_password -N -U mkhomedir no-dns-sshfp hostname= bastion_public_dns_chomped when install_ipa_client

AnsibleTask fail msg FAIL project_tag delete s3 when not s3_result|succeeded cloud_provider

AnsibleTask fail msg FAIL project_tag Destroy Cloudformation when not cloudformation_result|succeeded cloud_provider tags destroying destroy_cf_deployment

AnsibleTask shell oc login master subdomain_base -u admin_user -p admin_user_password insecure-skip-tls-verify=true register health_authenticate_to_master

AnsibleTask shell oc new-app https //github.com/StefanoPicozzi/cotd.git -n envtests register health_cotd_new-app ignore_errors True

AnsibleTask fail None when not in health_cotd_curl_output.content

AnsibleTask set_fact s3user cloudformation_out.stack_outputs.S3User s3user_access_key cloudformation_out.stack_outputs.S3UserAccessKey s3user_secret_access_key cloudformation_out.stack_outputs.S3UserSecretAccessKey when cloudformation_out is defined cloudformation_out.stack_outputs.S3UserAccessKey is defined cloudformation_out.stack_outputs.S3UserSecretAccessKey is defined tags provision_cf_template

AnsibleTask copy dest ANSIBLE_REPO_PATH /workdir/ env_type guid .s3user.credentials content S3 Bucket for registry s3user ** S3User access key s3user_access_key ** S3User secret key s3user_secret_access_key when s3user_access_key is defined

AnsibleTask set_fact route53user cloudformation_out.stack_outputs.Route53User route53user_access_key cloudformation_out.stack_outputs.Route53UserAccessKey route53user_secret_access_key cloudformation_out.stack_outputs.Route53UserSecretAccessKey when cloudformation_out is defined cloudformation_out.stack_outputs.Route53UserAccessKey is defined cloudformation_out.stack_outputs.Route53UserSecretAccessKey is defined tags provision_cf_template

AnsibleTask copy dest ANSIBLE_REPO_PATH /workdir/ env_type guid .route53user.credentials content Route53 User for Let Encrypt route53user ** Route53User access key route53user_access_key ** Route53User secret key route53user_secret_access_key when route53user_access_key is defined

AnsibleTask changed_when False vars query name .volumes .lun| 0 0 shell parted -m /dev/sda print all 2 /dev/null grep unknown grep /dev/sd cut -d -f1 sed -n instances|json_query query |int 1 p register result when cloud_provider instances is defined install_glusterfs bool not rfile.stat.exists

AnsibleTask set_fact docker_device result.stdout when cloud_provider result succeeded install_glusterfs bool not rfile.stat.exists

AnsibleTask copy dest /var/preserve/docker_device content docker_device force False when cloud_provider result succeeded install_glusterfs bool not rfile.stat.exists

AnsibleTask set_fact docker_device slurp_result.content|b64decode when cloud_provider result succeeded install_glusterfs bool rfile.stat.exists

AnsibleTask changed_when False vars query name .volumes .lun| 0 0 shell parted -m /dev/sda print all 2 /dev/null grep unknown grep /dev/sd cut -d -f1 sed -n instances|json_query query |int 1 p register result when install_glusterfs bool cloud_provider instances is defined not rfile.stat.exists

AnsibleTask set_fact glusterfs_device_name result.stdout when install_glusterfs bool cloud_provider result succeeded not rfile.stat.exists

AnsibleTask copy dest /var/preserve/glusterfs_device_name content glusterfs_device_name force False when install_glusterfs bool cloud_provider result succeeded not rfile.stat.exists

AnsibleTask set_fact glusterfs_device_name slurp_result.content|b64decode when cloud_provider result succeeded install_glusterfs bool rfile.stat.exists

AnsibleTask changed_when False vars query name .volumes .lun| 0 0 shell parted -m /dev/sda print all 2 /dev/null grep unknown grep /dev/sd cut -d -f1 sed -n instances|json_query query |int 1 p register result when install_nfs bool cloud_provider instances is defined not rfile.stat.exists

AnsibleTask set_fact nfs_pvs result.stdout when install_nfs bool cloud_provider result succeeded not rfile.stat.exists

AnsibleTask copy dest /var/preserve/nfs_pvs content nfs_pvs force False when install_nfs bool cloud_provider result succeeded not rfile.stat.exists

AnsibleTask set_fact nfs_pvs slurp_result.content|b64decode when cloud_provider result succeeded install_nfs bool rfile.stat.exists

AnsibleTask changed_when False vars query name .volumes .lun| 0 0 shell parted -m /dev/sda print all 2 /dev/null grep unknown grep /dev/sd cut -d -f1 sed -n instances|json_query query |int 1 p register result when cloud_provider instances is defined not rfile.stat.exists

AnsibleTask set_fact docker_device result.stdout when cloud_provider result succeeded not rfile.stat.exists

AnsibleTask copy dest /var/preserve/docker_device content docker_device force False when cloud_provider result succeeded not rfile.stat.exists

AnsibleTask set_fact docker_device slurp_result.content|b64decode when cloud_provider result succeeded rfile.stat.exists

AnsibleTask template src ANSIBLE_REPO_PATH /configs/ env_type /files/pvs.j2 dest /root/pvs- env_type guid .yml tags gen_pv_file when pv_list.0 is defined

AnsibleTask template src ANSIBLE_REPO_PATH /configs/ env_type /files/userpvs.j2 dest /root/userpvs- env_type guid .yml tags gen_user_vol_pv

AnsibleTask hosts masters run_once True become True gather_facts False vars_files ANSIBLE_REPO_PATH /configs/ env_type /env_vars.yml tags env-specific env-specific_infra storage-class tasks osrelease is version_compare 3.9.27 glusterfs-storage class to default patch storageclass glusterfs-storage -p metadata annotations storageclass.kubernetes.io/is-default-class true glusterfs-storage not patched\ -1 0 glusterfs-storage patched\ -1 default from glusterfs-storage-block class glusterfs-storage-block patched\ -1 glusterfs-storage-block not patched\ -1 0 patch storageclass glusterfs-storage-block -p metadata annotations storageclass.kubernetes.io/is-default-class false

AnsibleTask command cp -rf /root/.kube /home/opentlc-mgr/ when install_opentlc_integration true

AnsibleTask when install_opentlc_integration true file path /home/opentlc-mgr/.kube owner opentlc-mgr group opentlc-mgr recurse True

AnsibleTask shell oc set env dc/router ROUTER_ALLOW_WILDCARD_ROUTES=true -n default

AnsibleTask command oc adm policy add-cluster-role-to-user cluster-admin admin_user

AnsibleTask command oc get project admin_project register result changed_when False ignore_errors True

AnsibleTask command oc adm new-project admin_project admin admin_user when result failed

AnsibleTask command oc adm pod-network make-projects-global admin_project when ovs_plugin multitenant

AnsibleTask command oc adm policy add-scc-to-group anyuid system serviceaccounts admin_project

AnsibleTask command oc patch scc/anyuid patch requiredDropCapabilities MKNOD SYS_CHROOT ignore_errors True

AnsibleTask shell oc annotate namespace openshift-template-service-broker openshift.io/node-selector= overwrite ignore_errors True when osrelease is version_compare 3.7

AnsibleTask hosts masters run_once True become True gather_facts False vars_files ANSIBLE_REPO_PATH /configs/ env_type /env_vars.yml tags env-specific remove_self_provisioners tasks clusterRoleBinding auto-update to false annotate -n default overwrite clusterrolebinding.rbac self-provisioners rbac.authorization.kubernetes.io/autoupdate=false system authenticated from self-provisioner role policy remove-cluster-role-from-group self-provisioner system authenticated system authenticated oauth True our own OPENTLC-PROJECT-PROVISIONERS groups new OPENTLC-PROJECT-PROVISIONERS True OPENTLC-PROJECT-PROVISIONERS members to provision their own projects policy add-cluster-role-to-group self-provisioner OPENTLC-PROJECT-PROVISIONERS

AnsibleTask copy src ./files/project-template.yml dest /root/project-template.yml

AnsibleTask command oc get template project-request -n default register request_template ignore_errors True

AnsibleTask shell oc create -f /root/project-template.yml -n default || oc replace -f /root/project-template.yml -n default when request_template failed

AnsibleTask service name atomic-openshift-master-api state restarted when master_config.changed osrelease version_compare 3.7

AnsibleTask service name atomic-openshift-master state restarted when master_config.changed osrelease version_compare 3.7

AnsibleTask command docker pull item with_items env_specific_images when env_specific_images.0 is defined

AnsibleTask command oc tag source=docker registry.access.redhat.com/openshift3/jenkins-2-rhel7 v repo_version openshift/jenkins v repo_version -n openshift when osrelease version_compare 3.7 ignore_errors True

AnsibleTask command oc tag openshift/jenkins v repo_version openshift/jenkins latest -n openshift register octag_result when osrelease version_compare 3.7 retries 5 delay 2 until octag_result|succeeded ignore_errors True

AnsibleTask command docker pull registry.access.redhat.com/openshift3/ose-recycler latest register pullr retries 5 delay 10 until pullr|succeeded when osrelease version_compare 3.7

AnsibleTask command docker tag registry.access.redhat.com/openshift3/ose-recycler latest registry.access.redhat.com/openshift3/ose-recycler v osrelease when osrelease version_compare 3.7

AnsibleTask shell oc patch daemonset dockergc patch= spec template spec containers command /usr/bin/oc name dockergc -n default ignore_errors True when osrelease version_compare 3.9.0 osrelease version_compare 3.9.25 container_runtime cri-o

AnsibleTask shell oc delete pod oc get pods -n default|grep dockergc|awk -c print 1 -n default when osrelease version_compare 3.9.0 osrelease version_compare 3.9.25 container_runtime cri-o

AnsibleTask hosts masters run_once True gather_facts False become True vars_files ANSIBLE_REPO_PATH /configs/ env_type /env_vars.yml tags env-specific install_openwhisk tasks ANSIBLE_REPO_PATH /roles/install-openwhisk

AnsibleTask gather_facts False become True hosts nodes infranodes masters bastions vars_files ANSIBLE_REPO_PATH /configs/ env_type /env_vars.yml ANSIBLE_REPO_PATH /configs/ env_type /env_secret_vars.yml tags install_prometheus tasks ANSIBLE_REPO_PATH /roles/install-prometheus

AnsibleTask hosts masters run_once True gather_facts False become True vars_files ANSIBLE_REPO_PATH /configs/ env_type /env_vars.yml roles ANSIBLE_REPO_PATH /roles/install-nexus admin_project 3 tags env-specific install_nexus

AnsibleTask hosts masters run_once True gather_facts False become True vars_files ANSIBLE_REPO_PATH /configs/ env_type /env_vars.yml tags env-specific install_aws_broker tasks ANSIBLE_REPO_PATH /roles/install-aws-broker

AnsibleTask hosts masters gather_facts True become True vars_files ANSIBLE_REPO_PATH /configs/ env_type /env_vars.yml ANSIBLE_REPO_PATH /configs/ env_type /env_secret_vars.yml vars zabbix_auto_registration_keyword OCP Master roles ANSIBLE_REPO_PATH /roles/zabbix-client ANSIBLE_REPO_PATH /roles/zabbix-client-openshift-master ANSIBLE_REPO_PATH /roles/zabbix-client-openshift-node tags env-specific install_zabbix

AnsibleTask hosts nodes infranodes gather_facts True become True vars_files ANSIBLE_REPO_PATH /configs/ env_type /env_vars.yml ANSIBLE_REPO_PATH /configs/ env_type /env_secret_vars.yml vars zabbix_auto_registration_keyword OCP Node zabbix_token hostvars groups 0 .zabbix_token hawkular_route hostvars groups 0 .hawkular_route roles ANSIBLE_REPO_PATH /roles/zabbix-client ANSIBLE_REPO_PATH /roles/zabbix-client-openshift-node tags env-specific install_zabbix

AnsibleTask hosts bastions support gather_facts True become True vars_files ANSIBLE_REPO_PATH /configs/ env_type /env_vars.yml ANSIBLE_REPO_PATH /configs/ env_type /env_secret_vars.yml vars zabbix_auto_registration_keyword OCP Host roles ANSIBLE_REPO_PATH /roles/zabbix-client tags env-specific install_zabbix

AnsibleTask hosts masters become True gather_facts False run_once True vars_files ANSIBLE_REPO_PATH /configs/ env_type /env_vars.yml ANSIBLE_REPO_PATH /configs/ env_type /env_secret_vars.yml tasks osrelease is version_compare 3.9 true bool oc adm diagnostics adm diagnostics /tmp/diagnostics.log 2 is succeeded True /tmp/openshift exist an archive of diagnostics output logs the diagnostic archive and logs ANSIBLE_REPO_PATH /workdir/ project_tag _diagnostics.tar.gz True diagnostics failure project_tag Diagnostics is failed

AnsibleTask hosts bastions become True gather_facts False run_once True vars_files ANSIBLE_REPO_PATH /configs/ env_type /env_vars.yml ANSIBLE_REPO_PATH /configs/ env_type /env_secret_vars.yml tasks ANSIBLE_REPO_PATH /roles/bastion-opentlc-ipa

AnsibleTask hosts all vars_files ANSIBLE_REPO_PATH /configs/ env_type /env_vars.yml ANSIBLE_REPO_PATH /configs/ env_type /env_secret_vars.yml gather_facts True tags ocp_report

AnsibleTask command git rev-parse HEAD args chdir ANSIBLE_REPO_PATH register ansible_agnostic_deployer_head

AnsibleTask template src ANSIBLE_REPO_PATH /configs/ env_type /files/ocp_report.adoc.j2 dest ANSIBLE_REPO_PATH /workdir/ocp_report_ env_type guid .adoc when ocp_report cloud_provider

AnsibleTask hosts all windows become True gather_facts False vars_files ANSIBLE_REPO_PATH /configs/ env_type /env_vars.yml ANSIBLE_REPO_PATH /configs/ env_type /env_secret_vars.yml tags step004 common_tasks pre_tasks rhel-7-server-ansible-2.4-rpms repo for OCP 3.9 rhel_repos osrelease version_compare 3.9 roles ANSIBLE_REPO_PATH /roles/set-repositories is defined ANSIBLE_REPO_PATH /roles/common ANSIBLE_REPO_PATH /roles/set_env_authorized_key

AnsibleTask hosts bastions run_once True become True gather_facts False vars_files ANSIBLE_REPO_PATH /configs/ env_type /env_vars.yml ANSIBLE_REPO_PATH /configs/ env_type /env_secret_vars.yml tasks ANSIBLE_REPO_PATH /roles/install-lets-encrypt-certs

AnsibleTask hosts bastions become True gather_facts False vars_files ANSIBLE_REPO_PATH /configs/ env_type /env_vars.yml ANSIBLE_REPO_PATH /configs/ env_type /env_secret_vars.yml roles ANSIBLE_REPO_PATH /roles/bastion tags step004 bastion_tasks

AnsibleTask copy src ./files/lets-encrypt-x3-cross-signed.pem.txt dest /etc/origin/master/

AnsibleTask hosts newnodes become True gather_facts False vars_files ANSIBLE_REPO_PATH /configs/ env_type /env_vars.yml ANSIBLE_REPO_PATH /configs/ env_type /env_secret_vars.yml tags step004 common_tasks roles ANSIBLE_REPO_PATH /roles/set-repositories is defined ANSIBLE_REPO_PATH /roles/common ANSIBLE_REPO_PATH /roles/set_env_authorized_key

AnsibleTask gather_facts False become True vars_files ANSIBLE_REPO_PATH /configs/ env_type /env_vars.yml ANSIBLE_REPO_PATH /configs/ env_type /env_secret_vars.yml hosts newnodes roles ANSIBLE_REPO_PATH /roles/openshift-node tags openshift_node_tasks

AnsibleTask template src ANSIBLE_REPO_PATH /configs/ env_type /files/hosts_template.j2 dest ANSIBLE_REPO_PATH /workdir/scaleup_hosts- env_type guid delegate_to localhost become False tags generate_ansible_hosts_file

AnsibleTask copy src ANSIBLE_REPO_PATH /workdir/scaleup_hosts- env_type guid dest /etc/ansible/scaleup_hosts

AnsibleTask shell ansible-playbook -i /etc/ansible/scaleup_hosts /usr/share/ansible/openshift-ansible/playbooks/byo/openshift-node/scaleup.yml register openshift_install_log tags openshift_installer

AnsibleTask gather_facts False become True vars_files ANSIBLE_REPO_PATH /configs/ env_type /env_vars.yml ANSIBLE_REPO_PATH /configs/ env_type /env_secret_vars.yml hosts newnodes tasks

AnsibleTask template src ANSIBLE_REPO_PATH /configs/ env_type /files/hosts_template.j2 dest ANSIBLE_REPO_PATH /workdir/hosts- env_type guid delegate_to localhost become False tags generate_ansible_hosts_file

AnsibleTask copy src ANSIBLE_REPO_PATH /workdir/hosts- project_tag dest /etc/ansible/hosts backup True

AnsibleTask environment AWS_ACCESS_KEY_ID aws_access_key_id AWS_SECRET_ACCESS_KEY aws_secret_access_key AWS_DEFAULT_REGION aws_region_final|d aws_region shell aws route53 list-hosted-zones-by-name region= aws_region_final|d aws_region dns-name= guid .internal output text .Id awk print 3 register internal_zone_id_register

AnsibleTask set_fact internal_zone_id internal_zone_id_register.stdout when internal_zone_id_register is defined

AnsibleTask environment AWS_ACCESS_KEY_ID aws_access_key_id AWS_SECRET_ACCESS_KEY aws_secret_access_key AWS_DEFAULT_REGION aws_region_final|d aws_region shell aws route53 change-resource-record-sets hosted-zone-id internal_zone_id change-batch file // ANSIBLE_REPO_PATH /workdir/internal_dns- env_type guid _DELETE.json region= aws_region ignore_errors True tags internal_dns_delete when internal_zone_id is defined

AnsibleTask set_fact nfs_host item with_items groups when env_type guid in hostvars item cloud_provider _tag_Project

AnsibleTask template src ANSIBLE_REPO_PATH /files/pvs.j2 dest /root//pvs- env_type guid .yml tags gen_pv_file

AnsibleTask template src ANSIBLE_REPO_PATH /files/userpvs.j2 dest /root/userpvs- env_type guid .yml tags gen_user_vol_pv

AnsibleTask command oc get project admin_project register result ignore_errors True

AnsibleTask command oc adm pod-network make-projects-global admin_project

AnsibleTask command oc patch scc/anyuid patch requiredDropCapabilities MKNOD SYS_CHROOT

AnsibleTask shell oadm policy remove-cluster-role-from-group self-provisioner system authenticated system authenticated oauth ignore_errors True

AnsibleTask shell oadm groups new OPENTLC-PROJECT-PROVISIONERS ignore_errors True

AnsibleTask shell oadm policy add-cluster-role-to-group self-provisioner OPENTLC-PROJECT-PROVISIONERS

AnsibleTask service name atomic-openshift-master state restarted when master_config.changed

AnsibleTask command docker pull item with_items env_specific_images

AnsibleTask copy src ./files/logrotate.d_syslog dest /etc/logrotate.d/syslog

AnsibleTask shell systemctl restart atomic-openshift-node.service tags garbage_collection_block

AnsibleTask hosts masters gather_facts False become True vars_files ANSIBLE_REPO_PATH /configs/ env_type /env_vars.yml run_once True roles ANSIBLE_REPO_PATH /roles/nexus2-container admin_project tags env-specific install_nexus

AnsibleTask template src ./files/ cloud_provider _internal_dns.json.j2 dest ANSIBLE_REPO_PATH /workdir/internal_dns- env_type guid .json tags internal_dns_creation

AnsibleTask template src ./files/ cloud_provider _internal_dns.json.j2 dest ANSIBLE_REPO_PATH /workdir/internal_dns- env_type guid _DELETE.json tags internal_dns_creation

AnsibleTask environment AWS_ACCESS_KEY_ID aws_access_key_id AWS_SECRET_ACCESS_KEY aws_secret_access_key AWS_DEFAULT_REGION aws_region shell aws route53 list-hosted-zones-by-name region= aws_region dns-name= guid .internal output text .Id awk print 3 register internal_zone_id_register

AnsibleTask environment AWS_ACCESS_KEY_ID aws_access_key_id AWS_SECRET_ACCESS_KEY aws_secret_access_key AWS_DEFAULT_REGION aws_region shell aws route53 change-resource-record-sets hosted-zone-id internal_zone_id change-batch file // ANSIBLE_REPO_PATH /workdir/internal_dns- env_type guid .json region= aws_region ignore_errors True tags internal_dns_creation when internal_zone_id is defined

AnsibleTask environment AWS_ACCESS_KEY_ID aws_access_key_id AWS_SECRET_ACCESS_KEY aws_secret_access_key AWS_DEFAULT_REGION aws_region_final|d aws_region shell aws route53 change-resource-record-sets hosted-zone-id internal_zone_id change-batch file // ANSIBLE_REPO_PATH /workdir/internal_dns- env_type guid _DELETE.json region= aws_region_final|d aws_region ignore_errors True tags internal_dns_delete when internal_zone_id is defined

AnsibleTask template src ./files/opentlc-sample-config.sh.j2 dest /root/opentlc-sample-config.sh

AnsibleTask environment AWS_ACCESS_KEY_ID aws_access_key_id AWS_SECRET_ACCESS_KEY aws_secret_access_key AWS_DEFAULT_REGION aws_region_final|d aws_region shell aws route53 change-resource-record-sets hosted-zone-id internal_zone_id change-batch file // ANSIBLE_REPO_PATH /workdir/internal_dns- env_type guid .json region= aws_region_final|d aws_region ignore_errors True tags internal_dns_creation when internal_zone_id is defined

AnsibleTask hosts ipas gather_facts False become True vars_files ANSIBLE_REPO_PATH /configs/ env_type /env_vars.yml run_once True roles ANSIBLE_REPO_PATH /roles/ipa-server tags ipa_server_tasks install_ipa

AnsibleTask hosts ipas gather_facts False become True vars_files ANSIBLE_REPO_PATH /configs/ env_type /env_vars.yml ANSIBLE_REPO_PATH /configs/ env_type /env_secret_vars.yml run_once True roles ANSIBLE_REPO_PATH /roles/ipa-server tags ipa_server_tasks install_ipa

AnsibleTask template src ANSIBLE_REPO_PATH /configs/ env_type /files/opentlc-sample-config.sh.j2 dest /root/opentlc-sample-config.sh when install_ipa bool

AnsibleTask shell bash /root/opentlc-sample-config.sh ignore_errors True when install_ipa bool

AnsibleTask hosts activedirectories gather_facts False vars_files ANSIBLE_REPO_PATH /configs/ env_type /env_vars.yml ANSIBLE_REPO_PATH /configs/ env_type /env_secret_vars.yml tags step004 common_tasks windows_tasks roles ANSIBLE_REPO_PATH /roles/windows-common

AnsibleTask file dest ANSIBLE_REPO_PATH /workdir/ env_type _ guid _ssh_conf state absent tags remove_ssh_config

AnsibleTask file dest ANSIBLE_REPO_PATH /workdir/ssh-config- env_type guid state absent tags remove_hosts_file

AnsibleTask file dest ANSIBLE_REPO_PATH /workdir/ cloud_provider _cloud_template env_type guid .json state absent tags remove_cloud_template

AnsibleTask file dest ANSIBLE_REPO_PATH /workdir/hosts- env_type guid state absent tags remove_hosts_file

AnsibleTask hosts localhost connection local become False gather_facts False tasks

AnsibleTask set_fact bastion_hostname hostvars groups ~ env_type ~ _ ~ guid ~ replace _ .0

AnsibleTask file name /srv/nfs/ item state directory mode,511 owner nfsnobody group nfsnobody recurse True with_items workshop_shares

AnsibleTask file path /etc/exports.d/ env_type guid -workshop.exports state touch mode,755

AnsibleTask set_fact nfs_host hostvars groups ~ env_type ~ _ ~ guid ~ replace _ .0 pv_size,10Gi pv_list nfs_shares persistentVolumeReclaimPolicy Retain

AnsibleTask template src ANSIBLE_REPO_PATH /files/pvs.j2 dest /root/pvs- env_type guid .yml tags gen_pv_file

AnsibleTask shell oc_path create -f /root/pvs- env_type guid .yml || oc_path update -f /root/pvs- env_type guid .yml

AnsibleTask shell oc_path create -f /root/userpvs- env_type guid .yml || oc_path update -f /root/userpvs- env_type guid .yml

AnsibleTask command oc_path adm policy add-cluster-role-to-user cluster-admin admin

AnsibleTask template src files/ env_type _pvs.j2 dest /root/pvs- env_type guid .yml

AnsibleTask command oc_path get project workshop-infra register result ignore_errors True

AnsibleTask command oc_path adm new-project workshop-infra admin admin when result failed

AnsibleTask command oc_path adm pod-network make-projects-global workshop-infra

AnsibleTask command oc_path adm policy add-scc-to-group anyuid system serviceaccounts workshop-infra

AnsibleTask command oc_path patch scc/anyuid patch requiredDropCapabilities MKNOD SYS_CHROOT

AnsibleTask copy src files/openjdk-is.yaml dest /root/openjdk-is.yaml

AnsibleTask shell oc_path create -f /root/openjdk-is.yaml -n openshift || oc_path replace -f /root/openjdk-is.yaml -n openshift

AnsibleTask copy src files/java-s2i-is.yaml dest /root/java-s2i-is.yaml tags copy-java-s2i-is

AnsibleTask shell oc_path create -f /root/java-s2i-is.yaml -n openshift || oc_path replace -f /root/java-s2i-is.yaml -n openshift tags create-java-s2i-is

AnsibleTask shell oc_path create -f https //raw.githubusercontent.com/openshift-roadshow/nationalparks/1.0.0/ose3/pipeline-template.yaml -n openshift || oc_path replace -f https //raw.githubusercontent.com/openshift-roadshow/nationalparks/1.0.0/ose3/pipeline-template.yaml -n openshift tags create-pipeline-template

AnsibleTask copy src files/gitlab-template.yaml dest /root/gitlab-template.yaml

AnsibleTask command oc_path get service gitlab-ce -n workshop-infra register install_gitlab ignore_errors True

AnsibleTask shell oc_path process -f /root/gitlab-template.yaml -v APPLICATION_HOSTNAME=gitlab-ce-workshop-infra cloudapps_suffix -v GITLAB_ROOT_PASSWORD=password oc_path create -f -n workshop-infra when install_gitlab failed tags instantiate-gitlab

AnsibleTask command oc_path scale dc/gitlab-ce replicas=4 -n workshop-infra

AnsibleTask command oc_path get dc/gitlab-ce -o yaml -n workshop-infra register result until availableReplicas 4 in result.stdout retries 8 delay 60 tags wait-for-gitlab

AnsibleTask shell oc_path annotate service gitlab-ce service.alpha.openshift.io/dependencies= name gitlab-ce-postgresql namespace kind Service name gitlab-ce-redis namespace kind Service overwrite -n workshop-infra

AnsibleTask command oc_path get svc/labs -n workshop-infra ignore_errors True register labs_service_out

AnsibleTask shell oc_path new-app name=labs jboss-eap70-openshift~ lab_url lab_tag -e ROUTER_ADDRESS= cloudapps_suffix -e CONSOLE_ADDRESS=master subdomain_base -e DEFAULT_LAB=roadshow -e NODES= num_nodes -e NUM_USERS= user_vols -e WORKSHOPS_URLS= lab_content -n workshop-infra oc_path expose service labs -n workshop-infra when labs_service_out failed tags build-workshop-labs

AnsibleTask file dest /srv/nfs/gitlab-data mode,0700 owner,998 group root recurse True

AnsibleTask file dest /srv/nfs/gitlab-data/git-data/repositories mode,2770 recurse True

AnsibleTask copy src files/project-template.yaml dest /root/project-template.yaml

AnsibleTask shell oc_path create -f /root/project-template.yaml -n default || oc_path replace -f /root/project-template.yaml -n default

AnsibleTask copy src env_vars.yml dest /root/ env_type _vars.yml

AnsibleTask copy src files/userprovision.yaml dest /root/userprovision.yaml

AnsibleTask set_fact gitlab_hostname gitlab-ce.workshop-infra.svc.cluster.local

AnsibleTask set_fact root_token root_token_out.json.private_token

AnsibleTask shell ansible-playbook -i localhost /root/userprovision.yaml -e config= env_type -e user= item -e root_token= root_token -e gitlab_hostname= gitlab_hostname with_sequence start=0 end= user_vols format= 02d

AnsibleTask command oc_path get service mysql-pad -n workshop-infra register install_pad_db ignore_errors True

AnsibleTask shell oc_path new-app name=mysql-pad template=mysql-ephemeral -p MYSQL_USER=etherpad -p MYSQL_PASSWORD=etherpad -p MYSQL_DATABASE=etherpad -p DATABASE_SERVICE_NAME=mysql-pad -n workshop-infra when install_pad_db failed

AnsibleTask command oc_path get dc/mysql-pad -o yaml -n workshop-infra register result until availableReplicas 1 in result.stdout retries 5 delay 60

AnsibleTask command oc_path get service etherpad -n workshop-infra register install_pad ignore_errors True

AnsibleTask shell oc_path new-app name=etherpad centos/etherpad -e DB_HOST=mysql-pad -e DB_DBID=etherpad -e DB_PASS=etherpad -e DB_USER=etherpad -e DB_PORT=3306 -n workshop-infra when install_pad failed

AnsibleTask command oc_path get dc/etherpad -o yaml -n workshop-infra register result until availableReplicas 1 in result.stdout retries 5 delay 60

AnsibleTask shell oc_path expose service etherpad -n workshop-infra when install_pad failed

AnsibleTask shell oc_path annotate service etherpad service.alpha.openshift.io/dependencies= name mysql-pad namespace kind Service overwrite -n workshop-infra

AnsibleTask command oc_path get user user user register user_out ignore_errors True

AnsibleTask command oc_path create user user user when user_out failed

AnsibleTask command oc_path get project explore- user register project_out ignore_errors True

AnsibleTask command oc_path new-project explore- user as=user user skip-config-write when project_out failed

AnsibleTask hosts localhost gather_facts False become False vars_files ANSIBLE_REPO_PATH /configs/ env_type /env_vars.yml ANSIBLE_REPO_PATH /configs/ env_type /env_secret_vars.yml tasks tasks Started

AnsibleTask hosts localhost connection local gather_facts False become False vars_files ./env_vars.yml ./env_secret_vars.yml

AnsibleTask debug msg instance short name is item.tags.short_name with_items ec2_facts verbosity 2

AnsibleTask debug msg found BASTION item.id when item.tags.short_name with_items ec2_facts verbosity 2

AnsibleTask set_fact ansible_ssh_extra_args ansible_ssh_extra_args|d -F ANSIBLE_REPO_PATH /workdir/ env_type _ guid _ssh_conf

AnsibleTask shell mkdir -p /srv/nfs/user-vols/vol 1.. user_vols tags openshift_nfs_config

AnsibleTask shell chmod -R 777 /srv/nfs/user-vols tags openshift_nfs_config

AnsibleTask shell mv /etc/ansible/hosts /var/preserve/ tags preserve_complete_ansible_inventory

AnsibleTask copy backup False src ANSIBLE_REPO_PATH /workdir/labs_hosts- env_type guid dest /etc/ansible/hosts tags overwrite_hosts_with_lab_hosts

AnsibleTask set_fact nfs_host groups |sort|first tags openshift_nfs_config

AnsibleTask template src ANSIBLE_REPO_PATH /configs/ env_type /files/pvs.j2 dest /root/pvs- env_type guid .yml tags openshift_nfs_config when pv_list.0 is defined

AnsibleTask template src ANSIBLE_REPO_PATH /configs/ env_type /files/userpvs.j2 dest /root/userpvs- env_type guid .yml tags gen_user_vol_pv openshift_nfs_config

AnsibleTask hosts all become True gather_facts False vars_files ANSIBLE_REPO_PATH /configs/ env_type /env_vars.yml ANSIBLE_REPO_PATH /configs/ env_type /env_secret_vars.yml tags step004 common_tasks roles ANSIBLE_REPO_PATH /roles/set-repositories is defined ANSIBLE_REPO_PATH /roles/common ANSIBLE_REPO_PATH /roles/set_env_authorized_key

AnsibleTask hosts localhost connection local gather_facts False become False vars_files ./env_vars.yml ./env_secret_vars.yml tasks Infrastructure

AnsibleTask hosts bastions become True gather_facts False vars_files ANSIBLE_REPO_PATH /configs/ env_type /env_vars.yml tasks None Steps starting

AnsibleTask hosts localhost gather_facts False become False vars_files ANSIBLE_REPO_PATH /configs/ env_type /env_vars.yml ANSIBLE_REPO_PATH /configs/ env_type /env_secret_vars.yml tasks tasks started

AnsibleTask hosts bastions gather_facts False become True vars_files ANSIBLE_REPO_PATH /configs/ env_type /env_vars.yml ANSIBLE_REPO_PATH /configs/ env_type /env_secret_vars.yml roles ../../roles/ocp-client-vm

AnsibleTask fail msg FAIL project_tag delete s3 when not s3_result|succeeded

AnsibleTask template src ANSIBLE_REPO_PATH /configs/ env_type /files/pvs.j2 dest /root//pvs- env_type guid .yml tags gen_pv_file

AnsibleTask hosts masters gather_facts False become True vars_files ANSIBLE_REPO_PATH /configs/ env_type /env_vars.yml run_once True roles ANSIBLE_REPO_PATH /roles/install-nexus admin_project 2 tags env-specific install_nexus

AnsibleTask command /bin/ansible-playbook -i /etc/ansible/hosts -e hosts_to_apply= masters /root/openshift-psap/playbooks/nvidia-driver-install.yaml args chdir /root/openshift-psap

AnsibleTask command /bin/ansible-playbook -i /etc/ansible/hosts -e hosts_to_apply= masters /root/openshift-psap/playbooks/nvidia-container-runtime-hook.yaml args chdir /root/openshift-psap

AnsibleTask command /bin/ansible-playbook -i /etc/ansible/hosts -e hosts_to_apply= masters -e gpu_hosts= nodes /root/openshift-psap/playbooks/nvidia-device-plugin.yaml args chdir /root/openshift-psap

AnsibleTask command oc get daemonset -n nvidia-device-plugin nvidia-deviceplugin-daemonset -o jsonpath template= .status.numberReady register daemonset_ready_out until daemonset_ready_out.stdout int 1 retries 5 delay 60

AnsibleTask command oc get node item -o jsonpath template= .status.capacity.nvidia\.com/gpu register node_gpu_capacity_out failed_when 1 not in node_gpu_capacity_out.stdout with_items groups masters

AnsibleTask command oc delete pod cuda-vector-add -n nvidia-device-plugin ignore_errors True

AnsibleTask shell cat /root/openshift-psap/blog/gpu/device-plugin/cuda-vector-add.yaml grep -v namespace nvidia oc create -n nvidia-device-plugin -f

AnsibleTask command oc get pod -n nvidia-device-plugin cuda-vector-add -o jsonpath template= .status.phase register cuda_status_out until Succeeded in cuda_status_out.stdout retries 5 delay 60

AnsibleTask command oc logs -n nvidia-device-plugin cuda-vector-add register cuda_pod_out failed_when Test PASSED not in cuda_pod_out.stdout

AnsibleTask command oc adm policy add-cluster-role-to-user cluster-admin gpu-user

AnsibleTask hosts localhost connection local gather_facts False become False vars_files ANSIBLE_REPO_PATH /configs/ env_type /env_vars.yml ANSIBLE_REPO_PATH /configs/ env_type /env_secret_vars.yml tags step003 step003.1 generate_env_keys tasks None roles ANSIBLE_REPO_PATH /roles/infra-local-create-ssh_key is defined

AnsibleTask hosts all windows become True gather_facts False vars_files ANSIBLE_REPO_PATH /configs/ env_type /env_vars.yml ANSIBLE_REPO_PATH /configs/ env_type /env_secret_vars.yml tags step003 step003.2 common_tasks pre_tasks rhel-7-server-ansible-2.4-rpms repo for OCP 3.9 rhel_repos osrelease version_compare 3.9 roles ANSIBLE_REPO_PATH /roles/set-repositories is defined ANSIBLE_REPO_PATH /roles/common ANSIBLE_REPO_PATH /roles/set_env_authorized_key

AnsibleTask hosts bastions become True gather_facts False vars_files ANSIBLE_REPO_PATH /configs/ env_type /env_vars.yml ANSIBLE_REPO_PATH /configs/ env_type /env_secret_vars.yml roles ANSIBLE_REPO_PATH /roles/bastion tags step003 bastion_tasks

AnsibleTask template src ./files/cloud_providers/ec2_cloud_template.j2 dest ./ec2_cloud_template.yml

AnsibleTask hosts isolated become True gather_facts False vars_files ANSIBLE_REPO_PATH /configs/ env_type /env_vars.yml ANSIBLE_REPO_PATH /configs/ env_type /env_secret_vars.yml tags step004 common_tasks vars proxyservername http // own_repo_path urlsplit servername hostvars groups 0 .internaldns roles ANSIBLE_REPO_PATH /roles/host-httpd-reverse-proxy is defined

AnsibleTask hosts all become True gather_facts False vars_files ANSIBLE_REPO_PATH /configs/ env_type /env_vars.yml ANSIBLE_REPO_PATH /configs/ env_type /env_secret_vars.yml tags step004 common_tasks roles ANSIBLE_REPO_PATH /roles/set_env_authorized_key ANSIBLE_REPO_PATH /roles/set-repositories is defined ANSIBLE_REPO_PATH /roles/common

AnsibleTask set_fact s3user cloudformation_out_final.stack_outputs.S3User s3user_access_key cloudformation_out_final.stack_outputs.S3UserAccessKey s3user_secret_access_key cloudformation_out_final.stack_outputs.S3UserSecretAccessKey when cloudformation_out_final is defined cloudformation_out_final.stack_outputs.S3UserAccessKey is defined cloudformation_out_final.stack_outputs.S3UserSecretAccessKey is defined tags provision_cf_template

AnsibleTask set_fact route53user cloudformation_out_final.stack_outputs.Route53User route53user_access_key cloudformation_out_final.stack_outputs.Route53UserAccessKey route53user_secret_access_key cloudformation_out_final.stack_outputs.Route53UserSecretAccessKey when cloudformation_out_final is defined cloudformation_out_final.stack_outputs.Route53UserAccessKey is defined cloudformation_out_final.stack_outputs.Route53UserSecretAccessKey is defined tags provision_cf_template

AnsibleTask hosts localhost connection local gather_facts False become False vars_files ANSIBLE_REPO_PATH /configs/ env_type /env_vars.yml ANSIBLE_REPO_PATH /configs/ env_type /env_secret_vars.yml tags step004 step004.1 generate_env_keys tasks None roles ANSIBLE_REPO_PATH /roles/infra-local-create-ssh_key is defined

AnsibleTask hosts all windows become True gather_facts False vars_files ANSIBLE_REPO_PATH /configs/ env_type /env_vars.yml ANSIBLE_REPO_PATH /configs/ env_type /env_secret_vars.yml tags step004 step004.2 common_tasks pre_tasks rhel-7-server-ansible-2.4-rpms repo for OCP 3.9 rhel_repos osrelease version_compare 3.9 roles ANSIBLE_REPO_PATH /roles/set-repositories is defined ANSIBLE_REPO_PATH /roles/common ANSIBLE_REPO_PATH /roles/set_env_authorized_key

AnsibleTask hosts all become False gather_facts False vars_files ANSIBLE_REPO_PATH /configs/ env_type /env_vars.yml tags step007 roles ANSIBLE_REPO_PATH /roles/ ocp_workload is defined

AnsibleTask fail msg FAIL project_tag delete s3 when s3_result is not succeeded cloud_provider

AnsibleTask fail msg FAIL project_tag Destroy Cloudformation when cloudformation_result is not succeeded cloud_provider tags destroying destroy_cf_deployment

AnsibleTask hosts bastions run_once True gather_facts False become True vars_files ANSIBLE_REPO_PATH /configs/ env_type /env_vars.yml tasks nfs Hostname groups |sort|first ocp_pvs PV file ANSIBLE_REPO_PATH /configs/ env_type /files/pvs.j2 env_type guid .yml is defined user_vols_size nfs services True user vol PV file ANSIBLE_REPO_PATH /configs/ env_type /files/userpvs.j2 env_type guid .yml create -f /root/pvs- env_type guid .yml || oc replace -f /root/pvs- env_type guid .yml is defined create -f /root/userpvs- env_type guid .yml || oc replace -f /root/userpvs- env_type guid .yml }

AnsibleTask hosts masters run_once True become True gather_facts False vars_files ANSIBLE_REPO_PATH /configs/ env_type /env_vars.yml tags env-specific env-specific_infra storage-class tasks osrelease is version_compare 3.9.27 osrelease is version_compare 3.9.30 glusterfs-storage class to default patch storageclass glusterfs-storage -p metadata annotations storageclass.kubernetes.io/is-default-class true glusterfs-storage not patched\ -1 0 glusterfs-storage patched\ -1 default from glusterfs-storage-block class glusterfs-storage-block patched\ -1 glusterfs-storage-block not patched\ -1 0 patch storageclass glusterfs-storage-block -p metadata annotations storageclass.kubernetes.io/is-default-class false

AnsibleTask command cp -rf /root/.kube /home/opentlc-mgr/ when install_opentlc_integration|bool

AnsibleTask when install_opentlc_integration|bool file path /home/opentlc-mgr/.kube owner opentlc-mgr group opentlc-mgr recurse True

AnsibleTask command oc adm new-project admin_project admin admin_user when result failed osrelease is version_compare 3.10

AnsibleTask shell oc annotate namespace openshift-template-service-broker openshift.io/node-selector= overwrite ignore_errors True when osrelease is version_compare 3.7 osrelease is version_compare 3.10

AnsibleTask hosts masters run_once True become True gather_facts False vars_files ANSIBLE_REPO_PATH /configs/ env_type /env_vars.yml tags env-specific remove_self_provisioners tasks clusterRoleBinding auto-update to false annotate -n default overwrite clusterrolebinding.rbac self-provisioners rbac.authorization.kubernetes.io/autoupdate=false system authenticated from self-provisioner role adm policy remove-cluster-role-from-group self-provisioner system authenticated system authenticated oauth True our own OPENTLC-PROJECT-PROVISIONERS adm groups new OPENTLC-PROJECT-PROVISIONERS True OPENTLC-PROJECT-PROVISIONERS members to provision their own projects adm policy add-cluster-role-to-group self-provisioner OPENTLC-PROJECT-PROVISIONERS

AnsibleTask service name atomic-openshift-master state restarted when master_config.changed osrelease is version_compare 3.7

AnsibleTask service name atomic-openshift-master-api state restarted when master_config.changed osrelease is version_compare 3.7 osrelease is version_compare 3.10

AnsibleTask command /usr/local/bin/master-restart api when master_config.changed osrelease is version_compare 3.10

AnsibleTask hosts masters run_once True become True gather_facts False vars_files ANSIBLE_REPO_PATH /configs/ env_type /env_vars.yml tags env-specific env_specific_images tasks osrelease is version_compare 3.7 default Jenkins ImageStream delete is jenkins -n openshift True jenkins from Red Hat Registry tag source=docker registry.access.redhat.com/openshift3/jenkins-2-rhel7 v repo_version openshift/jenkins v repo_version -n openshift True Jenkins jenkins latest tag openshift/jenkins v repo_version openshift/jenkins latest -n openshift 5 2 is succeeded True Jenkins jenkins:2 tag openshift/jenkins v repo_version openshift/jenkins:2 -n openshift 5 2 is succeeded True

AnsibleTask command docker pull registry.access.redhat.com/openshift3/ose-recycler latest register pullr retries 5 delay 10 until pullr is succeeded when osrelease is version_compare 3.7 install_nfs|bool

AnsibleTask command docker tag registry.access.redhat.com/openshift3/ose-recycler latest registry.access.redhat.com/openshift3/ose-recycler v osrelease when osrelease is version_compare 3.7 osrelease is version_compare 3.10 install_nfs|bool

AnsibleTask command docker tag registry.access.redhat.com/openshift3/ose-recycler latest registry.access.redhat.com/openshift3/ose-recycler v1.10.0 when osrelease is version_compare 3.10 install_nfs|bool

AnsibleTask shell oc patch daemonset dockergc patch= spec template spec containers command /usr/bin/oc name dockergc -n default ignore_errors True when osrelease is version_compare 3.9.0 osrelease is version_compare 3.9.25 container_runtime cri-o

AnsibleTask shell oc delete pod oc get pods -n default|grep dockergc|awk -c print 1 -n default when osrelease is version_compare 3.9.0 osrelease is version_compare 3.9.25 container_runtime cri-o

AnsibleTask gather_facts False become True hosts nodes infranodes masters bastions vars_files ANSIBLE_REPO_PATH /configs/ env_type /env_vars.yml ANSIBLE_REPO_PATH /configs/ env_type /env_secret_vars.yml tags install_prometheus tasks ANSIBLE_REPO_PATH /roles/install-prometheus is version_compare 3.10

AnsibleTask shell docker pull docker.io/mrsiano/grafana-ocp latest when install_prometheus|bool osrelease is version_compare 3.10

AnsibleTask gather_facts False become True hosts bastions run_once True vars_files ANSIBLE_REPO_PATH /configs/ env_type /env_vars.yml tags install_prometheus tasks is version_compare 3.10 Grafana Installation Playbook -i /etc/ansible/hosts /usr/share/ansible/openshift-ansible/playbooks/openshift-grafana/config.yml admin permissions to admin_user for Grafana project policy add-role-to-user admin admin_user -n openshift-grafana

AnsibleTask gather_facts False become True hosts nodes infranodes masters vars_files ANSIBLE_REPO_PATH /configs/ env_type /env_vars.yml ANSIBLE_REPO_PATH /configs/ env_type /env_secret_vars.yml tags install_prometheus tasks is version_compare 3.10 Firewall port 9100 for future sessions FORWARD -j REJECT reject-with icmp-host-prohibited OS_FIREWALL_ALLOW -p tcp -m state state NEW -m tcp dport 9100 -j ACCEPT Firewall Port 9100 for current session 9100 }

AnsibleTask hosts masters run_once True gather_facts False become True vars_files ANSIBLE_REPO_PATH /configs/ env_type /env_vars.yml tags env-specific install_openshiftapb tasks ANSIBLE_REPO_PATH /roles/openshift-ansible-broker

AnsibleTask template src ANSIBLE_REPO_PATH /configs/ env_type /files/ocp_report.adoc.j2 dest ANSIBLE_REPO_PATH /workdir/ocp_report_ env_type guid .adoc when ocp_report|bool cloud_provider

AnsibleTask hosts all windows become True gather_facts False vars_files ANSIBLE_REPO_PATH /configs/ env_type /env_vars.yml ANSIBLE_REPO_PATH /configs/ env_type /env_secret_vars.yml tags step004 common_tasks pre_tasks rhel-7-server-ansible-2.4-rpms repo for OCP 3.9+ rhel_repos osrelease is version_compare 3.9 roles ANSIBLE_REPO_PATH /roles/set-repositories is defined ANSIBLE_REPO_PATH /roles/common ANSIBLE_REPO_PATH /roles/set_env_authorized_key

AnsibleTask copy src ./files/lets-encrypt-x3-cross-signed.pem.txt dest /etc/origin/master/ when in install_idms

AnsibleTask shell ansible-playbook -i /etc/ansible/scaleup_hosts /usr/share/ansible/openshift-ansible/playbooks/byo/openshift-node/scaleup.yml register openshift_install_log when osrelease is version_compare 3.9.33 tags openshift_installer

AnsibleTask shell ansible-playbook -i /etc/ansible/scaleup_hosts /usr/share/ansible/openshift-ansible/playbooks/openshift-node/scaleup.yml register openshift_install_log when osrelease is version_compare 3.9.33 tags openshift_installer

AnsibleTask command cp ~/.kube/config oc_kube_config when oc_kube_config is defined oc_kube_config is not none oc_kube_config|trim not kube_config_result.stat.exists

AnsibleTask file path oc_kube_config mode,448 when oc_kube_config is defined oc_kube_config is not none oc_kube_config|trim

AnsibleTask shell openshift_cli idle -n item all ignore_errors True with_items project_default project_cicd project_prod project_stage project_test project_dev

AnsibleTask shell openshift_cli get project project_name register result ignore_errors True changed_when False

AnsibleTask shell openshift_cli new-project project_name NOT REMOVE THIS PROJECT NEEDED FOR COOLSTORE DEMO ignore_errors True when result is failed

AnsibleTask shell openshift_cli process -f pipeline_template param=GITHUB_ACCOUNT= github_account param=GITHUB_REF= github_ref param=MAVEN_MIRROR_URL= maven_mirror_url -n project_name openshift_cli create -f -n project_name ignore_errors True

AnsibleTask hosts all gather_facts False run_once True vars_files ANSIBLE_REPO_PATH /configs/ env_type /env_vars.yml tasks ANSIBLE_REPO_PATH /configs/ env_type /create_oc_config.yml ANSIBLE_REPO_PATH /roles/openshift_commons_facts ANSIBLE_REPO_PATH /roles/openshift_gogs project_cicd project_cicd_name project_cicd_desc project_suffix project_cicd apps_hostname_suffix ANSIBLE_REPO_PATH /roles/openshift_sonatype_nexus project_cicd is not defined or maven_mirror_url is none or maven_mirror_url|trim \n ANSIBLE_REPO_PATH /roles/openshift_jenkins project_cicd ANSIBLE_REPO_PATH /roles/openshift_workshopper project_cicd //raw.githubusercontent.com/siamaksade/coolstore-demo-guides/openshift-3.7 workshopper_content_url_prefix /demo-cicd-eap-full.yml project_suffix //gogs- project_cicd apps_hostname_suffix //gogs- project_cicd apps_hostname_suffix gogs_user /coolstore-microservice //jenkins- project_prod apps_hostname_suffix //web-ui- project_prod apps_hostname_suffix //hystrix-dashboard- project_prod apps_hostname_suffix gogs_user gogs_password gogs_admin_user gogs_admin_password ANSIBLE_REPO_PATH /roles/openshift_coolstore project_suffix apps_hostname_suffix project_cicd apps_hostname_suffix =true app =inventory } 'tags : }

AnsibleTask hosts all gather_facts False run_once True vars_files ANSIBLE_REPO_PATH /configs/ env_type /env_vars.yml tasks ANSIBLE_REPO_PATH /configs/ env_type /create_oc_config.yml ANSIBLE_REPO_PATH /roles/openshift_commons_facts ANSIBLE_REPO_PATH /roles/openshift_gogs project_cicd project_cicd_name project_cicd_desc project_suffix project_cicd apps_hostname_suffix ANSIBLE_REPO_PATH /roles/openshift_sonatype_nexus project_cicd is not defined or maven_mirror_url is none or maven_mirror_url|trim \n ANSIBLE_REPO_PATH /roles/openshift_jenkins project_cicd ANSIBLE_REPO_PATH /roles/openshift_workshopper project_cicd //raw.githubusercontent.com/siamaksade/coolstore-demo-guides/openshift-3.7 workshopper_content_url_prefix /demo-cicd-eap-min.yml project_suffix //gogs- project_cicd apps_hostname_suffix //gogs- project_cicd apps_hostname_suffix gogs_user /coolstore-microservice //jenkins- project_prod apps_hostname_suffix //web-ui- project_prod apps_hostname_suffix //hystrix-dashboard- project_prod apps_hostname_suffix gogs_user gogs_password gogs_admin_user gogs_admin_password ANSIBLE_REPO_PATH /roles/openshift_coolstore project_suffix apps_hostname_suffix project_cicd apps_hostname_suffix =true app =inventory =true app =inventory True ' : '

AnsibleTask hosts all gather_facts False run_once True vars_files ANSIBLE_REPO_PATH /configs/ env_type /env_vars.yml tasks ANSIBLE_REPO_PATH /configs/ env_type /create_oc_config.yml ANSIBLE_REPO_PATH /roles/openshift_commons_facts ANSIBLE_REPO_PATH /roles/openshift_coolstore project_suffix apps_hostname_suffix False }

AnsibleTask hosts all gather_facts False run_once True vars_files ANSIBLE_REPO_PATH /configs/ env_type /env_vars.yml tasks ANSIBLE_REPO_PATH /configs/ env_type /create_oc_config.yml ANSIBLE_REPO_PATH /roles/openshift_commons_facts ANSIBLE_REPO_PATH /roles/openshift_coolstore project_suffix apps_hostname_suffix False =true =true

AnsibleTask shell openshift_cli delete project project_cicd project_prod project_stage project_test project_dev ignore_errors True

AnsibleTask shell openshift_cli delete project project_default ignore_errors True

AnsibleTask shell openshift_cli get project project_default register result ignore_errors True changed_when False

AnsibleTask shell openshift_cli get dc -o json -n project_default register deploymentconfigs_list when result|success changed_when False

AnsibleTask shell openshift_cli scale replicas= item.metadata.annotations dc item.metadata.name -n project_default with_items deploymentconfigs_list.stdout|from_json|json_query when result|success and item.metadata.annotations is defined and item.metadata.annotations is defined and item.metadata.annotations is not none and item.metadata.annotations |trim

AnsibleTask shell openshift_cli get project project_cicd register result ignore_errors True changed_when False

AnsibleTask shell openshift_cli get dc -o json -n project_cicd register deploymentconfigs_list when result|success changed_when False

AnsibleTask shell openshift_cli scale replicas= item.metadata.annotations dc item.metadata.name -n project_cicd with_items deploymentconfigs_list.stdout|from_json|json_query when result|success and item.metadata.annotations is defined and item.metadata.annotations is defined and item.metadata.annotations is not none and item.metadata.annotations |trim

AnsibleTask shell openshift_cli get project project_prod register result ignore_errors True changed_when False

AnsibleTask shell openshift_cli get dc -o json -n project_prod register deploymentconfigs_list when result|success changed_when False

AnsibleTask shell openshift_cli scale replicas= item.metadata.annotations dc item.metadata.name -n project_prod with_items deploymentconfigs_list.stdout|from_json|json_query when result|success and item.metadata.annotations is defined and item.metadata.annotations is defined and item.metadata.annotations is not none and item.metadata.annotations |trim

AnsibleTask shell openshift_cli get project project_stage register result ignore_errors True changed_when False

AnsibleTask shell openshift_cli get dc -o json -n project_stage register deploymentconfigs_list when result|success changed_when False

AnsibleTask shell openshift_cli scale replicas= item.metadata.annotations dc item.metadata.name -n project_stage with_items deploymentconfigs_list.stdout|from_json|json_query when result|success and item.metadata.annotations is defined and item.metadata.annotations is defined and item.metadata.annotations is not none and item.metadata.annotations |trim

AnsibleTask shell openshift_cli get project project_test register result ignore_errors True changed_when False

AnsibleTask shell openshift_cli get dc -o json -n project_test register deploymentconfigs_list when result|success changed_when False

AnsibleTask shell openshift_cli scale replicas= item.metadata.annotations dc item.metadata.name -n project_test with_items deploymentconfigs_list.stdout|from_json|json_query when result|success and item.metadata.annotations is defined and item.metadata.annotations is defined and item.metadata.annotations is not none and item.metadata.annotations |trim

AnsibleTask shell openshift_cli get project project_dev register result ignore_errors True changed_when False

AnsibleTask shell openshift_cli get dc -o json -n project_dev register deploymentconfigs_list when result|success changed_when False

AnsibleTask shell openshift_cli scale replicas= item.metadata.annotations dc item.metadata.name -n project_dev with_items deploymentconfigs_list.stdout|from_json|json_query when result|success and item.metadata.annotations is defined and item.metadata.annotations is defined and item.metadata.annotations is not none and item.metadata.annotations |trim

AnsibleTask shell oc get pods -n project_cicd -l comp-type=database grep grep register deployment_running until deployment_running is failed retries 20 delay 30 ignore_errors True

AnsibleTask shell oc get pods -n project_prod -l comp-type=database grep grep register deployment_running until deployment_running is failed retries 20 delay 30 ignore_errors True

AnsibleTask shell oc get pods -n project_test -l comp-type=database grep grep register deployment_running until deployment_running is failed retries 20 delay 30 ignore_errors True

AnsibleTask shell oc get pods -n project_dev -l comp-type=database grep grep register deployment_running until deployment_running is failed retries 20 delay 30 ignore_errors True

AnsibleTask shell oc get pods -n project_cicd -l comp-type =database grep grep register deployment_running until deployment_running is failed retries 20 delay 30 ignore_errors True

AnsibleTask shell oc get pods -n project_prod -l comp-type =database grep grep register deployment_running until deployment_running is failed retries 20 delay 30 ignore_errors True

AnsibleTask shell oc get pods -n project_stage -l comp-type =database grep grep register deployment_running until deployment_running is failed retries 20 delay 30 ignore_errors True

AnsibleTask shell oc get pods -n project_test -l comp-type =database grep grep register deployment_running until deployment_running is failed retries 20 delay 30 ignore_errors True

AnsibleTask shell oc get pods -n project_dev -l comp-type =database grep grep register deployment_running until deployment_running is failed retries 20 delay 30 ignore_errors True

AnsibleTask shell openshift_cli get dc -l selector -o jsonpath= .items .metadata.name -n project_cicd register deploymentconfigs_list when result|succeeded changed_when False

AnsibleTask shell openshift_cli get dc deploymentconfigs_list.stdout -o json -n project_cicd register deploymentconfigs_list_json when result|succeeded changed_when False

AnsibleTask shell openshift_cli rollout cancel dc/ dc.metadata.name -n project_cicd true sleep 30 openshift_cli rollout latest dc/ dc.metadata.name -n project_cicd openshift_cli rollout status dc/ dc.metadata.name -n project_cicd when result|succeeded deploymentconfigs_list_json|succeeded dc.metadata is defined dc.status is defined dc.spec is defined dc.status.availableReplicas dc.spec.replicas loop_control loop_var dc label dc.metadata.name if dc.metadata is defined else dc with_items deploymentconfigs_list_json.stdout|default |from_json|json_query ignore_errors True

AnsibleTask shell openshift_cli get dc -l selector -o jsonpath= .items .metadata.name -n project_prod register deploymentconfigs_list when result|succeeded changed_when False

AnsibleTask shell openshift_cli get dc deploymentconfigs_list.stdout -o json -n project_prod register deploymentconfigs_list_json when result|succeeded changed_when False

AnsibleTask shell openshift_cli rollout cancel dc/ dc.metadata.name -n project_prod true sleep 30 openshift_cli rollout latest dc/ dc.metadata.name -n project_prod openshift_cli rollout status dc/ dc.metadata.name -n project_prod when result|succeeded deploymentconfigs_list_json|succeeded dc.metadata is defined dc.status is defined dc.spec is defined dc.status.availableReplicas dc.spec.replicas loop_control loop_var dc label dc.metadata.name if dc.metadata is defined else dc with_items deploymentconfigs_list_json.stdout|default |from_json|json_query ignore_errors True

AnsibleTask shell openshift_cli get dc -l selector -o jsonpath= .items .metadata.name -n project_stage register deploymentconfigs_list when result|succeeded changed_when False

AnsibleTask shell openshift_cli get dc deploymentconfigs_list.stdout -o json -n project_stage register deploymentconfigs_list_json when result|succeeded changed_when False

AnsibleTask shell openshift_cli rollout cancel dc/ dc.metadata.name -n project_stage true sleep 30 openshift_cli rollout latest dc/ dc.metadata.name -n project_stage openshift_cli rollout status dc/ dc.metadata.name -n project_stage when result|succeeded deploymentconfigs_list_json|succeeded dc.metadata is defined dc.status is defined dc.spec is defined dc.status.availableReplicas dc.spec.replicas loop_control loop_var dc label dc.metadata.name if dc.metadata is defined else dc with_items deploymentconfigs_list_json.stdout|default |from_json|json_query ignore_errors True

AnsibleTask shell openshift_cli get dc -l selector -o jsonpath= .items .metadata.name -n project_test register deploymentconfigs_list when result|succeeded changed_when False

AnsibleTask shell openshift_cli get dc deploymentconfigs_list.stdout -o json -n project_test register deploymentconfigs_list_json when result|succeeded changed_when False

AnsibleTask shell openshift_cli rollout cancel dc/ dc.metadata.name -n project_test true sleep 30 openshift_cli rollout latest dc/ dc.metadata.name -n project_test openshift_cli rollout status dc/ dc.metadata.name -n project_test when result|succeeded deploymentconfigs_list_json|succeeded dc.metadata is defined dc.status is defined dc.spec is defined dc.status.availableReplicas dc.spec.replicas loop_control loop_var dc label dc.metadata.name if dc.metadata is defined else dc with_items deploymentconfigs_list_json.stdout|default |from_json|json_query ignore_errors True

AnsibleTask shell openshift_cli get dc -l selector -o jsonpath= .items .metadata.name -n project_dev register deploymentconfigs_list when result|succeeded changed_when False

AnsibleTask shell openshift_cli get dc deploymentconfigs_list.stdout -o json -n project_dev register deploymentconfigs_list_json when result|succeeded changed_when False

AnsibleTask shell openshift_cli rollout cancel dc/ dc.metadata.name -n project_dev true sleep 30 openshift_cli rollout latest dc/ dc.metadata.name -n project_dev openshift_cli rollout status dc/ dc.metadata.name -n project_dev when result|succeeded deploymentconfigs_list_json|succeeded dc.metadata is defined dc.status is defined dc.spec is defined dc.status.availableReplicas dc.spec.replicas loop_control loop_var dc label dc.metadata.name if dc.metadata is defined else dc with_items deploymentconfigs_list_json.stdout|default |from_json|json_query ignore_errors True

AnsibleTask fail msg and groups must be specified when not in groups or groups length 0 or not in groups or groups length 0 or not in groups or groups length 0

AnsibleTask hosts bastions gather_facts False become True vars_files ANSIBLE_REPO_PATH /configs/ env_type /env_vars.yml ANSIBLE_REPO_PATH /configs/ env_type /env_secret_vars.yml roles ../../roles/host-ocp-node

AnsibleTask environment AWS_ACCESS_KEY_ID aws_access_key_id AWS_SECRET_ACCESS_KEY aws_secret_access_key AWS_DEFAULT_REGION aws_region_final|d aws_region command aws route53 change-resource-record-sets hosted-zone-id internal_zone_id change-batch file // ANSIBLE_REPO_PATH /workdir/internal_dns- env_type guid _DELETE.json region= aws_region_final|d aws_region ignore_errors True tags internal_dns_delete when internal_zone_id is defined

AnsibleTask template src iptables.j2 dest /etc/sysconfig/iptables notify restart iptables

AnsibleTask file path item state directory mode,493 with_items nfs_exports

AnsibleTask command subscription-manager config rhsm.manage_repos=0

AnsibleTask copy src= item dest= /home/ system_user owner= system_user group= system_user with_items vimrc license

AnsibleTask copy src terraform_working_dir workshop_prefix workshop_prefix -tower dest /home/ system_user /.ssh/ workshop_prefix -tower mode,256 group system_user owner system_user

AnsibleTask template dest= /home/ system_user /ansible.cfg src=ansible.cfg.j2 owner= system_user group= system_user

AnsibleTask file path /home/ system_user /walkthrough state directory owner system_user group system_user mode,493

AnsibleTask template src= item.src dest= /home/ system_user /walkthrough/ item.dest mode=0755 owner= system_user group= system_user with_items 'dest , ' ' , 'dest ' : '

AnsibleTask become True command rm ansible-tower-setup-latest.tar.gz chdir=/tmp/

AnsibleTask become True shell mv ansible-tower-setup-* ansible-tower-setup chdir=/tmp/

AnsibleTask become True template dest=/tmp/ansible-tower-setup/inventory src=inventory.j2

AnsibleTask become True become_user root command ./setup.sh chdir=/tmp/ansible-tower-setup

AnsibleTask become True become_user root copy src=license dest=/etc/tower/license

AnsibleTask become True become_user root command tower-cli organization create name item.org_name description item.org_description with_items organizations tags setup

AnsibleTask command tower-cli team create name item.team_name description item.team_description organization item.team_org_name become True become_user root with_items teams tags setup

AnsibleTask become True become_user root shell tower-cli user create username item.username first-name item.first_name last-name item.last_name email item.email password item.password is-superuser item.superuser bool is-system-auditor item.auditor bool with_items users tags users

AnsibleTask become True become_user root command tower-cli team associate user item.username team Lab-Team with_items users tags users

AnsibleTask become True become_user root command tower-cli organization associate user item.username organization Lab-Organization with_items users tags users

AnsibleTask command subscription-manager repos disable=* when use_subscriptions default false register task_result until task_result succeeded retries 10 delay 5

AnsibleTask command subscription-manager repos enable item with_items rhel_repos when use_subscriptions default false register task_result until task_result succeeded retries 10 delay 5

AnsibleTask shell ls -1 /etc/yum.repos.d/ register repodircontents tags configure_repos remove_existing_repos when use_own_repos default true

AnsibleTask file path /etc/yum.repos.d/ item state absent with_items repodircontents.stdout_lines ignore_errors True tags configure_repos remove_existing_repos when use_own_repos default true

AnsibleTask template src ANSIBLE_REPO_PATH /configs/ env_type /files/repos_template.j2 dest /etc/yum.repos.d/open_ env_type .repo tags create_open_repo_template ignore_errors True when use_own_repos default true

AnsibleTask shell yum clean all tags configure_repos run_yum_repolist when use_own_repos default true

AnsibleTask command /usr/bin/yum -y localinstall http // satellite_url /pub/katello-ca-consumer-latest.noarch.rpm

AnsibleTask command subscription-manager repos enable=rhel-7-server-satellite-tools-6.2-rpms

AnsibleTask command subscription-manager repos enable item with_items rhel_repos

AnsibleTask shell /usr/bin/subscription-manager list all available matches= *OpenShift Container Platform* awk ID/ print 3 head -1 register pool_id until pool_id succeeded retries 10 delay 5

AnsibleTask shell /usr/bin/subscription-manager attach pool= pool_id.stdout register task_result until task_result.rc 0 retries 10 delay 5 ignore_errors False

AnsibleTask command subscription-manager status register sm_result ignore_errors True

AnsibleTask command subscription-manager register username= username password= password force when sm_result.rc 0

AnsibleTask command subscription-manager attach pool pool_id when sm_result.rc 0

AnsibleTask become True shell subscription-manager repos list-enabled egrep wc -l register smr_result ignore_errors True tags rhel

AnsibleTask command subscription-manager repos disable when smr_result.stdout 3 tags rhel

AnsibleTask shell subscription-manager repos enable= rhel-7-server-rpms enable= rhel-7-server-extras-rpms enable= rhel-7-server-optional-rpms when smr_result.stdout 3 tags rhel

AnsibleTask become True copy src ANSIBLE_REPO_PATH /workdir/ env_authorized_key dest /root/.ssh/ env_authorized_key .pem owner root group root mode,256 when use_own_key|bool

AnsibleTask become True copy src ~/.ssh/ key_name .pem dest /root/.ssh/ key_name .pem owner root group root mode,256 when not use_own_key|bool tags copy_env_private_key

AnsibleTask become True copy src ANSIBLE_REPO_PATH /workdir/ssh-config- env_type guid dest /root/.ssh/config owner root group root mode,256 tags copy_sshconfig_file

AnsibleTask command /usr/sbin/ipa-client-install domain=OPENTLC.COM -w ipa_host_password -N -U mkhomedir no-dns-sshfp hostname= bastion_public_dns_chomped ipa_additional_options|d when ipa_host_password is defined register ipa_r1 ignore_errors True

AnsibleTask shell /usr/sbin/ipa-client-install uninstall rm -f /var/lib/ipa-client/sysrestore.state /usr/sbin/ipa-client-install domain=OPENTLC.COM -w ipa_host_password -N -U mkhomedir no-dns-sshfp hostname= bastion_public_dns_chomped ipa_additional_options|d when ipa_host_password is defined ipa_r1 is failed register ipa_r until ipa_r is succeeded retries 5

AnsibleTask command /usr/sbin/ipa-client-install domain=OPENTLC.COM -p ipa_kerberos_user -w ipa_kerberos_password -N -U mkhomedir no-dns-sshfp hostname= bastion_public_dns_chomped ipa_additional_options|d when ipa_host_password is not defined ipa_kerberos_user is defined ipa_kerberos_password is defined register ipa_r1 ignore_errors True

AnsibleTask shell /usr/sbin/ipa-client-install uninstall rm -f /var/lib/ipa-client/sysrestore.state /usr/sbin/ipa-client-install domain=OPENTLC.COM -p ipa_kerberos_user -w ipa_kerberos_password -N -U mkhomedir no-dns-sshfp hostname= bastion_public_dns_chomped ipa_additional_options|d when ipa_host_password is not defined ipa_kerberos_user is defined ipa_kerberos_password is defined ipa_r1 is failed register ipa_r until ipa_r is succeeded retries 5

AnsibleTask copy src role_path /files/ipa_optimize.sh dest /opt/ipa_optimize.sh owner root group root mode,448 notify Run ipa_optimize.sh

AnsibleTask service name sssd state restarted register sssd_restart_result retries 6 delay 10 until sssd_restart_result is succeeded

AnsibleTask shell ls -1 /etc/yum.repos.d/ register repodircontents tags configure_repos remove_existing_repos

AnsibleTask file path /etc/yum.repos.d/ item state absent with_items repodircontents.stdout_lines ignore_errors True tags configure_repos remove_existing_repos

AnsibleTask shell /usr/bin/subscription-manager list all available matches= rhn_pool_id_string awk ID/ print 3 head -1 register pool_id ignore_errors False until pool_id succeeded retries 15 delay 10

AnsibleTask shell /usr/bin/subscription-manager attach pool= pool_id.stdout register task_result until task_result.rc 0 retries 15 delay 10 ignore_errors False

AnsibleTask template src ANSIBLE_REPO_PATH /configs/ env_type /files/repos_template.j2 dest /etc/yum.repos.d/open_ env_type .repo tags create_open_repo_template ignore_errors True

AnsibleTask shell yum repolist tags configure_repos run_yum_repolist

AnsibleTask command systemctl status firewalld register firewalld_status failed_when False changed_when False

AnsibleTask command systemctl status iptables register iptables_status failed_when False changed_when False

AnsibleTask set_fact mysql_username lookup length=5 chars=ascii_letters lower when mysql_username is undefined and mysql_username|trim run_once True

AnsibleTask set_fact mysql_root_username root when mysql_root_username is undefined and mysql_root_username|trim run_once True

AnsibleTask set_fact mysql_password lookup length=10 chars=ascii_letters digits hexdigits when mysql_password is undefined and mysql_password|trim run_once True

AnsibleTask set_fact mysql_root_password lookup length=10 chars=ascii_letters digits hexdigits when mysql_root_password is undefined and mysql_root_password|trim run_once True

AnsibleTask file state directory owner root group root mode g+rw path mysql_storage_dir

AnsibleTask template src mysql_name .j2 dest systemd_environmentfile_dir mysql_name notify Restart MySQL Service

AnsibleTask template src mysql_service .j2 dest systemd_service_dir mysql_service notify Restart MySQL Service

AnsibleTask set_fact postgresql_username lookup length=5 chars=ascii_letters lower when postgresql_username is undefined and postgresql_username|trim

AnsibleTask set_fact postgresql_password lookup length=10 chars=ascii_letters digits hexdigits when postgresql_password is undefined and postgresql_password|trim

AnsibleTask set_fact postgresql_admin_user lookup length=5 chars=ascii_letters lower when postgresql_admin_user is undefined and postgresql_admin_user|trim

AnsibleTask set_fact postgresql_admin_password lookup length=10 chars=ascii_letters digits hexdigits when postgresql_admin_password is undefined and postgresql_admin_password|trim

AnsibleTask file state directory owner root group root mode g+rw path postgresql_storage_dir notify Restart PostgreSQL Service

AnsibleTask template src postgresql_name .j2 dest systemd_environmentfile_dir postgresql_name notify Restart PostgreSQL Service

AnsibleTask template src postgresql_service .j2 dest systemd_service_dir postgresql_service notify Restart PostgreSQL Service

AnsibleTask template src quay_name .j2 dest systemd_environmenfile_dir quay_name notify Restart quay service

AnsibleTask template src quay_service .j2 dest systemd_service_dir quay_service notify Restart quay service

AnsibleTask set_fact container_credentials_file_content remote_container_credentials_file.content| b64decode from_json

AnsibleTask set_fact quay_container_credentials quay_registry_server quay_registry_email quay_registry_auth

AnsibleTask set_fact container_credentials_file_content container_credentials_file_content combine quay_container_credentials recursive=True

AnsibleTask file state directory path container_credentials_file dirname

AnsibleTask copy content container_credentials_file_content to_nice_json dest container_credentials_file

AnsibleTask fail msg Invalid Database Type must be or when database_type not in postgresql mysql

AnsibleTask set_fact quay_db_uri postgresql_db_uri when database_type postgresql

AnsibleTask set_fact quay_db_uri mysql_db_uri when database_type mysql

AnsibleTask file state directory owner root group root mode g+rw path item with_items quay_config_dir quay_storage_dir

AnsibleTask copy src item.src dest item.dest notify Restart quay service with_items quay_ssl_key_file quay_config_dir /ssl.key quay_ssl_cert_file quay_config_dir /ssl.cert

AnsibleTask template src config.yaml.j2 dest quay_config_dir /config.yaml owner root group root mode g+rw notify Restart quay service when not quay_config_stat_result.stat.exists

AnsibleTask file state directory owner root group root mode g+rw path redis_storage_dir

AnsibleTask template src redis_name .j2 dest systemd_environmenfile_dir redis_name notify Restart Redis Service

AnsibleTask template src redis_service .j2 dest systemd_service_dir redis_service notify Restart Redis Service

AnsibleTask debug msg Do the needful to deploy host-jenkins-server

AnsibleTask template src reverse-proxy.conf.j2 dest /etc/httpd/conf.d/default.conf

AnsibleTask shell ansible-playbook -i /etc/ansible/hosts /root/openshift-ansible/playbooks/byo/config.yml register openshift_install_log tags openshift_installer ignore_errors True when clone_openshift_ansible|d false |bool osrelease is version_compare 3.9

AnsibleTask shell ansible-playbook -i /etc/ansible/hosts /usr/share/ansible/openshift-ansible/playbooks/byo/config.yml register openshift_install_log tags openshift_installer ignore_errors True when not clone_openshift_ansible|d false |bool osrelease is version_compare 3.9

AnsibleTask fail msg FAIL project_tag byo/config failed when openshift_install_log is failed osrelease is version_compare 3.9 tags openshift_installer

AnsibleTask shell ansible-playbook -i /etc/ansible/hosts /root/openshift-ansible/playbooks/prerequisites.yml register openshift_install_log tags openshift_installer ignore_errors True when clone_openshift_ansible|d false |bool osrelease is version_compare 3.9

AnsibleTask shell ansible-playbook -i /etc/ansible/hosts /usr/share/ansible/openshift-ansible/playbooks/prerequisites.yml register openshift_install_log tags openshift_installer ignore_errors True when not clone_openshift_ansible|d false |bool osrelease is version_compare 3.9

AnsibleTask fail msg FAIL project_tag prerequisites failed when openshift_install_log is failed osrelease is version_compare 3.9 tags openshift_installer

AnsibleTask shell ansible-playbook -i /etc/ansible/hosts /root/openshift-ansible/playbooks/deploy_cluster.yml register openshift_install_log tags openshift_installer ignore_errors True when clone_openshift_ansible|d false |bool osrelease is version_compare 3.9

AnsibleTask shell ansible-playbook -i /etc/ansible/hosts /usr/share/ansible/openshift-ansible/playbooks/deploy_cluster.yml register openshift_install_log tags openshift_installer ignore_errors True when not clone_openshift_ansible|d false |bool osrelease is version_compare 3.9

AnsibleTask fail msg FAIL project_tag deploy_cluster failed when openshift_install_log is failed osrelease is version_compare 3.9 tags openshift_installer

AnsibleTask command restorecon -R item with_items /var/named /etc/named.conf

AnsibleTask service name item enabled True state restarted with_items rpcbind nfs-server nfs-lock nfs-idmap

AnsibleTask file name /srv/nfs/ item state directory mode,511 owner nfsnobody group nfsnobody recurse True with_items nfs_shares notify restart nfs services run_once True

AnsibleTask template src ./sysconfig.docker-storage-setup.j2 dest /etc/sysconfig/docker-storage-setup

AnsibleTask service name ntpd state started enabled True tags enable_ntpd_on_host

AnsibleTask shell for i in seq 40 do docker pull item v osrelease RET= RET 0 exit 0 sleep 5 done exit RET async 1800 poll 0 with_items openshift3/ose-deployer openshift3/ose-keepalived-ipfailover openshift3/ose-pod openshift3/ose openshift3/node when software_to_deploy osrelease is defined

AnsibleTask shell for i in seq 40 do docker pull item RET= RET 0 exit 0 sleep 5 done exit RET async 1800 poll 0 with_items rhgs3/rhgs-volmanager-rhel7 latest heketi/heketi dev rhgs3/rhgs-gluster-block-prov-rhel7 latest when install_glusterfs|d false |bool software_to_deploy inventory_hostname in groups

AnsibleTask shell for i in seq 40 do docker pull openshift3/ item RET= RET 0 exit 0 sleep 5 done exit RET async 1800 poll 0 with_items ose-docker-registry v osrelease ose-haproxy-router v osrelease logging-auth-proxy v repo_version logging-curator v repo_version logging-elasticsearch v repo_version logging-fluentd v repo_version logging-kibana v repo_version metrics-cassandra v repo_version metrics-hawkular-metrics v repo_version metrics-heapster v repo_version oauth-proxy v repo_version ose-service-catalog v repo_version prometheus-alert-buffer v repo_version prometheus-alertmanager v repo_version prometheus v repo_version registry-console v repo_version when software_to_deploy osrelease is defined inventory_hostname in groups

AnsibleTask copy src ANSIBLE_REPO_PATH /workdir/hosts- env_type guid dest /etc/ansible/hosts

AnsibleTask shell htpasswd -nb userN user_password |cut -d -f2 register htpasswd_line when user_password is defined user_password_hash is not defined

AnsibleTask set_fact user_password_hash htpasswd_line.stdout when user_password is defined user_password_hash is not defined htpasswd_line is succeeded

AnsibleTask shell htpasswd -nb admin admin_password |cut -d -f2 register htpasswd_line when admin_password_hash is not defined admin_password is defined

AnsibleTask set_fact admin_password_hash htpasswd_line.stdout when admin_password is defined admin_password_hash is not defined htpasswd_line is succeeded

AnsibleTask template src ../configs/ env_type /files/htpasswd.openshift dest /root/htpasswd.openshift

AnsibleTask set_fact AZURE_CLIENT_ID azure_service_principal AZURE_TENANT azure_tenant AZURE_SECRET azure_password AZURE_SUBSCRIPTION_ID azure_subscription_id AZURE_CONFIG_DIR /tmp/.azure- project_tag

AnsibleTask debug var cloudformation_out tags provision_cf_template when not cloudformation_out is succeeded

AnsibleTask debug var cloudformation_out verbosity,2 tags provision_cf_template

AnsibleTask set_fact aws_region_final aws_region_loop cloudformation_out_final cloudformation_out when cloudformation_out is succeeded

AnsibleTask debug msg FALLBACK REGION aws_region_final when cloudformation_out is succeeded aws_region aws_region_final

AnsibleTask template src ANSIBLE_REPO_PATH /configs/ env_type /files/cloud_providers/ cloud_provider _cloud_template.j2 dest ANSIBLE_REPO_PATH /workdir/ env_type guid cloud_provider _cloud_template-orig tags aws_infrastructure_deployment gen_cf_template

AnsibleTask shell jq -c ANSIBLE_REPO_PATH /workdir/ env_type guid cloud_provider _cloud_template-orig ../workdir/ env_type guid cloud_provider _cloud_template register jq_minify ignore_errors True tags aws_infrastructure_deployment gen_cf_template minify_template

AnsibleTask command cp ANSIBLE_REPO_PATH /workdir/ env_type guid cloud_provider _cloud_template-orig ../workdir/ env_type guid cloud_provider _cloud_template when jq_minify is failed tags aws_infrastructure_deployment gen_cf_template minify_template

AnsibleTask environment AWS_ACCESS_KEY_ID aws_access_key_id AWS_SECRET_ACCESS_KEY aws_secret_access_key AWS_DEFAULT_REGION aws_region_final|d aws_region command aws cloudformation validate-template region aws_region_final d aws_region default region default template-body file //../workdir/ env_type guid cloud_provider _cloud_template changed_when False register cloudformation_validation until cloudformation_validation is succeeded delay 20 tags aws_infrastructure_deployment validate_cf_template

AnsibleTask become False environment AWS_ACCESS_KEY_ID aws_access_key_id AWS_SECRET_ACCESS_KEY aws_secret_access_key AWS_DEFAULT_REGION aws_region_final|d aws_region command aws ec2 reboot-instances instance-ids instance_id delegate_to localhost when rwait is failed

AnsibleTask become False environment AWS_ACCESS_KEY_ID aws_access_key_id AWS_SECRET_ACCESS_KEY aws_secret_access_key AWS_DEFAULT_REGION aws_region_final|default aws_region command aws ec2 reboot-instances instance-ids instance_id delegate_to localhost when rwait is failed

AnsibleTask command oc get project aws-service-broker register awsbroker_exists changed_when False ignore_errors True

AnsibleTask shell oc new-project aws-service-broker when osrelease is version_compare 3.10

AnsibleTask shell /root/aws_broker_install/deploy_aws_broker.sh args chdir /root/aws_broker_install

AnsibleTask service name atomic-openshift-master-api state restarted

AnsibleTask copy src /root/.acme.sh/ openshift_master_cluster_hostname openshift_master_cluster_hostname .cer dest /etc/origin/master/named_certificates/ openshift_master_cluster_hostname .cer backup True notify restart master API

AnsibleTask shell /root/acme.sh/acme.sh acme_args|d issue -d master_lb_dns -d cloudapps_suffix dns dns_aws args chdir /root/acme.sh when cacert.stat.exists|bool false cloud_provider

AnsibleTask shell /root/acme.sh/acme.sh acme_args|d issue -d master_lb_dns -d cloudapps_suffix dns dns_azure args chdir /root/acme.sh when cacert.stat.exists|bool false cloud_provider

AnsibleTask copy src deploy_LE_certs.yml dest /root/deploy_LE_certs.yml

AnsibleTask command oc get service nexus -n desired_project register nexus_already_installed ignore_errors True changed_when False

AnsibleTask copy src files/nexus nexus_version -persistent-template.yaml dest /root/nexus-template.yaml when nexus_already_installed is failed

AnsibleTask command oc new-app -f /root/nexus-template.yaml param=VOLUME_CAPACITY=10Gi param=MAX_MEMORY=8Gi -n desired_project when nexus_already_installed is failed

AnsibleTask command oc get dc/nexus -o yaml -n desired_project register result until availableReplicas 1 in result.stdout retries 5 delay 60 changed_when False when nexus_already_installed is failed

AnsibleTask command oc get project openwhisk register openwhisk_exists changed_when False ignore_errors True when install_openwhisk

AnsibleTask command oc new-project openwhisk when openwhisk_exists failed install_openwhisk

AnsibleTask shell oc process -f https //raw.githubusercontent.com/apache/incubator-openwhisk-deploy-openshift/master/persistent-template.yml|oc create -f -n openwhisk when openwhisk_exists failed install_openwhisk osrelease is version_compare 3.10

AnsibleTask shell oc process -f https //raw.githubusercontent.com/apache/incubator-openwhisk-deploy-openshift/master/persistent-template.yml /root/openwhisk.json when openwhisk_exists failed install_openwhisk osrelease is version_compare 3.10

AnsibleTask shell oc create -f /root/openwhisk.json -n openwhisk when openwhisk_exists failed install_openwhisk osrelease is version_compare 3.10

AnsibleTask file path /var/lib/node_exporter/textfile_collector state directory owner root group root mode,509

AnsibleTask shell oc label node infranode1 chomped_zone_internal_dns prometheus-host=true overwrite

AnsibleTask command oc get project prometheus register prometheus_project_present ignore_errors True

AnsibleTask shell oc new-project prometheus display-name= Prometheus Monitoring oc project default when prometheus_project_present failed

AnsibleTask shell oc annotate namespace prometheus openshift.io/node-selector= when prometheus_project_present failed

AnsibleTask shell oc set env dc router -n default list|grep STATS_PASSWORD|awk -F print 2 when prometheus_project_present failed register router_password

AnsibleTask shell oc new-app -f https //raw.githubusercontent.com/wkulhanek/openshift-prometheus/ prometheus_tag /prometheus.yaml param ROUTER_PASSWORD= router_password.stdout -n prometheus when prometheus_project_present failed

AnsibleTask shell oc adm policy add-scc-to-user privileged system serviceaccount prometheus prometheus when prometheus_project_present failed

AnsibleTask shell oc adm policy add-scc-to-user privileged system serviceaccount prometheus default when prometheus_project_present failed

AnsibleTask shell oc new-app -f https //raw.githubusercontent.com/wkulhanek/openshift-prometheus/ prometheus_tag /node-exporter/node-exporter.yaml -n prometheus when prometheus_project_present failed

AnsibleTask shell oc new-app -f https //raw.githubusercontent.com/wkulhanek/openshift-prometheus/ prometheus_tag /alertmanager/alertmanager.yaml param WEBHOOK_URL= webhook_url -n prometheus when prometheus_project_present failed

AnsibleTask command oc patch dc alertmanager patch spec template spec nodeSelector env infra -n prometheus when prometheus_project_present failed

AnsibleTask shell oc new-app -f https //raw.githubusercontent.com/wkulhanek/docker-openshift-grafana/ grafana_tag /grafana.yaml -n prometheus when prometheus_project_present failed

AnsibleTask command oc patch dc grafana patch spec template spec nodeSelector env infra -n prometheus when prometheus_project_present failed

AnsibleTask file path /var/lib/prometheus-data state directory group root owner root mode,511 setype svirt_sandbox_file_t

AnsibleTask template src tower_cli.j2 dest ~/.tower_cli.cfg mode,384

AnsibleTask command tower-cli setting modify LICENSE /root/license.txt

AnsibleTask template src read_only.json dest /tmp/read_only.json

AnsibleTask shell tower-cli credential create credential-type Web Services name AWS Access Key organization Default inputs /tmp/read_only.json

AnsibleTask file path /root/ansible-tower-setup-latest state absent

AnsibleTask shell mv /root/ansible-tower-setup-* /root/ansible-tower-setup-latest

AnsibleTask template src tower_template_inventory.j2 dest /root/ansible-tower-setup-latest/inventory tags install-tower

AnsibleTask shell /root/ansible-tower-setup-latest/setup.sh async 3600 poll 36 tags install-tower

AnsibleTask shell bash /root/opentlc-sample-config.sh when install_ipa bool

AnsibleTask command firewall-cmd reload when configure_firewalld true

AnsibleTask shell ip addr show eth0 grep awk print 2 cut -d/ -f1 register local_ip

AnsibleTask shell ipa-server-install -U setup-dns ip-address= local_ip.stdout hostname= ipa_public_dns_chomped domain= ipa_domain realm= ipa_realm ds-password= ipa_directory_manager_password admin-password= ipa_principal_user_password no-forwarders ignore_errors True

AnsibleTask set_fact nodejs_install_npm_user ansible_user default lookup when nodejs_install_npm_user is not defined

AnsibleTask file path npm_config_prefix owner nodejs_install_npm_user group nodejs_install_npm_user state directory

AnsibleTask template src npm.sh.j2 dest /etc/profile.d/npm.sh mode,420

AnsibleTask set_fact nodejs_rhel_rpm_dir pub_ nodejs_version when nodejs_version 0.10

AnsibleTask set_fact nodejs_rhel_rpm_dir pub when nodejs_version 0.10

AnsibleTask file path /root/s2i state directory tags install_openshift_client_vm_packages

AnsibleTask copy remote_src True src /root/s2i/s2i dest /usr/local/bin/s2i group root owner root mode,493 tags install_openshift_client_vm_packages

AnsibleTask file dest /root/s2i state absent tags install_openshift_client_vm_packages

AnsibleTask file dest /root/s2i.tar.gz state absent tags install_openshift_client_vm_packages

AnsibleTask file path /home/ec2-user/.bash-git-prompt owner ec2-user group ec2-user recurse True tags install_bash_customization

AnsibleTask copy src ../files/bashrc dest /root/.bashrc mode,420 owner root group root tags install_bash_customization

AnsibleTask copy src ../files/bashrc dest /home/ec2-user/.bashrc mode,420 owner ec2-user group ec2-user tags install_bash_customization

AnsibleTask copy src ../files/bash_profile dest /root/.bash_profile mode,420 owner root group root tags install_bash_customization

AnsibleTask copy src ../files/bash_profile dest /home/ec2-user/.bash_profile mode,420 owner ec2-user group ec2-user tags install_bash_customization

AnsibleTask shell curl insecure -X POST //secure-sso- sso_project ocp_apps_domain /auth/realms/master/protocol/openid-connect/token -H application/x-www-form-urlencoded -d -d -d -d register token_text

AnsibleTask shell curl insecure //secure-sso- sso_project ocp_apps_domain /auth/admin/realms/insurance/clients -H application/json -H Bearer TKN register clients_text

AnsibleTask shell curl insecure //secure-sso- sso_project ocp_apps_domain /auth/admin/realms/insurance/clients/1/service-account-user -H application/json -H Bearer TKN register users_text

AnsibleTask shell curl insecure //secure-sso- sso_project ocp_apps_domain /auth/admin/realms/insurance/users/ IdUser /role-mappings/clients/ IdClient /available -H application/json -H Bearer TKN register roles_text

AnsibleTask shell curl insecure -X POST //secure-sso- sso_project ocp_apps_domain /auth/admin/realms/insurance/users/ IdUser /role-mappings/clients/ IdClient -H application/json -H Bearer TKN -d IdRole to_json register outcome_text

AnsibleTask shell curl insecure //secure-sso- sso_project ocp_apps_domain /auth/admin/realms/insurance/clients/1/client-secret -H application/json -H Bearer TKN register secret_text

AnsibleTask shell oc get dc system-app -o jsonpath= .spec.template.spec.containers .name== system-provider .env .name== ADMIN_ACCESS_TOKEN .value -n threescale_project register env_text

AnsibleTask shell curl insecure -X POST //secure-sso- sso_project ocp_apps_domain /auth/realms/master/protocol/openid-connect/token -H application/x-www-form-urlencoded -d -d -d -d register token2_text

AnsibleTask debug msg Post-Software checks completed successfully

AnsibleTask debug msg Pre-Software checks completed successfully

AnsibleTask debug msg Pre-Software checks completed successfully Removed

AnsibleTask shell oc delete clusterresourcequota clusterquota- ocp_username guid ignore_errors True

AnsibleTask shell oc delete clusterresourcequota clusterquota- ocp_username ignore_errors True

AnsibleTask shell oc delete project sso_project ignore_errors True

AnsibleTask shell oc delete project threescale_project ignore_errors True

AnsibleTask shell oc delete project service_project ignore_errors True

AnsibleTask shell oc delete project www_project ignore_errors True

AnsibleTask debug msg Post-Software checks completed successfully Removed

AnsibleTask shell oc new-project sso_project Hat Single Sign On ignore_errors True

AnsibleTask shell oc create -f https //raw.githubusercontent.com/jboss-openshift/application-templates/ sso_version /secrets/sso-app-secret.json -n sso_project

AnsibleTask shell oc policy add-role-to-user view system serviceaccount sso_project sso-service-account -n sso_project

AnsibleTask shell oc new-app sso71-https -p HTTPS_NAME=jboss -p HTTPS_PASSWORD=mykeystorepass -p SSO_ADMIN_USERNAME=keyadmin -p SSO_ADMIN_PASSWORD=keypassword -n sso_project

AnsibleTask shell oc new-project service_project Center Backend Service ignore_errors True

AnsibleTask command oc label namespace service_project AAD= guid

AnsibleTask shell oc process -f https //raw.githubusercontent.com/jbossdemocentral/3scale-security-oidc-demo/master/support/templates/amq63-basic-template.json -p MQ_USERNAME=admin -p MQ_PASSWORD=admin oc create -n service_project -f

AnsibleTask shell oc process -f https //raw.githubusercontent.com/jbossdemocentral/3scale-security-oidc-demo/master/support/templates/accidentalert-backend-template.json -p APP_NAME=accidentalert-backend -p GIT_REPO=https //github.com/jbossdemocentral/3scale-security-oidc-demo.git -p GIT_REF=master -p CONTEXT_DIR=/projects/myaccidentalert -p ACTIVEMQ_BROKER_USERNAME=admin -p ACTIVEMQ_BROKER_PASSWORD=admin -p CPU_REQUEST=1 -p MEMORY_REQUEST=512Mi -p MEMORY_LIMIT=1024Mi oc create -n service_project -f

AnsibleTask shell oc new-project www_project Center Web Application ignore_errors True

AnsibleTask shell oc process -f https //raw.githubusercontent.com/jbossdemocentral/3scale-security-oidc-demo/master/support/templates/accidentalert-ui-template.json -p //sso- sso_project ocp_apps_domain -p //accidentalert-backend- service_project ocp_apps_domain -p guid ocp_apps_domain oc -n www_project create -f

AnsibleTask shell oc new-project threescale_project API Management ignore_errors True

AnsibleTask command oc label namespace threescale_project AAD= guid

AnsibleTask shell oc new-app -f https //raw.githubusercontent.com/jbossdemocentral/3scale-security-oidc-demo/master/support/templates/amp-template.json param WILDCARD_DOMAIN= guid ocp_apps_domain param ADMIN_PASSWORD=password param WILDCARD_POLICY=Subdomain -n threescale_project

AnsibleTask shell oc policy add-role-to-user admin ocp_username -n sso_project

AnsibleTask shell oc policy add-role-to-user admin ocp_username -n threescale_project

AnsibleTask shell oc policy add-role-to-user admin ocp_username -n service_project

AnsibleTask shell oc policy add-role-to-user admin ocp_username -n www_project

AnsibleTask shell oadm groups add-users item ocp_username register groupadd_register with_items ocp_user_groups when ocp_username is defined and ocp_user_groups is defined

AnsibleTask shell oc create clusterquota clusterquota- ocp_username guid project-annotation-selector=openshift.io/requester= ocp_username hard requests.cpu= quota_requests_cpu hard limits.cpu= quota_limits_cpu hard requests.memory= quota_requests_memory hard limits.memory= quota_limits_memory hard configmaps= quota_configmaps hard pods= quota_pods hard persistentvolumeclaims= quota_persistentvolumeclaims hard services= quota_services hard secrets= quota_secrets hard requests.storage= quota_requests_storage ignore_errors True

AnsibleTask shell oc adm groups remove-users item ocp_username with_items ocp_user_groups ignore_errors True

AnsibleTask command oc get projects -o json register all_projects

AnsibleTask debug msg found user project item.metadata.name verbosity,1 when item.metadata.annotations is defined item.metadata.annotations ocp_username with_items projects

AnsibleTask command oc delete project item.metadata.name when item.metadata.annotations is defined item.metadata.annotations ocp_username item.status.phase is defined item.status.phase Terminating with_items projects

AnsibleTask command oc get build -o json -n ocp_project register build_state changed_when False retries build_status_retries delay build_status_delay vars query items status.phase .metadata.annotations openshift.io/build-config.name until build_state.stdout |from_json |json_query query |intersect build_to_wait |length 0

AnsibleTask command oc get rc -o json -n ocp_project register rc_state changed_when False retries deploy_status_retries delay deploy_status_delay until rc_state.stdout |from_json |json_query status.readyReplicas || status.readyReplicas ` 0 ` .metadata.annotations openshift.io/deployment-config.name |intersect pod_to_wait |length 0

AnsibleTask shell oc new-project ocp_project display-name= ocp_project tags all

AnsibleTask command oc label namespace ocp_project AAD= guid tags all

AnsibleTask shell oc new-app -f modified_template_path -p ADMIN_PASSWORD= amp_admin_passwd -p TENANT_NAME= ocp_project -p MASTER_NAME= ocp_project -master -p MASTER_PASSWORD= master_passwd -p MASTER_ACCESS_TOKEN= master_access_token -p WILDCARD_DOMAIN= ocp_apps_domain -n ocp_project new_app_output tags all

AnsibleTask debug msg new-app output available at new_app_output tags all

AnsibleTask command oc rollout resume dc/ item -n ocp_project with_items backend-redis system-memcache system-mysql system-redis zync-database tags all

AnsibleTask command oc rollout resume dc/ item -n ocp_project with_items backend-listener backend-worker tags all

AnsibleTask command oc rollout resume dc/ item -n ocp_project with_items system-app tags all

AnsibleTask command oc rollout resume dc/ item -n ocp_project with_items system-resque system-sidekiq system-sphinx backend-cron tags all

AnsibleTask command oc rollout resume dc/ item -n ocp_project with_items apicast-staging apicast-production apicast-wildcard-router tags all

AnsibleTask command oc rollout resume dc/ item -n ocp_project with_items zync tags all

AnsibleTask template src templates/create_tenants.sh dest /tmp/create_tenants.sh mode,493 tags all tenants

AnsibleTask debug msg Creation of tenants complete output files available at tenant_output_dir tags all tenants

AnsibleTask shell ansible-playbook -i enmasse -c local enmasse_dest_dir /ansible/playbooks/openshift/ enmasse_template_file -e namespace= namespace -e multitenant=true -e address_space_type=standard -e address_space_plan=unlimited-standard /tmp/ namespace /enmasse_install_standard.log

AnsibleTask shell oc annotate namespace namespace openshift.io/requester= ocp_username overwrite

AnsibleTask shell oc policy add-role-to-user admin ocp_username -n namespace

AnsibleTask debug msg Post-Software checks completed successfully when not silent|bool

AnsibleTask command oadm groups add-users item ocp_username register groupadd_register with_items ocp_user_groups when ocp_username is defined ocp_user_groups default length 0

AnsibleTask command oc create clusterresourcequota clusterquota- ocp_username guid project-annotation-selector=openshift.io/requester= ocp_username hard requests.cpu= quota_requests_cpu hard limits.cpu= quota_limits_cpu hard requests.memory= quota_requests_memory hard limits.memory= quota_limits_memory hard configmaps= quota_configmaps hard pods= quota_pods hard persistentvolumeclaims= quota_persistentvolumeclaims hard services= quota_services hard secrets= quota_secrets hard requests.storage= quota_requests_storage ignore_errors True

AnsibleTask command oc policy add-role-to-user view ocp_username -n gpte_jenkins_project ignore_errors True

AnsibleTask command oadm groups remove-users item ocp_username register groupadd_register with_items ocp_user_groups when ocp_username is defined ocp_user_groups default length 0

AnsibleTask command oc delete clusterresourcequota clusterquota- ocp_username guid ignore_errors True

AnsibleTask command oc delete clusterresourcequota clusterquota- ocp_username ignore_errors True

AnsibleTask command oc policy remove-role-from-user view ocp_username -n gpte_jenkins_project ignore_errors True

AnsibleTask shell oc adm groups add-users item ocp_username register groupadd_register with_items ocp_user_groups when ocp_username is defined and ocp_user_groups is defined

AnsibleTask command oc label namespace ocp_constraints_project AAD= guid

AnsibleTask shell oc policy add-role-to-user admin ocp_username -n ocp_constraints_project

AnsibleTask shell oc delete limitrange ocp_constraints_project -core-resource-limits -n ocp_constraints_project

AnsibleTask template src templates/constraints_limitrange.yaml dest /tmp/ ocp_constraints_project _limitrange.yaml

AnsibleTask shell oc annotate namespace ocp_constraints_project openshift.io/requester= ocp_username overwrite

AnsibleTask shell oc create -f https //raw.githubusercontent.com/gpe-mw-training/bxms_decision_mgmt_foundations_lab/master/resources/rhdm7-full-ng.yaml -n ocp_project

AnsibleTask shell oc new-app name=dm-demo -n ocp_project template=rhdm7-full-ng -p RHT_IMAGE_STREAM_NAMESPACE= ocp_project -p KIE_ADMIN_PWD=test1234 -p MAVEN_REPO_PASSWORD=test1234 -p CLUSTER= ocp_apps_domain -p PROJECT= ocp_project -p APPLICATION_NAME=gpte /tmp/ guid /gpte-dm-demo.txt

AnsibleTask shell oc rollout resume dc/gpte-rhdmcentr -n ocp_project

AnsibleTask shell oc rollout resume dc/gpte-kieserver -n ocp_project

AnsibleTask shell oc rollout resume dc/gpte-ng-dmf -n ocp_project

AnsibleTask shell oc annotate namespace ocp_project openshift.io/requester= ocp_username overwrite

AnsibleTask shell oc policy add-role-to-user admin ocp_username -n ocp_project

AnsibleTask template src templates/rhpam70-image-streams.yaml dest /tmp/ guid /rhpam70-image-streams.yaml

AnsibleTask shell oc create -f /tmp/ guid /rhpam70-image-streams.yaml -n ocp_project

AnsibleTask shell oc new-app template= pam_secrets_template_name -p SECRET_NAME= kserver_app_secret -n ocp_project

AnsibleTask shell oc new-app template= pam_secrets_template_name -p SECRET_NAME= bcentral_app_secret -n ocp_project

AnsibleTask shell oc new-app name=pam-lab -n ocp_project template= pam_template_name -p IMAGE_STREAM_NAMESPACE= ocp_project -p KIE_ADMIN_PWD= kie_admin_passwd -p MAVEN_REPO_URL= MAVEN_REPO_URL -p APPLICATION_NAME= app_name -p BUSINESS_CENTRAL_HTTPS_SECRET= bcentral_app_secret -p KIE_SERVER_HTTPS_SECRET= kserver_app_secret -n ocp_project /tmp/ guid /gpte-pam-lab.txt

AnsibleTask shell oc rollout resume dc/ app_name -rhpamcentr -n ocp_project

AnsibleTask shell oc rollout resume dc/ app_name -kieserver -n ocp_project

AnsibleTask command oc create clusterquota clusterquota- ocp_username guid project-annotation-selector=openshift.io/requester= ocp_username hard requests.cpu= quota_requests_cpu hard limits.cpu= quota_limits_cpu hard requests.memory= quota_requests_memory hard limits.memory= quota_limits_memory hard configmaps= quota_configmaps hard pods= quota_pods hard persistentvolumeclaims= quota_persistentvolumeclaims hard services= quota_services hard secrets= quota_secrets hard requests.storage= quota_requests_storage ignore_errors True

AnsibleTask command oc get projects -o json as ocp_username register all_projects

AnsibleTask command oc delete project item.metadata.name when item.metadata.annotations is defined item.metadata.annotations ocp_username item.status.phase is defined item.status.phase Terminating item.metadata.labels is not defined or item.metadata.labels is not defined with_items projects loop_control label item.metadata.name default item

AnsibleTask shell oc delete project ocp_project ignore_errors True

AnsibleTask shell oc new-project ocp_project display-name= Client Onboarding description= Red Hat JBoss BPM Suite Entando Onboarding FSI Demo ignore_errors True

AnsibleTask shell oc create -f https //raw.githubusercontent.com/jboss-openshift/application-templates/master/processserver/processserver64-image-stream.json -n ocp_project

AnsibleTask shell oc create -f https //raw.githubusercontent.com/jboss-openshift/application-templates/master/processserver/processserver64-postgresql-s2i.json -n ocp_project

AnsibleTask shell oc process -f /tmp/ guid /secrets-and-accounts.yaml oc create -n ocp_project -f

AnsibleTask shell oc policy add-role-to-user view system serviceaccount ocp_project processserver-service-account

AnsibleTask shell oc new-app https //github.com/entando/fsi-customer-openshift name fsi-customer -n ocp_project

AnsibleTask shell oc expose svc fsi-customer name=entando-fsi-customer path=/fsi-customer/ -n ocp_project

AnsibleTask shell oc new-app entando-base-image-432 latest~https //github.com/entando/fsi-backoffice-openshift name fsi-backoffice strategy=docker allow-missing-imagestream-tags -n ocp_project

AnsibleTask shell oc expose dc fsi-backoffice port 8080 -n ocp_project

AnsibleTask shell oc expose svc fsi-backoffice name=entando-fsi-backoffice path=/fsi-backoffice/ -n ocp_project

AnsibleTask shell oc get route entando-fsi-customer awk 1 print 2 register oc_get_route_output

AnsibleTask set_fact fsi_customer_route oc_get_route_output.stdout

AnsibleTask shell oc process -f /tmp/ guid /client-onboarding-process.yaml -p GIT_URI= https //github.com/entando/fsi-onboarding-bpm -p GIT_REF= master -p ENTANDO_BASE_URL= http // fsi_customer_route /fsi-customer/ -n ocp_project oc create -f -n ocp_project

AnsibleTask shell oc new-project ocp_project display-name= ocp_project

AnsibleTask shell oc create -f syndesisio_template_yml -n ocp_project

AnsibleTask shell oc create -f fuse_ignite_is_yaml -n ocp_project

AnsibleTask shell oc new-app ignite_template_name -p ROUTE_HOSTNAME=fuse. ocp_project ocp_apps_domain -p OPENSHIFT_MASTER=https //master ocp_domain -p OPENSHIFT_PROJECT= ocp_project -p POSTGRESQL_MEMORY_LIMIT= POSTGRESQL_MEMORY_LIMIT -p PROMETHEUS_MEMORY_LIMIT= PROMETHEUS_MEMORY_LIMIT -p META_MEMORY_LIMIT= META_MEMORY_LIMIT -p SERVER_MEMORY_LIMIT= SERVER_MEMORY_LIMIT -p OPENSHIFT_OAUTH_CLIENT_SECRET= oc sa get-token syndesis-oauth-client -n ocp_project -p MAX_INTEGRATIONS_PER_USER= MAX_INTEGRATIONS_PER_USER -p IMAGE_STREAM_NAMESPACE= ocp_project -n ocp_project

AnsibleTask shell oc rollout resume dc/syndesis-oauthproxy dc/syndesis-db -n ocp_project

AnsibleTask shell oc scale dc/broker-amq replicas=1 -n ocp_project

AnsibleTask shell oc rollout resume dc/broker-amq -n ocp_project

AnsibleTask shell oc rollout resume dc/syndesis-meta -n ocp_project

AnsibleTask shell oc rollout resume dc/syndesis-server -n ocp_project

AnsibleTask shell oc rollout resume dc/syndesis-ui -n ocp_project

AnsibleTask shell oc rollout resume dc/syndesis-prometheus -n ocp_project

AnsibleTask shell oc policy add-role-to-user view -z default -n ocp_project

AnsibleTask template src templates/app-config.yaml dest /tmp/ ocp_project /app-config.yaml

AnsibleTask shell oc create configmap app-config from-file=/tmp/ ocp_project /app-config.yaml -n ocp_project

AnsibleTask template src templates/coolstore-catalog-mongodb-persistent.yaml dest /tmp/ ocp_project /coolstore-catalog-mongodb-persistent.yaml

AnsibleTask shell oc new-app -f /tmp/ ocp_project /coolstore-catalog-mongodb-persistent.yaml -p CATALOG_DB_USERNAME=mongo -p CATALOG_DB_PASSWORD=mongo -n ocp_project

AnsibleTask shell oc rollout resume dc/catalog-service -n ocp_project

AnsibleTask shell oc create -f fuse_is_url -n openshift ignore_errors True

AnsibleTask shell oc create -f fuse_artifact_base_url /quickstarts/ item -n openshift with_items fuse_components ignore_errors True

AnsibleTask shell oc new-project ocp_project display-name= IoT Demo guid description= Industry 4.0 IoT Demo ignore_errors True

AnsibleTask shell oc adm policy add-scc-to-user anyuid -z default -n ocp_project

AnsibleTask shell oc create -f /tmp/ guid /redhat-iot-rhpds-secret.yml -n ocp_project

AnsibleTask shell oc create secret generic ec-db from-literal=name=ecdb from-literal=username=redhat from-literal=password=RedHat123 -n ocp_project

AnsibleTask command openssl req -new -x509 -nodes -days item.days default 3650 -subj /C= item.country default /ST= item.state default /L= item.city default /O= item.organization default /OU= item.unit default /CN= item.name /emailAddress= item.email default -newkey rsa:2048 -keyout /tmp/ guid /certs/key.pem -out /tmp/ guid /certs/cert.pem args creates /tmp/ guid /certs/*.pem with_items openssl_self_signed

AnsibleTask shell oc create secret generic ec-crt from-file=crt=/tmp/ guid /certs/cert.pem from-file=key=/tmp/ guid /certs/key.pem from-file=ca=/tmp/ guid /certs/cert.pem -n ocp_project

AnsibleTask shell oc new-app -e MYSQL_USER=redhat -e MYSQL_PASSWORD=RedHat123 -e MYSQL_DATABASE=ecdb -e MYSQL_LOWER_CASE_TABLE_NAMES=1 -e NAMESPACE=openshift -e VOLUME_CAPACITY=1Gi -e MARIADB_VERSION=10.2 mariadb:10.2 -n ocp_project

AnsibleTask shell oc new-app -e -Des.http.cors.enabled=true -Des.http.cors.allow-origin=* -Xms256m -Xmx256m elasticsearch:5.4 -n ocp_project

AnsibleTask shell oc new-app -f /tmp/ guid /broker.yml -p IMAGE_VERSION=5.0.0 -p NAMESPACE= ocp_project -p EC_SECRET_DB=ec-db -p DISABLE_SSL=true -n ocp_project

AnsibleTask shell oc new-app -f /tmp/ guid /console.yml -p -p ocp_project -p -n ocp_project

AnsibleTask shell oc new-app -f /tmp/ guid /api.yml -p -p ocp_project -p -n ocp_project

AnsibleTask debug msg EC Console is running at http //ec-console- ocp_project ocp_apps_domain

AnsibleTask debug msg EC Broker is running at mqtt //ec-broker-mqtt. ocp_project ocp_apps_domain :1883

AnsibleTask set_fact ocp_project parksmap- guid ocp_project_completed parksmap- guid -completed

AnsibleTask shell oc delete project ocp_project_completed ignore_errors True

AnsibleTask shell oc new-project ocp_project_completed display-name= Parksmap completed description= Project with the Parksmap demo completed and guides ignore_errors True

AnsibleTask command oc label namespace ocp_project_completed AAD= guid

AnsibleTask shell oc apply -f /tmp/ guid /workshop-parksmap.yaml -n ocp_project_completed

AnsibleTask shell oc apply -f /tmp/ guid /workshop-nationalparks.yaml -n ocp_project_completed

AnsibleTask shell oc apply -f /tmp/ guid /workshop-mlbparks.yaml -n ocp_project_completed

AnsibleTask shell oc apply -f /tmp/ guid /workshopper-template.yaml -n ocp_project_completed

AnsibleTask shell oc new-app starter-guides -p CONSOLE_ADDRESS= ocp_master -p ROUTER_ADDRESS= ocp_apps_domain -p USER_PROJECT= ocp_project -p INFRA_PROJECT= ocp_project_completed -n ocp_project_completed

AnsibleTask debug msg Guide has been installed in http //guides- ocp_project_completed ocp_apps_domain

AnsibleTask command git clone https //github.com/openshift-roadshow/nationalparks.git args chdir /tmp/ guid

AnsibleTask shell git remote add developer http //developer developer gogs_hostname /developer/nationalparks.git git config local user.email developer example.com git config local user.name developer git push -f all developer args chdir /tmp/ guid /nationalparks when repo_result.status 200

AnsibleTask shell oc annotate namespace ocp_project_completed openshift.io/requester= ocp_username overwrite

AnsibleTask shell oc policy add-role-to-user admin ocp_username -n ocp_project_completed

AnsibleTask shell oc new-project ocp_project display-name= Parksmap description= Project to exercise the Parksmap demo ignore_errors True

AnsibleTask template src templates/istio_cleanup.sh dest /tmp/istio_cleanup.sh mode,493

AnsibleTask command oc get rs -o json -n ocp_project register rs_state changed_when False retries deploy_status_retries delay deploy_status_delay until rs_state.stdout |from_json |json_query status.readyReplicas || status.readyReplicas ` 0 ` .metadata.labels deployment |intersect pod_to_wait |length 0

AnsibleTask command oc get projects -o name register oc_projects changed_when False

AnsibleTask shell oc adm policy add-scc-to-group anyuid system authenticated -n istio-system when projects/ ~ istio-system not in oc_projects.stdout_lines

AnsibleTask template src templates/istio-demo-1.0.0.yaml dest /tmp/istio-demo-1.0.0.yaml when projects/ ~ istio-system not in oc_projects.stdout_lines

AnsibleTask shell oc create -f /tmp/istio-demo-1.0.0.yaml when projects/ ~ istio-system not in oc_projects.stdout_lines

AnsibleTask shell oc expose svc istio-ingressgateway -n istio-system oc expose svc servicegraph -n istio-system oc expose svc grafana -n istio-system oc expose svc prometheus -n istio-system oc expose svc tracing -n istio-system when projects/ ~ istio-system not in oc_projects.stdout_lines

AnsibleTask shell oc adm policy add-role-to-user edit ocp_username -n istio-system

AnsibleTask shell oc adm policy add-scc-to-user privileged -z default -n ocp_project

AnsibleTask template src templates/app-config.yaml dest /tmp/app-config.yaml when app_config_file.stat.exists False

AnsibleTask shell oc create configmap app-config from-file=/tmp/app-config.yaml -n ocp_project

AnsibleTask template src templates/coolstore-catalog-mongodb-persistent.yaml dest /tmp/coolstore-catalog-mongodb-persistent.yaml when coolstore_file.stat.exists False

AnsibleTask shell oc new-app -f /tmp/coolstore-catalog-mongodb-persistent.yaml -p CATALOG_DB_USERNAME=mongo -p CATALOG_DB_PASSWORD=mongo -n ocp_project

AnsibleTask shell oc patch deployment/catalog-service -p spec\ template\ spec\ containers\ name\ catalog-service\ image\ docker_registry_url ocp_project /catalog-service\ -n ocp_project

AnsibleTask shell oc rollout resume deploy/catalog-service -n ocp_project

AnsibleTask command openshift_cli get project admin_project register shared_project_result ignore_errors True changed_when False tags always

AnsibleTask command openshift_cli new-project admin_project when shared_project_result is failed tags always

AnsibleTask command openshift_cli apply -f /tmp/ guid /etherpad-template.yml -n admin_project tags always

AnsibleTask command openshift_cli apply -f /tmp/ guid /guides-template.yml -n admin_project tags always

AnsibleTask shell openshift_cli new-app etherpad name=etherpad -n admin_project dry-run -o yaml etherpad.yml args chdir /tmp/ guid tags pad

AnsibleTask command openshift_cli apply -f etherpad.yml -n admin_project args chdir /tmp/ guid tags pad

AnsibleTask shell openshift_cli new-app guide -p HOSTNAME= guide_hostname -p CONSOLE_ADDRESS= openshift_master -p ROUTER_ADDRESS= ocp_apps_domain -p GITLAB_URL_PREFIX= gogs_urlprefix -p ETHERPAD_URL_PREFIX= etherpad_urlprefix -n admin_project dry-run -o yaml guide.yml args chdir /tmp/ guid tags guide

AnsibleTask command openshift_cli apply -f guide.yml -n admin_project args chdir /tmp/ guid tags guide

AnsibleTask template src item dest tmp_dir item basename regex_replace with_fileglob ../templates/* tags workload

AnsibleTask command oc delete project admin_project ignore_errors True tags always

AnsibleTask command oc delete project item ignore_errors True with_sequence start= user_count_start end= user_count_end format= user_format tags always

AnsibleTask command oc delete clusterquota/clusterquota- item ignore_errors True with_sequence start= user_count_start end= user_count_end format= user_format tags always

AnsibleTask command git clone https //github.com/openshift-roadshow/ reponame .git args chdir git_dir.path tags gogs

AnsibleTask shell for tag in ` git branch -a grep origin grep cut -d -f 3 ` do git checkout -b tag remotes/origin/ tag done args chdir git_dir.path reponame tags gogs

AnsibleTask command openshift_cli get project item changed_when False ignore_errors True with_items openshift-ansible-service-broker openshift-web-console register check_project_r tags broker

AnsibleTask command openshift_cli get configmap broker-config -n openshift-ansible-service-broker changed_when False ignore_errors True register check_cm_r tags broker

AnsibleTask template dest /tmp/broker-config.yml src broker-config.yml.j2

AnsibleTask command openshift_cli delete configmap broker-config -n openshift-ansible-service-broker

AnsibleTask command openshift_cli create configmap broker-config from-file=broker-config=/tmp/broker-config.yml -n openshift-ansible-service-broker

AnsibleTask command openshift_cli rollout cancel dc/asb -n openshift-ansible-service-broker ignore_errors True register rcancel

AnsibleTask command openshift_cli rollout latest dc/asb -n openshift-ansible-service-broker ignore_errors True

AnsibleTask file path item.1.dest state directory owner item.0.name recurse True group item.0.name mode,504 ignore_errors True when item.1.user is not defined with_subelements mgr_users git_repos True

AnsibleTask ignore_errors True shell cmd avoid dir permission errors cd /tmp/ set -ue -o pipefail temporarly store password in cache cat EOF sudo -u item.0.name git credential-cache store url= item.1.repo username= item.1.user password= item.1.password EOF if -n item.1.dest -a -d item.1.dest then cd item.1.dest sudo -u item.0.name git reset hard HEAD sudo -u item.0.name git pull sudo -u item.0.name git checkout item.1.version|default else sudo -u item.0.name git clone item.1.repo item.1.dest cd item.1.dest sudo -u item.0.name git checkout item.1.version|default fi when item.1.user is defined item.1.password is defined item.1.dest is defined with_subelements mgr_users git_repos True

AnsibleTask file path item.home /bin state directory owner item.name group item.name with_items mgr_users

AnsibleTask file path item.0.home item.1.path src item.0.home item.1.src state link owner item.0.name group item.0.name with_subelements mgr_users symlinks True

AnsibleTask file path item.home /.ssh owner item.name mode,448 recurse True with_items mgr_users

AnsibleTask args creates /etc/pki/tls/certs/smtp- inventory_hostname .crt command ipa-getcert request -f /etc/pki/tls/certs/smtp- inventory_hostname .crt -k /etc/pki/tls/private/smtp- inventory_hostname .key -g 2048 -K smtp/ inventory_hostname -I inventory_hostname _SMTP_CERT

AnsibleTask copy content Client SSL configuration Outbound only smtp_tls_loglevel 2 smtp_tls_security_level encrypt smtp_tls_mandatory_ciphers high smtp_tls_ciphers smtp_tls_mandatory_ciphers smtp_tls_mandatory_protocols SSLv2 SSLv3 smtp_tls_protocols smtp_tls_mandatory_protocols smtp_tls_CAfile /etc/ipa/ca.crt smtp_tls_cert_file /etc/pki/tls/certs/smtp- inventory_hostname .crt smtp_tls_key_file /etc/pki/tls/private/smtp- inventory_hostname .key Relay host relayhost mx00.opentlc.com:19587 smtp_fallback_relay mx01.opentlc.com:19587 dest /etc/postfix/main.cf notify restart_postfix

AnsibleTask command ls -1 /etc/yum.repos.d/ register repodircontents tags configure_repos remove_existing_repos

AnsibleTask command yum clean all args warn False tags configure_repos run_yum_repolist

AnsibleTask shell /usr/bin/subscription-manager list all available matches= rhn_pool_id_string awk ID/ print 3 head -1 register pool_id until pool_id succeeded retries 10 delay 5

AnsibleTask shell /usr/bin/subscription-manager attach pool= pool_id.stdout register task_result until task_result.rc 0 retries 10 delay 5

AnsibleTask command rpm -Uvh satellite_url /pub/katello-ca-consumer-latest.noarch.rpm

AnsibleTask command subscription-manager register org= satellite_org activationkey= satellite_activationkey

AnsibleTask become True copy src ANSIBLE_REPO_PATH /workdir/ env_authorized_key dest /root/.ssh/ env_authorized_key .pem owner root group root mode,256 when set_env_authorized_key|bool

AnsibleTask become True copy src ANSIBLE_REPO_PATH /workdir/ssh-config- env_type guid dest /root/.ssh/config owner root group root mode,256

AnsibleTask template src ANSIBLE_REPO_PATH /files/tower_cli.j2 dest ~/.tower_cli.cfg mode,416

AnsibleTask copy src ANSIBLE_REPO_PATH /files/tower_license dest /tmp/tower_license

AnsibleTask copy src ANSIBLE_REPO_PATH /workdir/ guid dest /tmp/id_rsa mode,416

AnsibleTask template src ANSIBLE_REPO_PATH /configs/ env_type /files/hosts_template.j2 dest /etc/ansible/hosts

AnsibleTask command tower-cli setting modify LICENSE tower_license -u admin -p tower_admin_password

AnsibleTask shell tower-cli credential create organization= org_name kind=scm username=test password=test name= scm_cred_name

AnsibleTask shell tower-cli project create organization= org_name scm-type=git scm-branch= scm_branch scm-credential= scm_cred_name scm-url= scm_url scm-update-on-launch=True -n proj_name

AnsibleTask shell tower-cli inventory create -n inv_name organization= org_name

AnsibleTask shell tower-manage inventory_import inventory-name= inv_name source=/etc/ansible/hosts

AnsibleTask shell tower-cli credential create name= ssh_cred_name username= user_cred_name organization= org_name kind=ssh ssh-key-data= user_cred_path become-method=sudo

AnsibleTask shell tower-cli job_template create name 3tier_app_demo project= proj_name inventory= inv_name job-type=run playbook= playbook_name machine-credential= ssh_cred_name

AnsibleTask command subscription-manager unregister when sm_result.rc 0

AnsibleTask become True command npm install wetty -g chdir=/home/ system_user args creates /usr/lib/node_modules/wetty/bin/wetty.js

AnsibleTask become True command cp cert.pem /home/ system_user /.ssh/ chdir= /etc/letsencrypt/live/ workshop_prefix lower hostvars inventory_hostname domain_name args creates /home/ system_user /.ssh/cert.pem when letsencrypt

AnsibleTask become True command cp privkey.pem /home/ system_user /.ssh/ chdir= /etc/letsencrypt/live/ workshop_prefix lower hostvars inventory_hostname domain_name args creates /home/ system_user /.ssh/privkey.pem when letsencrypt

AnsibleTask command openssl req -new -x509 -nodes -days item.days default 3650 -subj /C= item.country default /ST= item.state default /L= item.city default /O= item.organization default /OU= item.unit default /CN= item.name /emailAddress= item.email default -newkey rsa:2048 -keyout /home/ system_user /.ssh/privkey.pem -out /home/ system_user /.ssh/cert.pem args creates /home/ system_user /.ssh/*.pem with_items openssl_self_signed when not letsencrypt

AnsibleTask become True file path /home/ system_user /.ssh/ item group system_user owner system_user mode,256 with_items cert.pem privkey.pem

AnsibleTask become True template src wetty.service.j2 dest /etc/systemd/system/wetty.service group root owner root mode,420 notify wetty

AnsibleTask become True copy src sshd_config dest /etc/ssh/sshd_config group root owner root mode,420 notify sshd

AnsibleTask become True command rpm -q firewalld register rf_result ignore_errors True

AnsibleTask become True file group system_user owner system_user mode,448 path /home/ system_user /.selinux state directory

AnsibleTask become True copy src item dest /home/ system_user /.selinux group system_user owner system_user mode,448 with_items wetty.pp wetty.te register result

AnsibleTask become True command semodule -i wetty.pp chdir=/home/ system_user /.selinux notify wetty when result.changed

AnsibleTask copy dest /etc/zabbix/zabbix_agentd.d/opentlc.conf content Server= zabbix_host ServerActive= zabbix_host owner zabbix mode,384

AnsibleTask copy dest /etc/sudoers.d/zabbix content Defaults zabbix visiblepw Defaults zabbix requiretty

AnsibleTask service name zabbix-agent state started enabled True

AnsibleTask command rpm -q firewalld register firewalld changed_when False ignore_errors True

AnsibleTask service name firewalld state reloaded when firewalld.rc 0 ignore_errors True

AnsibleTask command rpm -q iptables-services register iptables changed_when False ignore_errors True

AnsibleTask shell semanage permissive -l|grep zabbix_agent_t register permissive ignore_errors True changed_when False

AnsibleTask command semanage permissive -a zabbix_agent_t when permissive is failed

AnsibleTask command oc get sa zabbix -n default register sacommand ignore_errors True changed_when False

AnsibleTask command oc create sa zabbix -n default when sacommand failed

AnsibleTask command oc adm policy add-cluster-role-to-user cluster-reader system serviceaccount default zabbix -n default when sacommand failed

AnsibleTask shell raw oc get sa/zabbix -n default template= range .secrets .name end xargs -n 1 oc get secret template= if .data.token .data.token end head -n 1 base64 -d /tmp/zabbix.token endraw changed_when False

AnsibleTask set_fact zabbix_token token.stdout when token succeeded

AnsibleTask command oc get route/hawkular-metrics -n openshift-infra template= raw .spec.host endraw register hawkular changed_when False ignore_errors True

AnsibleTask set_fact hawkular_route hawkular.stdout when hawkular succeeded ignore_errors True

AnsibleTask copy dest /etc/sudoers.d/zabbix_docker content zabbix ALL= ALL NOPASSWD /bin/docker ps

AnsibleTask copy dest /etc/zabbix/zabbix_agentd.d/docker.conf content UserParameter=docker.ps sudo docker ps -q -f 1|wc -l notify restart zabbix agent

AnsibleTask copy dest /etc/sudoers.d/zabbix_lvm content zabbix ALL= ALL NOPASSWD /sbin/lvs

AnsibleTask copy dest /etc/zabbix/zabbix_agentd.d/lvm.conf content UserParameter=lvm.data LVM_SUPPRESS_FD_WARNINGS=1 sudo lvs no-heading -o lv_name 2|awk 1 1 print 2 notify restart zabbix agent

AnsibleTask copy dest /etc/zabbix/zabbix_agentd.d/requests.conf content UserParameter=openshift_node.requests /opt/monitoring/requests.sh 1 notify restart zabbix agent

AnsibleTask copy dest /etc/zabbix/requests.rc content TOKEN= zabbix_token HAWKULAR= hawkular_route owner zabbix mode,384

AnsibleTask copy dest /opt/monitoring/requests.sh src files/requests.sh mode,493 owner root

AnsibleTask command which zsh register zsh_path tags configuration

AnsibleTask become True file path /home/ item /.oh-my-zsh owner item group item state directory recurse True with_items zsh_users tags configuration

AnsibleTask become True template src zsh.config.j2 dest /home/ item /.zshrc owner item group item mode,416 with_items zsh_users tags configuration

AnsibleTask template src ../configs/ env_type /files/hosts_template.j2 dest ../workdir/hosts- env_type guid

AnsibleTask set_fact identity_providers identity_providers available_identity_providers item when available_identity_providers is defined available_identity_providers item is defined with_items install_idms|d

AnsibleTask template src ANSIBLE_REPO_PATH /configs/ env_type /files/hosts_template.j2 dest ANSIBLE_REPO_PATH /workdir/hosts- env_type guid when osrelease is version_compare 3.9

AnsibleTask template src ANSIBLE_REPO_PATH /configs/ env_type /files/hosts_template osrelease .j2 dest ANSIBLE_REPO_PATH /workdir/hosts- env_type guid when osrelease is version_compare 3.9

AnsibleTask gather_facts False become True hosts nodes infranodes masters vars_files ANSIBLE_REPO_PATH /configs/ env_type /env_vars.yml roles ANSIBLE_REPO_PATH /roles/host-ocp-node tags openshift_node_tasks step004 step004.3

AnsibleTask gather_facts False become True hosts support vars_files ANSIBLE_REPO_PATH /configs/ env_type /env_vars.yml roles ANSIBLE_REPO_PATH /roles/host-ocp-node false |bool tags openshift_node_tasks step004 step004.3.1

AnsibleTask gather_facts False become True order sorted hosts support vars_files ANSIBLE_REPO_PATH /configs/ env_type /env_vars.yml roles ANSIBLE_REPO_PATH /roles/host-ocp-nfs tags nfs_tasks step004 step004.4

AnsibleTask gather_facts False become True hosts bastions vars_files ANSIBLE_REPO_PATH /configs/ env_type /env_vars.yml tags installing_openshift step004 step004.5 tasks None roles ANSIBLE_REPO_PATH /roles/host-ocp-provisioner ANSIBLE_REPO_PATH /roles/host-ocp-installer post_tasks openshift credentials file masters 0 -b -m fetch -a src=/root/.kube/config dest=/root/.kube/config flat=yes

AnsibleTask template src ../configs/ env_type /files/tower_hosts_template.j2 dest ../workdir/tower_hosts- env_type guid

AnsibleTask copy src ../workdir/hosts- env_type guid dest /etc/ansible/hosts

AnsibleTask copy src ../workdir/tower_hosts- env_type guid dest tower_inventory_path

AnsibleTask shell ls /opt/tower/ansible-tower-setup-*/setup.sh register tower_installer_path

AnsibleTask debug msg tower_installer_path.stdout -i tower_inventory_path

AnsibleTask shell tower_installer_path.stdout -i tower_inventory_path

AnsibleTask hosts masters run_once True become True gather_facts False vars_files ANSIBLE_REPO_PATH /config/env_vars.yml tags env-specific remove_self_provisioners tasks clusterRoleBinding auto-update to false annotate -n default overwrite clusterrolebinding.rbac self-provisioners rbac.authorization.kubernetes.io/autoupdate=false system authenticated from self-provisioner role adm policy remove-cluster-role-from-group self-provisioner system authenticated system authenticated oauth True

AnsibleTask command oc label namespace default name=default when ovs_plugin networkpolicy ignore_errors True failed_when False

AnsibleTask copy src ANSIBLE_REPO_PATH /config/proj_template.yml dest /root/proj_template.yml

AnsibleTask shell oc create -f /root/proj_template.yml -n default || oc replace -f /root/proj_template.yml -n default

AnsibleTask service name atomic-openshift-master state restarted when master_config.changed or master_config2.changed osrelease is version_compare 3.7

AnsibleTask hosts masters run_once True become True gather_facts False vars_files ANSIBLE_REPO_PATH /config/env_vars.yml tags env-specific env_specific_images tasks osrelease is version_compare 3.7 default Jenkins ImageStream delete is jenkins -n openshift True jenkins from Red Hat Registry tag source=docker registry.access.redhat.com/openshift3/jenkins-2-rhel7 v repo_version openshift/jenkins v repo_version -n openshift True Jenkins jenkins latest tag openshift/jenkins v repo_version openshift/jenkins latest -n openshift 5 2 is succeeded True Jenkins jenkins:2 tag openshift/jenkins v repo_version openshift/jenkins:2 -n openshift 5 2 is succeeded True

AnsibleTask shell oc process -f ANSIBLE_REPO_PATH /config/cicd-template.yaml param BUILD_PROJECT=tasks-build param DEV_PROJECT=tasks-dev param STAGE_PROJECT=tasks-test param PROD_PROJECT=tasks-prod param=WITH_CHE=false param=EPHEMERAL=false oc create -f -n cicd_project check_mode False

AnsibleTask shell oc start-build tasks-pipeline -n cicd_project check_mode False

AnsibleTask shell oc get nodes -lenv=app -o custom-columns=NAME .metadata.name sort-by=.metadata.name no-headers=true 2 /dev/null register app_node_list changed_when False

AnsibleTask shell ANSIBLE_REPO_PATH /scripts/label_node item.0 item.1 when item.0 with_together company_projs map list unique app_node_list.stdout_lines

AnsibleTask shell oc get project item.proj register cicd_proj_chk ignore_errors True failed_when False changed_when False with_items infra_projs

AnsibleTask shell oc new-project item.item.proj display-name= item.item.display /dev/null 2 1 ignore_errors True check_mode False when item.rc 0 with_items cicd_proj_chk.results

AnsibleTask shell ANSIBLE_REPO_PATH /scripts/set_node_selector_any item.proj ignore_errors True check_mode False with_items infra_projs

AnsibleTask shell oc get project item.proj register proj_chk ignore_errors True failed_when False changed_when False with_items company_projs

AnsibleTask shell oc new-project item.item.proj display-name= item.item.display /dev/null 2 1 ignore_errors True check_mode False when item.rc 0 with_items proj_chk.results

AnsibleTask shell ANSIBLE_REPO_PATH /scripts/set_node_selector item.proj item.client ignore_errors True check_mode False with_items company_projs

AnsibleTask shell oc label namespace item.item.proj client= item.item.client ignore_errors True check_mode False with_items cicd_proj_chk.results failed_when False

AnsibleTask shell oc label namespace item.item.proj client= item.item.client ignore_errors True check_mode False with_items proj_chk.results failed_when False

AnsibleTask shell oc get user item.key /dev/null 2 1 with_dict company_users register user_chk failed_when False changed_when False ignore_errors True

AnsibleTask shell oc create user item.item.key /dev/null 2 1 ignore_errors True check_mode False when item.rc 0 with_items user_chk.results

AnsibleTask shell oc get identity htpasswd_auth item.key /dev/null 2 1 with_dict company_users register id_chk failed_when False changed_when False ignore_errors True

AnsibleTask shell oc create identity htpasswd_auth item.item.key /dev/null 2 1 ignore_errors True check_mode False when item.rc 0 with_items id_chk.results

AnsibleTask shell oc create useridentitymapping htpasswd_auth item.key item.key /dev/null 2 1 with_dict company_users register out ignore_errors True failed_when False check_mode False

AnsibleTask shell oc adm policy add-cluster-role-to-user cluster-admin item.key /dev/null 2 1 with_dict cadmins_users register cadmins_chk failed_when False changed_when False ignore_errors True check_mode False

AnsibleTask shell oc adm groups new client-group- item with_items company_projs map list unique failed_when False ignore_errors True check_mode False

AnsibleTask shell oc adm groups add-users client-group- item.0.client item.1 with_subelements company_projs users failed_when False ignore_errors True check_mode False

AnsibleTask shell oc label group/client-group- item client= item with_items company_projs map list unique failed_when False ignore_errors True check_mode False

AnsibleTask shell oc adm policy add-role-to-group admin client-group- item.client -n item.proj with_items company_projs failed_when False ignore_errors True check_mode False

AnsibleTask shell oc policy add-role-to-user edit system serviceaccount cicd_project jenkins -n item.proj /dev/null 2 1 ignore_errors True check_mode False with_items company_projs

AnsibleTask shell oc adm pod-network join-projects to= cicd_project item.proj /dev/null 2 1 ignore_errors True check_mode False with_items company_projs when ovs_plugin multitenant failed_when False

AnsibleTask shell oc delete resourcequotas core-resource-quota -n cicd_project /dev/null 2 1 ignore_errors True check_mode False failed_when False

AnsibleTask template src ANSIBLE_REPO_PATH /config/hosts_template osrelease .j2 dest ANSIBLE_REPO_PATH /workdir/hosts when osrelease is version_compare 3.9

AnsibleTask template src ANSIBLE_REPO_PATH /config/pvs.j2 dest /root/pvs- guid .yml tags gen_pv_file when pv_list.0 is defined

AnsibleTask template src ANSIBLE_REPO_PATH /config/userpvs.j2 dest /root/userpvs- guid .yml tags gen_user_vol_pv

AnsibleTask shell oc get nodes -lenv=app -o custom-columns=NAME .metadata.name sort-by=.metadata.name no-headers=true 2 /dev/null register app_node_list

AnsibleTask shell ANSIBLE_REPO_PATH /scripts/restrict_node item.0 item.1 when item.0 with_together company_projs map list unique app_node_list.stdout_lines

AnsibleTask hosts jenkins-org gather_facts False pre_tasks Python2 for Ansible -c test -e /usr/bin/python || apt -qqy update apt install -qqy python2.7 python

AnsibleTask service name= sshd_service_name state=restarted when ssh_server_enabled|bool

AnsibleTask shell ssh -V 2 1 sed -r 0-9 *\. 0-9 */\1/g changed_when False register sshd_version check_mode False

AnsibleTask set_fact ssh_host_key_files when sshd_version.stdout 6.3 and not ssh_host_key_files

AnsibleTask set_fact ssh_host_key_files when sshd_version.stdout 6.0 and not ssh_host_key_files

AnsibleTask set_fact ssh_host_key_files when sshd_version.stdout 5.3 and not ssh_host_key_files

AnsibleTask template mode=0600 owner= ssh_owner group= ssh_group notify restart sshd when ssh_server_hardening

AnsibleTask template mode=0600 owner= ssh_owner group= ssh_group validate= /usr/sbin/sshd -T -f s notify restart sshd when ssh_server_hardening

AnsibleTask template mode=0644 owner= ssh_owner group= ssh_group when ssh_client_hardening

AnsibleTask shell awk 5 sshd_moduli_minimum /etc/ssh/moduli register sshd_register_moduli changed_when False check_mode False

AnsibleTask shell awk 5 sshd_moduli_minimum /etc/ssh/moduli /etc/ssh/moduli.new -r /etc/ssh/moduli.new -a -s /etc/ssh/moduli.new mv /etc/ssh/moduli.new /etc/ssh/moduli || true notify restart sshd when sshd_register_moduli.stdout

AnsibleTask command getenforce register sestatus failed_when False changed_when False check_mode False

AnsibleTask shell semodule -l grep ssh_password register ssh_password_module failed_when False changed_when False check_mode False

AnsibleTask command semodule -r ssh_password when ssh_use_pam and ssh_password_module.stdout.find 0

AnsibleTask template src server.xml.j2 dest tomcat7_conf_dir /server.xml owner root group root mode,436 backup True notify restart tomcat

AnsibleTask template src tomcat-users.xml.j2 dest tomcat7_conf_dir /tomcat-users.xml owner root group root mode,436 backup True notify restart tomcat

AnsibleTask service name tomcat7_service state started enabled True

AnsibleTask service name telegraf state restarted enabled True become True

AnsibleTask template src etc-opt-telegraf-telegraf.conf.j2 dest /etc/opt/telegraf/telegraf.conf owner telegraf group telegraf mode,416 become True when telegraf_agent_version is version_compare 0.10.0 notify Restart Telegraf

AnsibleTask template src telegraf.conf.j2 dest /etc/telegraf/telegraf.conf owner telegraf group telegraf mode,416 become True when telegraf_agent_version is version_compare 0.10.0 notify Restart Telegraf

AnsibleTask template src telegraf-extra-plugin.conf.j2 dest /etc/telegraf/telegraf.d/ item.key .conf owner telegraf group telegraf mode,416 with_dict telegraf_plugins_extra when telegraf_plugins_extra is defined and telegraf_plugins_extra is iterable and item.value.state|default become True notify Restart Telegraf

AnsibleTask file path /etc/telegraf/telegraf.d/ item.key .conf state absent with_dict telegraf_plugins_extra when telegraf_plugins_extra is defined and telegraf_plugins_extra is iterable and item.value.state|default become True notify Restart Telegraf

AnsibleTask service name docker state if docker_service_enabled else enabled docker_service_enabled

AnsibleTask copy content -BEGIN PGP PUBLIC KEY BLOCK mQINBFit5IEBEADDt86QpYKz5flnCsOyZ/fk3WwBKxfDjwHf/GIflo+4GWAXS7wJ 1PSzPsvSDATV10J44i5WQzh99q+lZvFCVRFiNhRmlmcXG+rk1QmDh3fsCCj9Q/yP w8jn3Hx0zDtz8PIB/18ReftYJzUo34COLiHn8WiY20uGCF2pjdPgfxE+K454c4G7 gKFqVUFYgPug2CS0quaBB5b0rpFUdzTeI5RCStd27nHCpuSDCvRYAfdv+4Y1yiVh KKdoe3Smj+RnXeVMgDxtH9FJibZ3DK7WnMN2yeob6VqXox+FvKYJCCLkbQgQmE50 uVK0uN71A1mQDcTRKQ2q3fFGlMTqJbbzr3LwnCBE6hV0a36t+DABtZTmz5O69xdJ WGdBeePCnWVqtDb/BdEYz7hPKskcZBarygCCe2Xi7sZieoFZuq6ltPoCsdfEdfbO +VBVKJnExqNZCcFUTEnbH4CldWROOzMS8BGUlkGpa59Sl1t0QcmWlw1EbkeMQNrN spdR8lobcdNS9bpAJQqSHRZh3cAM9mA3Yq/bssUS/P2quRXLjJ9mIv3dky9C3udM +q2unvnbNpPtIUly76FJ3s8g8sHeOnmYcKqNGqHq2Q3kMdA2eIbI0MqfOIo2+Xk0 rNt3ctq3g+cQiorcN3rdHPsTRSAcp+NCz1QF9TwXYtH1XV24A6QMO0+CZwARAQAB tCtEb2NrZXIgUmVsZWFzZSAoQ0UgcnBtKSA8ZG9ja2VyQGRvY2tlci5jb20+iQI3 BBMBCgAhBQJYrep4AhsvBQsJCAcDBRUKCQgLBRYCAwEAAh4BAheAAAoJEMUv62ti Hp816C0P/iP+1uhSa6Qq3TIc5sIFE5JHxOO6y0R97cUdAmCbEqBiJHUPNQDQaaRG VYBm0K013Q1gcJeUJvS32gthmIvhkstw7KTodwOM8Kl11CCqZ07NPFef1b2SaJ7l TYpyUsT9+e343ph+O4C1oUQw6flaAJe+8ATCmI/4KxfhIjD2a/Q1voR5tUIxfexC /LZTx05gyf2mAgEWlRm/cGTStNfqDN1uoKMlV+WFuB1j2oTUuO1/dr8mL+FgZAM3 ntWFo9gQCllNV9ahYOON2gkoZoNuPUnHsf4Bj6BQJnIXbAhMk9H2sZzwUi9bgObZ XO8+OrP4D4B9kCAKqqaQqA+O46LzO2vhN74lm/Fy6PumHuviqDBdN+HgtRPMUuao xnuVJSvBu9sPdgT/pR1N9u/KnfAnnLtR6g+fx4mWz+ts/riB/KRHzXd+44jGKZra IhTMfniguMJNsyEOO0AN8Tqcl0eRBxcOArcri7xu8HFvvl+e+ILymu4buusbYEVL GBkYP5YMmScfKn+jnDVN4mWoN1Bq2yMhMGx6PA3hOvzPNsUoYy2BwDxNZyflzuAi g59mgJm2NXtzNbSRJbMamKpQ69mzLWGdFNsRd4aH7PT7uPAURaf7B5BVp3UyjERW 5alSGnBqsZmvlRnVH5BDUhYsWZMPRQS9rRr4iGW0l+TH+O2VJ8aQ =0Zqq -END PGP PUBLIC KEY BLOCK dest /etc/pki/rpm-gpg/RPM-GPG-KEY-Docker-CE owner root group root mode,0644

AnsibleTask set_fact docker_daemon_option_list docker_daemon_option_list tlsverify tlscacert=/etc/docker/ca.pem tlscert=/etc/docker/server-cert.pem tlskey=/etc/docker/server-key.pem docker_daemon_listen_network docker_daemon_listen_network default //0.0.0.0:2376 when in group_names

AnsibleTask set_fact docker_daemon_option_list docker_daemon_option_list -H=unix ///var/run/docker.sock -H= docker_daemon_listen_network when docker_daemon_listen_network is defined

AnsibleTask set_fact docker_daemon_option_list docker_daemon_option_list bip= docker_daemon_bip when docker_daemon_bip is defined

AnsibleTask file dest /etc/systemd/system/docker.service.d state directory when docker_daemon_option_list

AnsibleTask copy content This file is managed by Ansible ALL CHANGES WILL BE OVERWRITTEN Service ExecStart= ExecStart=/usr/bin/dockerd docker_daemon_option_list join dest /etc/systemd/system/docker.service.d/docker.conf notify reload systemd daemon restart docker when docker_daemon_option_list

AnsibleTask file path item state absent delegate_to localhost run_once True become False with_items clean_on_failure default

AnsibleTask command id -u galaxy_user.name register galaxy_user_uid_out changed_when False when galaxy_user_uid is undefined

AnsibleTask set_fact galaxy_user_uid galaxy_user_uid_out.stdout when galaxy_user_uid is undefined

AnsibleTask command id -g galaxy_user.name register galaxy_user_gid_out changed_when False when galaxy_user_gid is undefined

AnsibleTask set_fact galaxy_user_gid galaxy_user_gid_out.stdout when galaxy_user_gid is undefined

AnsibleTask template src galaxy_auth.conf.j2 dest proftpd_config_include_dir /10_galaxy_auth.conf notify reload proftpd

AnsibleTask template src server.conf.j2 dest proftpd_config_include_dir /00_server.conf backup True with_items proftpd_options default notify restart proftpd

AnsibleTask copy content if proftpd_display_connect_context Global endif DisplayConnect proftpd_config_dir /proftpd_display_connect.txt if proftpd_display_connect_context /Global endif dest proftpd_config_include_dir /02_display_connect.conf when proftpd_display_connect is defined

AnsibleTask copy content proftpd_display_connect dest proftpd_config_dir /proftpd_display_connect.txt when proftpd_display_connect is defined

AnsibleTask template src global.conf.j2 dest proftpd_config_include_dir /03_global.conf backup True when proftpd_global_options is defined notify restart proftpd

AnsibleTask template src virtualhost.conf.j2 dest proftpd_config_include_dir /15_virtualhost_ item.id .conf backup True with_items proftpd_virtualhosts default

AnsibleTask file name proftpd_config_include_dir state directory

AnsibleTask template src tls.conf.j2 dest proftpd_config_include_dir /05_tls.conf backup True notify reload proftpd

AnsibleTask command haproxy -v register haproxy_version_result changed_when False check_mode False

AnsibleTask set_fact haproxy_version 1.5 if 1.5 in haproxy_version_result.stdout else 1.4

AnsibleTask template src haproxy.cfg.j2 dest /etc/haproxy/haproxy.cfg mode,420 validate haproxy -f s -c -q notify restart haproxy

AnsibleTask command nginx -t -c /etc/nginx/nginx.conf changed_when False

AnsibleTask set_fact nginx_user __nginx_user when nginx_user is not defined

AnsibleTask template src nginx_conf_template dest nginx_conf_file_path owner root group root_group mode,420 notify reload nginx

AnsibleTask template src nginx.repo.j2 dest /etc/yum.repos.d/nginx.repo owner root group root mode,420 when nginx_yum_repo_enabled

AnsibleTask tags selinuxCheck register selinuxCheckOut command getenforce

AnsibleTask file path nginx_default_vhost_path state absent when nginx_remove_default_vhost notify restart nginx

AnsibleTask file path nginx_vhost_path state directory notify reload nginx

AnsibleTask template src item.template|default nginx_vhost_template dest nginx_vhost_path item.filename|default item.server_name.split 0 ~ force True owner root group root mode,420 when item.state|default with_items nginx_vhosts notify reload nginx

AnsibleTask file path nginx_vhost_path item.filename|default item.server_name.split 0 ~ state absent when item.state|default with_items nginx_vhosts notify reload nginx

AnsibleTask file path nginx_vhost_path /vhosts.conf state absent notify reload nginx

AnsibleTask copy dest /etc/pki/rpm-gpg/RPM-GPG-KEY-HTCondor content -BEGIN PGP PUBLIC KEY BLOCK Version GnuPG v1.4.11 GNU/Linux mQENBFKovZMBCADXUjHZz0xDLMh91DaHiQaIAdGMsDrk3+YXrMw/3yad3YTK3NJe PvpegjM2bZXZb28HT2zNKeb80bju9+gjABjthVTWUyhKDgiN1CBKw0myPpcZKGRH 2T7WNwA2F4htev5oHNgscO8XwLhamuay5YZo2UKJ6ihrzulXpEPT86A+gvCL8RTY 9hoUveHUuJv4uEO+g6Ui2HdfTaURnObdSes7R9wF7klsjY9Y1d52Papiyv3tP8nN YcgWgweTMMdJSmezwfssKshLRrHnAXcfx6/jh/l7fzODFZRCRn5Nl0E5TSg/IbMd BiBGCeSuJM7FZLk2WYAUhnHHrzVExB+Wc26NABEBAAG0OFRpbSBUaGVpc2VuIChI VENvbmRvciBSZWxlYXNlIE1hbmFnZXIpIDx0aW1AY3Mud2lzYy5lZHU+iQE4BBMB AgAiBQJSqL2TAhsDBgsJCAcDAgYVCAIJCgsEFgIDAQIeAQIXgAAKCRCXP8fSZwB5 9lLPB/9KTWTYUOFI0V9En4LFdZ/d7mCiWwDTxUO/QnfsMtZb2XcULH6ZGW32XEQ1 xookP0wGa6298LBStbA3UF7okRFFRQAxsATVV0SBr9JhbCb0jXqvxcg//UCo5gyu LbELqpo+SVYkT1/dGK3MVs2m2amsWVrRwntyQJ6JPYGQJkYq0wkY23jB5rjbNNtQ CeBzwpUW4rUBzdQslYDV7nCweAZ00pmcn0AzmX29wxN8Z3So8Kt2unIhvk0rffIn 4ViNS0/rn6H1lAIrVsGEnb/p8PG96OvmumiFpY60Z2OxR6mq7PtTMhYTPecEElRF nK3Xqx7Sq/sNQFXy7UPIoNDT7GMDuQENBFKovZMBCADKJ0Y586ufDMhoRgxLbg0t POPQt60TjHzGfRCPDcaLKihdRaEp7Ui6HzNd1ErbtHO6PdU71dLy6UaexVpWKzrk yYr2LZsNzcVzJnN7bglMnzYdo+4vnsIfOWiUjKR+SbR62JWpPR7W6YvhCVsw4tWE DqjD7vxTle1/+QPH3T4ABrjSrYl9B8LsBXsC4SAT9WGvbYEZg4I0WAI/8ATicR7S HCIqXQqTeV5NZuPbbAyaJzto7HkIP1FV4755GSnKiKBcZDpoIhDmHckvhjcuOM/A sKUVJdwX3LKELlB6sFQs2gTluSIYH0iciYCVrP/HK4uuAYMtwHykqPrXNT+U7jwJ ABEBAAGJAR8EGAECAAkFAlKovZMCGwwACgkQlz/H0mcAefYjaAgA1WPlbp7vvKiO 7LT1Cm3DupMyQ54dAGTR1NaTqf37frlVvLOkaqYwaJX9ZOSw1cw6DczBzF/muDEG FibZKkffFxLE58g9CLn+dJL7QtkzefwNIrQMYMGnrb+nBcyFmkQsqz1w96mAl8Xq AVGqOEmG2wFNdTOkxu87zOvuj1y77gLxFvpArRDjfB9CGmWEiPedXghK65fkGVRM hQe8pymCsxTUkPdUvFuUqR6yVmBiJgmsu5gIzUKMUrHnn94SY+XycgF0DsrSCWQn fsIIQrkp47tj9v9QBSh0mz2u8OetvMeUdlh0TQV1tarn0ZUlNGFOdX0j3Z6AIi8D yQI5vSZjow== =2cZc -END PGP PUBLIC KEY BLOCK

AnsibleTask copy dest /etc/yum.repos.d/htcondor-stable-rhel7.repo content htcondor-stable name=HTCondor Stable RPM Repository for RHEL7 baseurl=http //research.cs.wisc.edu/htcondor/yum/stable/rhel7 enabled=1 gpgcheck=1

AnsibleTask template src condor_config.j2 dest /etc/condor/condor_config.local owner root group root mode,420 notify reload condor

AnsibleTask copy dest /etc/condor/meta_walltime.py src meta_walltime.py mode,493 notify reload condor

AnsibleTask service name firewalld state stopped enabled False when yum_list.results selectattr yumstate match installed list length 0

AnsibleTask template src http-api-check.sh dest /usr/bin/http-api-check owner root group root mode,493

AnsibleTask file path tomcat_apollo_webapp_dir state absent when download.changed notify restart tomcat

AnsibleTask file path tomcat_apollo_webapp_dir state directory owner tomcat group tomcat when download.changed notify restart tomcat

AnsibleTask command chown tomcat tomcat -R /usr/share/tomcat/webapps/apollo/ when download.changed notify restart tomcat

AnsibleTask template src apollo-config.groovy dest tomcat_apollo_webapp_dir item owner tomcat group tomcat mode,416 with_items WEB-INF/classes/apollo-config.groovy notify restart tomcat

AnsibleTask template src data.autofs.j2 dest /etc/auto.master.d/data.autofs owner root group root mode,420 notify autofs restart

AnsibleTask template src data.conf.j2 dest /etc/auto.data owner root group root mode,420 notify autofs restart

AnsibleTask template src usrlocal.conf.j2 dest /etc/auto.usrlocal owner root group root mode,420 when usrlocal in usegalaxy_eu_autofs_mounts notify autofs restart

AnsibleTask template src vols.conf.j2 dest /etc/auto.vols owner root group root mode,420 when vdb in usegalaxy_eu_autofs_mounts notify autofs restart

AnsibleTask copy src formatter.sh dest /usr/bin/format-n-mount owner root group root mode,493

AnsibleTask file path item.homedir default /.aws state directory owner item.owner default group item.group default mode,488 with_items aws_cli_credentials

AnsibleTask copy content default aws_access_key_id= item.access_key aws_secret_access_key= item.secret_key dest item.homedir default /.aws/config owner item.owner default group item.group default mode,256 with_items aws_cli_credentials

AnsibleTask template src refresh.sh dest /usr/sbin/cert-refresh owner root group root mode,493 register refresh_command

AnsibleTask command /usr/sbin/cert-refresh when refresh_command.changed

AnsibleTask command /etc/letsencrypt/renewal-hooks/post/haproxy.sh when refresh_command.changed

AnsibleTask copy src item.src dest item.dest owner root group root mode item.mode with_items : notify restart docker

AnsibleTask template src docker-env.conf dest /etc/systemd/system/docker.service.d/custom.conf owner root group root mode,420 notify restart docker ignore_errors True

AnsibleTask copy src item dest ~/.docker/ item mode,0640 with_items ca.pem cert.pem key.pem

AnsibleTask file path galaxy_tool_dir /nagios/ state directory owner galaxy_user.name group galaxy_group mode,493

AnsibleTask template src echo.xml dest galaxy_tool_dir /nagios/ item .xml owner galaxy_user.name group galaxy_group mode,416 with_items galaxy_test_user.handlers

AnsibleTask template src nagios_tool_conf.xml dest galaxy_conf_dir /nagios_tool_conf.xml owner galaxy_user.name group galaxy_group mode,416

AnsibleTask file path ggb_dir state directory owner ggb_user group ggb_group mode,488

AnsibleTask file path ggb_dir /config state directory owner ggb_user group ggb_group mode,488

AnsibleTask set_fact _ggb_config bridge_token gitter_auth_token gitter_room_id

AnsibleTask copy content _ggb_config to_nice_yaml explicit_start=True dest ggb_dir /config/config.yaml owner ggb_user group ggb_group mode,416 notify reload ggb

AnsibleTask template src run.sh dest ggb_dir /run.sh owner ggb_user group ggb_group mode,488 notify reload ggb

AnsibleTask template src ggb.service dest /etc/systemd/system/ggb.service notify setup ggb systemd

AnsibleTask template src env dest /etc/sysconfig/gx-cookie-proxy owner gxp group gxp mode,416

AnsibleTask copy src gx-cookie-proxy.service dest /etc/systemd/system/gx-cookie-proxy.service owner root group root mode,420

AnsibleTask copy src usegalaxy-error-pages.sh dest /usr/local/bin/usegalaxy-error-pages.sh owner root group root mode,493

AnsibleTask command influx -ssl -host influxdb.galaxyproject.eu -execute show users ignore_errors True register should_create_admin when not ansible_check_mode

AnsibleTask command influx -ssl -host influxdb.galaxyproject.eu -execute CREATE USER influxdb.admin.username WITH PASSWORD influxdb.admin.password WITH ALL PRIVILEGES when not ansible_check_mode and unable to parse authentication credentials not in should_create_admin.stdout

AnsibleTask copy src cluster_util-condor-split.sh dest /usr/bin/monitor-condor-utilisation-split owner root group root mode,493 when monitor_condor_split_util

AnsibleTask copy src cluster_util-condor.sh dest /usr/bin/monitor-condor-utilisation owner root group root mode,493

AnsibleTask copy src cluster_queue-condor.sh dest /usr/bin/monitor-condor-queue owner root group root mode,493

AnsibleTask copy src cluster_util-sge.sh dest /usr/bin/monitor-sge-utilisation owner root group root mode,493

AnsibleTask copy src cluster_queue-sge.sh dest /usr/bin/monitor-sge-queue owner root group root mode,493

AnsibleTask copy src cluster_queue-slurm.sh dest /usr/bin/monitor-slurm-queue owner root group root mode,493

AnsibleTask template src main.sh dest /usr/bin/check_cvmfs_repos owner root group root mode,493 notify Restart Telegraf

AnsibleTask copy src main.sh dest /usr/bin/check_mail_counts owner root group root mode,493 notify Restart Telegraf

AnsibleTask copy src parse_squid.py dest /usr/bin/parse_squid.py owner root group root mode,493 notify Restart Telegraf

AnsibleTask copy src parse_squid.sh dest /usr/bin/parse_squid owner root group root mode,493 notify Restart Telegraf

AnsibleTask copy src simple-ssl-check.sh dest /usr/bin/simple-ssl-check owner root group root mode,493

AnsibleTask template src telegraf-uwsgi.sh dest /usr/bin/telegraf-uwsgi.sh owner root group root mode,493

AnsibleTask copy content postgres_host postgres_port postgres_user postgres_pass dest ~/.pgpass mode,384

AnsibleTask command grep -Fxq input x:999 /etc/group ignore_errors True register check_input changed_when False

AnsibleTask command grep -Fxq polkitd x:999 /etc/passwd ignore_errors True register check_polkitd changed_when False

AnsibleTask file dest hxr_sentry_datadir owner hxr_sentry_user group hxr_sentry_group mode,488 state directory

AnsibleTask file dest hxr_sentry_datadir /postgres owner hxr_sentry_user group hxr_sentry_group mode,448 state directory

AnsibleTask file dest hxr_sentry_datadir /sentry owner hxr_sentry_user group hxr_sentry_group mode,448 state directory

AnsibleTask file dest hxr_sentry_repodir owner hxr_sentry_user group hxr_sentry_group mode,488 state directory

AnsibleTask become True become_user hxr_sentry_user template src item .j2 dest hxr_sentry_repodir item owner hxr_sentry_user group hxr_sentry_group mode,416 with_items config.yaml docker-compose.yml Dockerfile requirements.txt

AnsibleTask command make become True become_user hxr_sentry_user args chdir hxr_sentry_repodir

AnsibleTask command docker-compose pull postgres redis smtp memcached become True become_user hxr_sentry_user args chdir hxr_sentry_repodir

AnsibleTask command docker-compose kill become True become_user hxr_sentry_user args chdir hxr_sentry_repodir

AnsibleTask command docker-compose rm -f become True become_user hxr_sentry_user args chdir hxr_sentry_repodir

AnsibleTask command docker-compose up -d become True become_user hxr_sentry_user args chdir hxr_sentry_repodir

AnsibleTask command docker-compose exec -T web sentry upgrade noinput become True become_user hxr_sentry_user args chdir hxr_sentry_repodir

AnsibleTask command docker-compose exec -T web sentry createuser email admin local.host password password superuser become True become_user hxr_sentry_user ignore_errors True args chdir hxr_sentry_repodir

AnsibleTask template src ftp-creds.txt dest /etc/ftp-creds.txt owner telegraf group telegraf mode,416

AnsibleTask template src gx-api-creds.json dest /etc/gx-api-creds.json owner telegraf group telegraf mode,416

AnsibleTask copy src simple-galaxy.py dest /usr/local/bin/simple-galaxy owner root group root mode,493

AnsibleTask copy src simple-nagios.sh dest /usr/bin/simple-nagios-library owner root group root mode,493

AnsibleTask template src simple-nagios.sh dest /usr/bin/simple-nagios owner root group root mode,493

AnsibleTask shell rabbitmqctl join_cluster rabbitmq_cluster_master register rabbitmq_output ignore_errors True

AnsibleTask fail msg= Unable to join the cluster when not in rabbitmq_output.stderr and rabbitmq_output.rc 0

AnsibleTask template src erlang.cookie.j2 dest rabbitmq_erlang_cookie_file owner rabbitmq group rabbitmq mode,256

AnsibleTask template src rabbitmq.config.j2 dest /etc/rabbitmq/rabbitmq.config when rabbitmq_config is defined

AnsibleTask set_fact rabbitmq_plugins_enabled rabbitmq_plugins_enabled item.name default item with_items rabbitmq_plugins

AnsibleTask service name rabbitmq-server enabled True state started

AnsibleTask template src templates/test.apache.j2 dest /tmp/test.apache tags apache

AnsibleTask template src templates/test.erlang.j2 dest /tmp/test.erlang tags erlang

AnsibleTask template src templates/test.ini.j2 dest /tmp/test.ini tags ini

AnsibleTask template src templates/test.ini_simple.j2 dest /tmp/test.ini_simple tags simple

AnsibleTask template src templates/test.json.j2 dest /tmp/test.json tags json

AnsibleTask template src templates/test.logstash.j2 dest /tmp/test.logstash tags logstash

AnsibleTask template src templates/test.toml.j2 dest /tmp/test.toml tags toml

AnsibleTask template src templates/test.xml.j2 dest /tmp/test.xml tags xml

AnsibleTask template src templates/test.yaml.j2 dest /tmp/test.yaml tags yaml

AnsibleTask tags yum_cron become True service name yum-cron state restarted

AnsibleTask tags yum_cron become True template src item.src dest item.dst owner root group root mode,420 notify restart yum-cron with_items when yum_cron_yum is success

AnsibleTask tags yum_cron become True service enabled True name yum-cron state started when yum_cron_yum is success

AnsibleTask copy src item dest /etc/sysconfig/network-scripts/ item owner root group root mode,420 with_items ifcfg-eth0 ifcfg-eth1

AnsibleTask copy src rt_tables dest /etc/iproute2/rt_tables owner root group root mode,420

AnsibleTask copy src route-eth1 dest /etc/sysconfig/network-scripts/route-eth1 owner root group root mode,420

AnsibleTask copy src fix-network.sh dest /usr/sbin/fix-network owner root group root mode,493

AnsibleTask copy src fix-network.service dest /etc/systemd/system/fix-network.service owner root group root mode,420

AnsibleTask copy src ifcfg-eth1 dest /etc/sysconfig/network-scripts/ifcfg-eth1 owner root group root mode,420

AnsibleTask copy src ifcfg-eth0 dest /etc/sysconfig/network-scripts/ifcfg-eth0 owner root group root mode,420

AnsibleTask file state directory dest pgs_dir owner centos group centos mode,493

AnsibleTask file state directory dest pgs_repo_dir owner centos group centos mode,493

AnsibleTask become True become_user centos template src script.sh.j2 dest pgs_dir /run.sh mode,493

AnsibleTask file state directory dest pgs_dir /venv owner centos group centos mode,493

AnsibleTask command restorecon -irv pgs_web_dir when ansible_selinux.mode enforcing and update_fcontexts.changed

AnsibleTask template src config.yml dest /opt/sentry/config.yml owner root group root mode,420

AnsibleTask template src sentry.conf.py dest /opt/sentry/sentry.conf.py owner root group root mode,420

AnsibleTask template src Dockerfile dest /opt/sentry/Dockerfile owner root group root mode,420

AnsibleTask copy src server_ca dest /tmp/server_ca owner root group root mode,384

AnsibleTask command ssh-keygen -s /tmp/server_ca -I key_for_test1 -h -V +520w /etc/ssh/ssh_host_ item _key.pub with_items rsa ecdsa ed25519

AnsibleTask debug msg Please add the following to your known_hosts file cert-authority ip-range|*.domain lookup

AnsibleTask copy src server_ca dest /tmp/server_ca owner root group root mode,384 when not st.stat.exists

AnsibleTask command ssh-keygen -s /tmp/server_ca -I key_for_test1 -h -V +520w /etc/ssh/ssh_host_ item _key.pub with_items rsa ecdsa ed25519 when not st.stat.exists

AnsibleTask file path /tmp/server_ca state absent when not st.stat.exists

AnsibleTask copy src /etc/skel/.bashrc dest ~/.bashrc remote_src True mode,488 when not bashrc_stat_out.stat.exists

AnsibleTask copy src item dest /usr/share/nginx/html/ item owner nginx group nginx mode,493 loop 404.html,502.html,503.html,504.html

AnsibleTask copy content /bin/bash galaxy_root /.bashrc journalctl -u galaxy-handler since hour ago grep Caught exception while attempting to fail job egrep -o 0-9 +\ Caught sed Caught//g s/ //g s/ //g sort -u xargs -I -n1 no-run-if-empty -P1 gxadmin mutate fail-job commit /dev/null gxadmin mutate fail-terminal-datasets commit /dev/null dest /usr/bin/galaxy-fix-failing-to-fail-jobs owner root group root mode,493

AnsibleTask copy content /bin/bash galaxy_root /.bashrc gxadmin mutate generate-unset-api-keys commit dest /usr/bin/galaxy-fix-missing-api-keys owner root group root mode,493

AnsibleTask copy content /bin/bash galaxy_root /.bashrc for user in gxadmin mutate oidc-role-find-affected do gxadmin mutate oidc-role-fix user done dest /usr/bin/galaxy-fix-oidc owner root group root mode,493

AnsibleTask copy content /bin/bash galaxy_root /.bashrc journalctl -u galaxy-handler since minutes ago grep running job awk print 13 sort -u xargs -I -n1 no-run-if-empty -P1 gxadmin mutate fail-job commit gxadmin mutate fail-terminal-datasets commit /dev/null dest /usr/bin/galaxy-fix-unscheduled-jobs owner root group root mode,493

AnsibleTask copy content /bin/bash Workflows are currently being assigned to _default_ which is wrong https //github.com/galaxyproject/galaxy/issues/8209 galaxy_root /.bashrc while true do psql -c COPY update workflow_invocation set handler || random 12 :integer where state and handler returning workflow_invocation.id to STDOUT with CSV DELIMITER ts sleep 5 done dest /usr/bin/galaxy-fix-unscheduled-workflows owner root group root mode,493

AnsibleTask copy content /bin/bash cd galaxy_server_dir galaxy_root /.bashrc python scripts/set_user_disk_usage.py -c galaxy_config_file dest /usr/bin/galaxy-fix-user-quotas owner root group root mode,493

AnsibleTask template src item.src dest item.dest owner galaxy group galaxy mode,493 loop maintenance_dir /pbs.sh maintenance_dir /uploads.sh maintenance_dir /job_working_dir.sh

AnsibleTask template src item.src dest item.dest owner galaxy group galaxy mode,429 loop maintenance_dir /pbs.job maintenance_dir /uploads.job maintenance_dir /job_working_dir.job

AnsibleTask file path grt_dir /config state directory owner root group grt_group.name mode,488

AnsibleTask template src item dest grt_dir /config/ item owner root group grt_group.name mode,416 with_items uwsgi.yml env.sh notify reload grt

AnsibleTask copy src item dest grt_web_dir item owner root group grt_group.name mode,420 with_items tos.html index.html grt.png

AnsibleTask template src export-to-influx.sh dest /usr/bin/export-grt-to-influx owner root group grt_group.name mode,488

AnsibleTask file path grt_dir state directory owner grt_user.name group grt_group.name mode,488

AnsibleTask file path grt_upload_dir state directory owner grt_user.name group grt_group.name mode,488

AnsibleTask file path grt_queries_dir state directory owner grt_user.name group grt_group.name mode,493

AnsibleTask command restorecon -irv grt_queries_dir when ansible_selinux.mode enforcing and update_fcontexts.changed

AnsibleTask file path grt_web_dir state directory owner grt_user.name group grt_group.name mode,493

AnsibleTask command restorecon -irv grt_web_dir when ansible_selinux.mode enforcing and update_fcontexts2.changed

AnsibleTask command grt_dir /venv/bin/python grt_dir /code/manage.py collectstatic noinput

AnsibleTask become True become_user grt_user.name command grt_dir /venv/bin/python grt_dir /code/manage.py migrate no-input environment DJANGO_SETTINGS_MODULE base.production PGHOST grt_pghost PGUSER grt_pguser PGNAME grt_pgname PGPORT grt_pgport PGPASSWORD grt_pgpassword

AnsibleTask template src run.sh dest grt_dir /run.sh owner grt_user.name group grt_group.name mode,488 notify reload grt

AnsibleTask template src grt.service dest /etc/systemd/system/galactic-radio-telescope.service notify setup grt systemd

AnsibleTask template src telegraf-procstat.conf.j2 dest /etc/telegraf/telegraf.d/galaxy_procstat.conf owner telegraf group telegraf mode,416 notify Restart Telegraf

AnsibleTask template src galaxy-slurp.j2 dest /usr/bin/galaxy-slurp owner galaxy_slurper group root mode,488

AnsibleTask template src galaxy-slurp-upto.j2 dest /usr/bin/galaxy-slurp-upto owner galaxy_slurper group root mode,488

AnsibleTask file path gapars_dir state directory owner gapars_user group gapars_group mode,493

AnsibleTask file path gapars_dir /config state directory owner gapars_user group gapars_group mode,488

AnsibleTask set_fact _gapars_config mmos_api_key mmos_api_secret

AnsibleTask copy content _gapars_config to_nice_yaml explicit_start=True dest gapars_dir /config/config.yaml owner gapars_user group gapars_group mode,416 notify reload gapars

AnsibleTask template src run.sh dest gapars_dir /run.sh owner gapars_user group gapars_group mode,488 notify reload gapars

AnsibleTask template src service dest /etc/systemd/system/gapars.service notify setup gapars systemd

AnsibleTask file path galaxy_interactive_environment_dir state directory mode,493

AnsibleTask file src item.src dest item.dst state link with_items galaxy_server_dir /config/plugins/interactive_environments/interactive_environments.dtd galaxy_interactive_environment_dir /interactive_environments.dtd galaxy_server_dir /config/plugins/interactive_environments/common galaxy_interactive_environment_dir /common

AnsibleTask file path galaxy_interactive_environment_dir item.name /config state directory mode,493 with_items galaxy_interactive_environments

AnsibleTask file src galaxy_server_dir /config/plugins/interactive_environments/ item.name /static dest galaxy_interactive_environment_dir item.name /static state link with_items galaxy_interactive_environments

AnsibleTask file src galaxy_server_dir /config/plugins/interactive_environments/ item.name /templates dest galaxy_interactive_environment_dir item.name /templates state link with_items galaxy_interactive_environments

AnsibleTask copy content item.allowed_images to_nice_yaml explicit_start=True dest galaxy_interactive_environment_dir item.name /config/allowed_images.yml mode,420 with_items galaxy_interactive_environments

AnsibleTask copy content item.config dest galaxy_interactive_environment_dir item.name /config/ item.name .ini mode,420 with_items galaxy_interactive_environments

AnsibleTask file src galaxy_server_dir /config/plugins/interactive_environments/ item.name /config/ item.name .xml dest galaxy_interactive_environment_dir item.name /config/ item.name .xml state link with_items galaxy_interactive_environments

AnsibleTask template src galaxy-gie-proxy.service.j2 dest /etc/systemd/system/galaxy-gie-proxy.service owner root group root mode,420 notify gie systemd reload gie systemd restart

AnsibleTask copy content google-site-verification google_site_verification_id dest /usr/share/nginx/html/ google_site_verification_id owner nginx group nginx mode,493

AnsibleTask set_fact google_site_verification location google_site_verification_id root /usr/share/nginx/html

AnsibleTask template src grt-export.sh dest /usr/bin/grt-export owner galaxy_grt_exporter mode,488

AnsibleTask template src grt-eupload.sh dest /usr/bin/grt-upload owner galaxy_grt_uploader mode,488

AnsibleTask copy content /bin/bash galaxy_root /.bashrc galaxy_venv_dir /bin/activate python galaxy_server_dir /scripts/grt/export.py -g galaxy_config_dir /grt.yml -r galaxy_mutable_data_dir /reports/ -b 10000 -c galaxy_config_dir /galaxy.ini dest /usr/bin/galaxy-grt-export owner root group root mode,493

AnsibleTask copy content /bin/bash cd galaxy_root for dir in custom-tools dynamic_rules interactive_environments mutable-config mutable-data server venv tool-data do if -d dir then echo Syncing dir rsync -avr delete exclude client/node_modules dir/ galaxy_nfs_location dir/ else echo Skipping dir fi done if -d shed_tools-local then echo Syncing shed_tools-local rsync -avr delete shed_tools-local/ galaxy_nfs_location /shed_tools/ else echo Skipping shed_tools-local fi dest /usr/bin/galaxy-sync-to-nfs owner root group root mode,493

AnsibleTask template src welcome.html dest multisite_dir /usegalaxy.eu.html mode,420 with_items

AnsibleTask template src welcome.html dest multisite_dir item.domain default item.name join .html mode,420 with_items galaxy_custom_sites

AnsibleTask template src multisite-base.css dest multisite_dir item.domain default item.name join -custom.css mode,420 with_items galaxy_custom_sites register custom_css

AnsibleTask copy dest multisite_dir /usegalaxy.eu-custom.css content galaxy_custom_site_base_css mode,420 when galaxy_custom_site_base_css is defined register base_css

AnsibleTask copy src files/welcome-sites/ item.name .png dest multisite_dir item.name .png mode,420 with_items galaxy_custom_sites when item.wallpaper default False

AnsibleTask shell cat galaxy_server_dir /static/style/blue/base.css if galaxy_custom_site_base_css is defined multisite_dir /usegalaxy.eu-custom.css endif multisite_dir /usegalaxy.eu.css when __galaxy_git_update_result is changed or galaxy_custom_site_base_css is defined and base_css is changed

AnsibleTask shell cat galaxy_server_dir /static/style/blue/base.css multisite_dir item.domain default item.name join -custom.css multisite_dir item.domain default item.name join .css with_items galaxy_custom_sites when __galaxy_git_update_result is changed or custom_css is changed

AnsibleTask hosts baremetal serial kolla_serial|default 0 gather_facts False roles

AnsibleTask gather_facts False hosts nova-api nova-scheduler nova-super-conductor enable_nova_True tags nova nova-api nova-api-deploy nova-api-upgrade serial kolla_serial|default 0 roles bool

AnsibleTask gather_facts False hosts compute nova-conductor nova-novncproxy nova-serialproxy nova-spicehtml5proxy enable_nova_True tags nova nova-cell nova-cell-deploy nova-cell-upgrade serial kolla_serial|default 0 roles bool

AnsibleTask gather_facts False hosts nova-scheduler enable_nova_True tags nova nova-api nova-refresh-scheduler-cell-cache serial kolla_serial|default 0 tasks bool kolla_action in

AnsibleTask gather_facts False hosts nova-super-conductor enable_nova_True tags nova nova-reload nova-api nova-api-reload serial kolla_serial|default 0 tasks bool kolla_action

AnsibleTask gather_facts False hosts compute nova-conductor nova-novncproxy nova-serialproxy nova-spicehtml5proxy enable_nova_True tags nova nova-reload nova-cell nova-cell-reload serial kolla_serial|default 0 tasks bool kolla_action

AnsibleTask gather_facts False hosts nova-api nova-scheduler enable_nova_True tags nova nova-reload nova-api nova-api-reload serial kolla_serial|default 0 tasks bool kolla_action

AnsibleTask gather_facts False hosts nova-api enable_nova_True tags nova nova-api nova-online-data-migrations nova-api-online-data-migrations serial kolla_serial|default 0 tasks bool kolla_action

AnsibleTask gather_facts False hosts nova-conductor enable_nova_True tags nova nova-cell nova-online-data-migrations nova-cell-online-data-migrations serial kolla_serial|default 0 tasks bool kolla_action

AnsibleTask hosts baremetal serial kolla_serial|default 0 gather_facts False roles prune-images

AnsibleTask gather_facts False hosts kolla_action_precheck roles

AnsibleTask gather_facts False hosts chrony-server chrony enable_chrony_True serial kolla_serial|default 0 roles bool

AnsibleTask gather_facts False hosts haproxy enable_haproxy_True serial kolla_serial|default 0 tags haproxy roles bool tasks bool bool bool bool bool bool bool bool bool bool bool bool bool bool bool bool bool bool bool bool bool bool bool or enable_external_mariadb_load_balancer bool bool bool bool bool bool bool bool bool bool bool bool bool bool None None bool or enable_outward_rabbitmq bool bool bool bool bool bool bool bool bool bool 'loadbalancer bool { { 'tasks_from 'loadbalancer 'tags : bool } 'when : bool kolla_action in , ' }

AnsibleTask gather_facts False hosts collectd enable_collectd_True serial kolla_serial|default 0 roles bool

AnsibleTask gather_facts False hosts zookeeper enable_zookeeper_True serial kolla_serial|default 0 roles bool

AnsibleTask gather_facts False hosts elasticsearch enable_elasticsearch_True serial kolla_serial|default 0 roles bool

AnsibleTask gather_facts False hosts influxdb enable_influxdb_True serial kolla_serial|default 0 roles bool

AnsibleTask gather_facts False hosts telegraf enable_telegraf_True serial kolla_serial|default 0 roles bool

AnsibleTask gather_facts False hosts redis enable_redis_True serial kolla_serial|default 0 roles bool

AnsibleTask gather_facts False hosts kibana enable_kibana_True serial kolla_serial|default 0 roles bool

AnsibleTask gather_facts False hosts mariadb enable_mariadb_True roles bool

AnsibleTask gather_facts False hosts memcached enable_memcached_True serial kolla_serial|default 0 roles bool

AnsibleTask gather_facts False hosts prometheus prometheus-node-exporter prometheus-mysqld-exporter prometheus-haproxy-exporter prometheus-cadvisor prometheus-alertmanager prometheus-openstack-exporter prometheus-elasticsearch-exporter prometheus-blackbox-exporter enable_prometheus_True serial kolla_serial|default 0 roles bool

AnsibleTask gather_facts False hosts iscsid tgtd enable_iscsid_True serial kolla_serial|default 0 roles bool

AnsibleTask gather_facts False hosts multipathd enable_multipathd_True serial kolla_serial|default 0 roles bool

AnsibleTask gather_facts False hosts rabbitmq enable_rabbitmq_True roles rabbitmq_cluster_cookie rabbitmq_cluster_port rabbitmq_epmd_port rabbitmq_management_port rabbitmq_monitoring_password rabbitmq_monitoring_user rabbitmq_password rabbitmq_port rabbitmq_user bool

AnsibleTask gather_facts False hosts outward-rabbitmq enable_outward_rabbitmq_True roles outward_rabbitmq_cluster_cookie outward_rabbitmq_cluster_port outward_rabbitmq_epmd_port outward_rabbitmq_management_port outward_rabbitmq_password outward_rabbitmq_port outward_rabbitmq_user bool

AnsibleTask gather_facts False hosts qdrouterd enable_qdrouterd_True serial kolla_serial|default 0 roles bool

AnsibleTask gather_facts False hosts etcd enable_etcd_True serial kolla_serial|default 0 roles bool

AnsibleTask gather_facts False hosts keystone enable_keystone_True serial kolla_serial|default 0 roles bool

AnsibleTask gather_facts False hosts kafka enable_kafka_True serial kolla_serial|default 0 roles bool

AnsibleTask gather_facts False hosts storm-worker storm-nimbus serial kolla_serial|default 0 roles bool

AnsibleTask gather_facts False hosts karbor enable_karbor_True serial kolla_serial|default 0 roles bool

AnsibleTask gather_facts False hosts swift-account-server swift-container-server swift-object-server swift-proxy-server enable_swift_True serial kolla_serial|default 0 roles bool

AnsibleTask gather_facts False hosts glance-api enable_glance_True serial kolla_serial|default 0 roles bool

AnsibleTask gather_facts False hosts ironic-api ironic-conductor ironic-inspector ironic-pxe enable_ironic_True serial kolla_serial|default 0 roles bool

AnsibleTask gather_facts False hosts cinder-api cinder-backup cinder-scheduler cinder-volume enable_cinder_True serial kolla_serial|default 0 roles bool

AnsibleTask gather_facts False hosts placement-api enable_placement_True serial kolla_serial|default 0 roles bool

AnsibleTask gather_facts False hosts openvswitch enable_openvswitch_True_enable_ovs_dpdk_False serial kolla_serial|default 0 roles enable_openvswitch bool and not enable_ovs_dpdk bool

AnsibleTask gather_facts False hosts openvswitch enable_openvswitch_True_enable_ovs_dpdk_True serial kolla_serial|default 0 roles enable_openvswitch bool and enable_ovs_dpdk bool

AnsibleTask gather_facts False hosts hyperv enable_hyperv_True serial kolla_serial|default 0 roles bool

AnsibleTask gather_facts False hosts neutron-server neutron-dhcp-agent neutron-l3-agent ironic-neutron-agent neutron-metadata-agent neutron-metering-agent compute manila-share enable_neutron_True serial kolla_serial|default 0 roles bool

AnsibleTask gather_facts False hosts compute enable_kuryr_True serial kolla_serial|default 0 roles bool

AnsibleTask gather_facts False hosts heat-api heat-api-cfn heat-engine enable_heat_True serial kolla_serial|default 0 roles bool

AnsibleTask gather_facts False hosts horizon enable_horizon_True serial kolla_serial|default 0 roles bool

AnsibleTask gather_facts False hosts murano-api murano-engine enable_murano_True serial kolla_serial|default 0 roles bool

AnsibleTask gather_facts False hosts solum-api solum-worker solum-deployer solum-conductor enable_solum_True serial kolla_serial|default 0 roles bool

AnsibleTask gather_facts False hosts magnum-api magnum-conductor enable_magnum_True serial kolla_serial|default 0 roles bool

AnsibleTask gather_facts False hosts mistral-api mistral-engine mistral-executor enable_mistral_True serial kolla_serial|default 0 roles bool

AnsibleTask gather_facts False hosts qinling-api qinling-engine enable_qinling_True serial kolla_serial|default 0 roles bool

AnsibleTask gather_facts False hosts sahara-api sahara-engine enable_sahara_True serial kolla_serial|default 0 roles bool

AnsibleTask gather_facts False hosts mongodb enable_mongodb_True serial kolla_serial|default 0 roles bool

AnsibleTask gather_facts False hosts panko-api enable_panko_True serial kolla_serial|default 0 roles bool

AnsibleTask gather_facts False hosts manila-api manila-data manila-share manila-scheduler enable_manila_True serial kolla_serial|default 0 roles bool

AnsibleTask gather_facts False hosts gnocchi-api gnocchi-metricd gnocchi-statsd enable_gnocchi_True serial kolla_serial|default 0 roles bool

AnsibleTask gather_facts False vars_files roles/panko/defaults/main.yml hosts ceilometer-central ceilometer-notification ceilometer-compute ceilometer-ipmi enable_ceilometer_True serial kolla_serial|default 0 roles bool

AnsibleTask gather_facts False hosts monasca monasca-agent monasca-api monasca-grafana monasca-log-api monasca-log-transformer monasca-log-persister monasca-log-metrics monasca-thresh monasca-notification monasca-persister enable_monasca_True serial kolla_serial|default 0 roles bool

AnsibleTask gather_facts False hosts aodh-api aodh-evaluator aodh-listener aodh-notifier enable_aodh_True serial kolla_serial|default 0 roles bool

AnsibleTask gather_facts False hosts barbican-api barbican-keystone-listener barbican-worker enable_barbican_True serial kolla_serial|default 0 roles bool

AnsibleTask gather_facts False hosts congress-api congress-policy-engine congress-datasource enable_congress_True serial kolla_serial|default 0 roles bool

AnsibleTask gather_facts False hosts cyborg enable_cyborg_True serial serial|default 0 roles bool

AnsibleTask gather_facts False hosts tempest enable_tempest_True serial kolla_serial|default 0 roles bool

AnsibleTask gather_facts False hosts designate-api designate-central designate-producer designate-mdns designate-worker designate-sink designate-backend-bind9 enable_designate_True serial kolla_serial|default 0 roles bool

AnsibleTask gather_facts False hosts rally enable_rally_True serial kolla_serial|default 0 roles bool

AnsibleTask gather_facts False hosts vmtp enable_vmtp_True serial kolla_serial|default 0 roles bool

AnsibleTask gather_facts False hosts trove-api trove-conductor trove-taskmanager enable_trove_True serial kolla_serial|default 0 roles bool

AnsibleTask gather_facts False hosts watcher-api watcher-engine watcher-applier enable_watcher_True serial kolla_serial|default 0 roles bool

AnsibleTask gather_facts False hosts grafana enable_grafana_True serial kolla_serial|default 0 roles bool

AnsibleTask gather_facts False hosts cloudkitty-api cloudkitty-processor enable_cloudkitty_True serial kolla_serial|default 0 roles bool

AnsibleTask gather_facts False hosts freezer-api freezer-scheduler enable_freezer_True serial kolla_serial|default 0 roles bool

AnsibleTask gather_facts False hosts senlin-api senlin-conductor senlin-engine senlin-health-manager enable_senlin_True serial kolla_serial|default 0 roles bool

AnsibleTask gather_facts False hosts searchlight-api searchlight-listener enable_searchlight_True serial kolla_serial|default 0 roles bool

AnsibleTask gather_facts False hosts tacker-server tacker-conductor enable_tacker_True serial kolla_serial|default 0 roles bool

AnsibleTask gather_facts False hosts octavia-api octavia-health-manager octavia-housekeeping octavia-worker enable_octavia_True serial kolla_serial|default 0 roles bool

AnsibleTask gather_facts False hosts zun-api zun-wsproxy zun-compute enable_zun_True serial kolla_serial|default 0 roles bool

AnsibleTask gather_facts False hosts skydive-agent skydive-analyzer enable_skydive_True serial kolla_serial|default 0 roles bool

AnsibleTask gather_facts False hosts vitrage-api vitrage-graph vitrage-notifier vitrage-ml enable_vitrage_True serial kolla_serial|default 0 roles bool

AnsibleTask gather_facts False hosts blazar-api blazar-manager enable_blazar_True serial kolla_serial|default 0 roles bool

AnsibleTask gather_facts False hosts masakari-api masakari-engine masakari-monitors enable_masakari_True serial kolla_serial|default 0 roles bool

AnsibleTask file path node_config_directory item.key state directory owner config_owner_user group config_owner_group mode,0770 become True when item.value.enabled bool inventory_hostname in groups item.value.group with_dict aodh_services

AnsibleTask set_fact aodh_policy_file aodh_policy.results.0.stat.path basename aodh_policy_file_path aodh_policy.results.0.stat.path when aodh_policy.results

AnsibleTask template src aodh_policy_file_path dest node_config_directory item.key aodh_policy_file mode,0660 become True when aodh_policy_file is defined inventory_hostname in groups item.value.group item.value.enabled bool with_dict aodh_services notify Restart item.key container

AnsibleTask become True copy src node_config /certificates/ca/ dest node_config_directory item.key /ca-certificates mode,0644 when item.value.enabled bool inventory_hostname in groups item.value.group kolla_copy_ca_into_containers bool with_dict aodh_services notify Restart item.key container

AnsibleTask template src item.key .json.j2 dest node_config_directory item.key /config.json mode,0660 become True when item.value.enabled bool inventory_hostname in groups item.value.group with_dict aodh_services notify Restart item.key container

AnsibleTask vars service aodh_services template src wsgi-aodh.conf.j2 dest node_config_directory /aodh-api/wsgi-aodh.conf mode,0660 become True when inventory_hostname in groups service.group service.enabled bool notify Restart aodh-api container

AnsibleTask become True shell set -o pipefail docker exec -t barbican_api openstack os-auth-url= openstack_auth.auth_url os-password= openstack_auth.password os-username= openstack_auth.username os-project-name= openstack_auth.project_name secret store -f value -p kolla head -1 register barbican_store_secret run_once True when kolla_enable_sanity_barbican bool

AnsibleTask become True command docker exec -t barbican_api openstack os-auth-url= openstack_auth.auth_url os-password= openstack_auth.password os-username= openstack_auth.username os-project-name= openstack_auth.project_name secret get -f value -p barbican_store_secret.stdout register barbican_get_secret failed_when barbican_get_secret.stdout run_once True when kolla_enable_sanity_barbican bool

AnsibleTask become True command docker exec -t barbican_api openstack os-auth-url= openstack_auth.auth_url os-password= openstack_auth.password os-username= openstack_auth.username os-project-name= openstack_auth.project_name secret delete barbican_store_secret.stdout run_once True when kolla_enable_sanity_barbican bool

AnsibleTask file path node_config_directory item.key state directory owner config_owner_user group config_owner_group mode,0770 become True when inventory_hostname in groups item.value.group item.value.enabled bool with_dict barbican_services

AnsibleTask vars service barbican_services file path node_config_directory item state directory owner config_owner_user group config_owner_group mode,0770 become True when inventory_hostname in groups service.group service.enabled bool with_items barbican-api/vassals

AnsibleTask set_fact barbican_policy_file barbican_policy.results.0.stat.path basename barbican_policy_file_path barbican_policy.results.0.stat.path when barbican_policy.results

AnsibleTask become True copy src node_config /certificates/ca/ dest node_config_directory item.key /ca-certificates mode,0644 when inventory_hostname in groups item.value.group item.value.enabled bool kolla_copy_ca_into_containers bool with_dict barbican_services notify Restart item.key container

AnsibleTask template src item.key .json.j2 dest node_config_directory item.key /config.json mode,0660 become True when inventory_hostname in groups item.value.group item.value.enabled bool with_dict barbican_services notify Restart item.key container

AnsibleTask vars service barbican_services template src node_custom_config /barbican/barbican-api-paste.ini dest node_config_directory /barbican-api/barbican-api-paste.ini mode,0660 become True when inventory_hostname in groups service.group service.enabled bool check_barbican_api_paste_ini.stat.exists notify Restart barbican-api container

AnsibleTask template src barbican_policy_file_path dest node_config_directory item.key barbican_policy_file mode,0660 become True when barbican_policy_file is defined inventory_hostname in groups item.value.group item.value.enabled bool with_dict barbican_services notify Restart item.key container

AnsibleTask command rpm -q firewalld register firewalld_check changed_when False failed_when firewalld_check.rc 1 args warn False when ansible_os_family

AnsibleTask become True service name item enabled False state stopped with_items firewalld when ansible_os_family firewalld_check.rc 0

AnsibleTask command docker ps -f -q become True failed_when False changed_when False register running_containers

AnsibleTask service name docker state started enabled True become True

AnsibleTask command docker info become True changed_when False register result until result is success retries 6 delay 10

AnsibleTask command docker start running_containers.stdout become True

AnsibleTask file path virtualenv recurse True state directory owner kolla_user group kolla_group become True when virtualenv is not none

AnsibleTask file path node_config_directory state directory owner kolla_user group kolla_group mode,493 become True when create_kolla_user bool

AnsibleTask file path node_config_directory state directory mode,493 become True when not create_kolla_user bool

AnsibleTask set_fact docker_config docker_config combine docker_zun_config when docker_configure_for_zun bool

AnsibleTask debug msg docker_custom_option is deprecated in favor of docker_custom_config when docker_custom_option length 0

AnsibleTask vars registries docker_registry set_fact docker_config docker_config combine registries when docker_registry_insecure bool

AnsibleTask set_fact docker_config docker_config combine docker_storage_driver when docker_storage_driver length 0

AnsibleTask set_fact docker_config docker_config combine docker_runtime_directory when docker_runtime_directory length 0

AnsibleTask set_fact docker_config docker_config combine docker_custom_config

AnsibleTask become True copy content docker_config to_nice_json dest /etc/docker/daemon.json mode,420 register docker_configured

AnsibleTask become True file path /etc/systemd/system/docker.service.d/kolla.conf state absent when not docker_custom_option not docker_configure_for_zun|bool

AnsibleTask become True file path /etc/systemd/system/docker.service.d state directory recurse True when docker_custom_option length 0 or docker_configure_for_zun|bool

AnsibleTask become True template src docker_systemd_service.j2 dest /etc/systemd/system/docker.service.d/kolla.conf when docker_custom_option length 0 or docker_configure_for_zun|bool

AnsibleTask command apparmor_parser -R /etc/apparmor.d/usr.sbin.libvirtd become True when ansible_distribution Ubuntu apparmor_libvirtd_profile.stat.exists

AnsibleTask service name docker state restarted become True when docker_configured.changed or docker_reloaded.changed

AnsibleTask service name ntp state stopped become True when ansible_os_family Debian enable_host_ntp bool

AnsibleTask service name ntpd state stopped become True when ansible_os_family RedHat enable_host_ntp bool

AnsibleTask command ntpd -gq become True when enable_host_ntp bool

AnsibleTask service name ntp state started enabled True become True when ansible_os_family Debian enable_host_ntp bool

AnsibleTask service name ntpd state started enabled True become True when ansible_os_family RedHat enable_host_ntp bool

AnsibleTask vars nginx_user if is_debian else is_debian kolla_base_distro in become True command docker exec bifrost_deploy bash -c -p /var/log/kolla/ironic chown ironic ironic /var/log/kolla/ironic mkdir -p /var/log/kolla/ironic-inspector chown ironic ironic /var/log/kolla/ironic-inspector mkdir -p /var/log/kolla/nginx chown nginx_user nginx_user /var/log/kolla/nginx

AnsibleTask become True command docker exec bifrost_deploy bash -c /bifrost/env-vars ansible-playbook -vvvv -i /bifrost/playbooks/inventory/target /bifrost/playbooks/install.yaml -e /etc/bifrost/bifrost.yml -e /etc/bifrost/dib.yml -e skip_package_install=true

AnsibleTask become True command docker exec bifrost_deploy bash -c /root/.ssh mkdir /home/ironic/.ssh cp -f /etc/bifrost/id_rsa /root/.ssh/id_rsa cp -f /etc/bifrost/id_rsa.pub /root/.ssh/id_rsa.pub cp -f /etc/bifrost/ssh_config /root/.ssh/config cp -f /etc/bifrost/id_rsa /home/ironic/.ssh/id_rsa cp -f /etc/bifrost/id_rsa.pub /home/ironic/.ssh/id_rsa.pub cp -f /etc/bifrost/ssh_config /home/ironic/.ssh/config chmod 600 /root/.ssh/id_rsa chmod 600 /root/.ssh/id_rsa.pub chmod 600 /root/.ssh/config chmod 600 /home/ironic/.ssh/id_rsa chmod 600 /home/ironic/.ssh/id_rsa.pub chmod 600 /home/ironic/.ssh/config chown ironic ironic /home/ironic/.ssh/id_rsa chown ironic ironic /home/ironic/.ssh/id_rsa.pub chown ironic ironic /home/ironic/.ssh/config

AnsibleTask file path node_config_directory item state directory owner config_owner_user group config_owner_group mode,0770 become True with_items bifrost

AnsibleTask template src item.src dest node_config_directory /bifrost/ item.dest mode,0660 become True with_items

AnsibleTask become True command docker exec bifrost_deploy bash -c /bifrost/env-vars export BIFROST_INVENTORY_SOURCE=/etc/bifrost/servers.yml ansible-playbook -vvvv -i /bifrost/playbooks/inventory/bifrost_inventory.py /bifrost/playbooks/enroll-dynamic.yaml -e /etc/bifrost/bifrost.yml

AnsibleTask become True command docker exec bifrost_deploy bash -c /bifrost/env-vars export BIFROST_INVENTORY_SOURCE=/etc/bifrost/servers.yml ansible-playbook -vvvv -i /bifrost/playbooks/inventory/bifrost_inventory.py /bifrost/playbooks/deploy-dynamic.yaml -e /etc/bifrost/bifrost.yml

AnsibleTask become True command docker exec item.name /usr/local/bin/kolla_set_configs check changed_when False failed_when False register check_results when inventory_hostname in groups item.group with_items

AnsibleTask become True command docker exec kolla_toolbox openstack os-interface internal os-auth-url openstack_auth.auth_url os-identity-api-version 3 os-project-domain-name openstack_auth.domain_name os-project-name openstack_auth.project_name os-username openstack_auth.username os-password openstack_auth.password os-user-domain-name openstack_auth.user_domain_name os-region-name openstack_region_name if openstack_cacert os-cacert openstack_cacert endif aggregate create blazar_aggregate_pool_name register blazar_host_aggregate changed_when blazar_host_aggregate is success failed_when blazar_host_aggregate.rc 0 blazar_host_aggregate.stderr.find -1 run_once True delegate_to groups 0

AnsibleTask file path node_config_directory item.key state directory owner config_owner_user group config_owner_group mode,0770 become True when inventory_hostname in groups item.value.group item.value.enabled bool with_dict blazar_services

AnsibleTask set_fact blazar_policy_file blazar_policy.results.0.stat.path basename blazar_policy_file_path blazar_policy.results.0.stat.path when blazar_policy.results

AnsibleTask become True copy src node_config /certificates/ca/ dest node_config_directory item.key /ca-certificates mode,0644 when inventory_hostname in groups item.value.group item.value.enabled bool kolla_copy_ca_into_containers bool with_dict blazar_services notify Restart item.key container

AnsibleTask template src item.key .json.j2 dest node_config_directory item.key /config.json mode,0660 become True when item.value.enabled bool inventory_hostname in groups item.value.group with_dict blazar_services notify Restart item.key container

AnsibleTask template src blazar_policy_file_path dest node_config_directory item.key blazar_policy_file mode,0660 become True when blazar_policy_file is defined inventory_hostname in groups item.value.group item.value.enabled bool with_dict blazar_services notify Restart item.key container

AnsibleTask file path node_config_directory item.key state directory owner config_owner_user group config_owner_group mode,0770 become True when inventory_hostname in groups item.value.group item.value.enabled bool with_dict ceilometer_services

AnsibleTask set_fact custom_meter_folder_exist ceilometer_custom_meters_folder.stat.exists and ceilometer_custom_meters_folder.stat.isdir

AnsibleTask set_fact should_copy_custom_meter_definitions custom_meter_folder_exist and ceilometer_custom_meters_folder_found_files.matched 0

AnsibleTask file path node_config_directory item.key /meters.d state directory owner config_owner_user group config_owner_group mode,0770 become True with_dict ceilometer_services when should_copy_custom_meter_definitions inventory_hostname in groups item.value.group item.value.enabled bool

AnsibleTask copy src node_custom_config /ceilometer/ ceilometer_custom_meters_local_folder dest node_config_directory item.key /meters.d force True mode,0660 become True when should_copy_custom_meter_definitions inventory_hostname in groups item.value.group item.value.enabled bool with_dict ceilometer_services notify Restart item.key container

AnsibleTask copy src node_custom_config /ceilometer/polling.yaml dest node_config_directory item.key /polling.yaml force True mode,0660 become True when ceilometer_polling_file.stat.exists inventory_hostname in groups item.value.group item.value.enabled bool with_dict ceilometer_services notify Restart item.key container

AnsibleTask set_fact ceilometer_polling_file_path ceilometer_polling_file.stat.path when ceilometer_polling_file.stat.exists

AnsibleTask copy src node_custom_config /ceilometer/gnocchi_resources.yaml dest node_config_directory item.key /gnocchi_resources.yaml force True mode,0660 become True when ceilometer_gnocchi_resources_file.stat.exists inventory_hostname in groups item.value.group item.value.enabled bool with_dict ceilometer_services notify Restart item.key container

AnsibleTask set_fact ceilometer_gnocchi_resources_file_path ceilometer_gnocchi_resources_file.stat.path when ceilometer_gnocchi_resources_file.stat.exists

AnsibleTask set_fact ceilometer_policy_file ceilometer_policy.results.0.stat.path basename ceilometer_policy_file_path ceilometer_policy.results.0.stat.path when ceilometer_policy.results

AnsibleTask become True copy src node_config /certificates/ca/ dest node_config_directory item.key /ca-certificates mode,0644 when inventory_hostname in groups item.value.group item.value.enabled bool kolla_copy_ca_into_containers bool with_dict ceilometer_services notify Restart item.key container

AnsibleTask template src item.key .json.j2 dest node_config_directory item.key /config.json mode,0660 become True when inventory_hostname in groups item.value.group item.value.enabled bool with_dict ceilometer_services notify Restart item.key container

AnsibleTask vars service ceilometer_services copy src node_custom_config /ceilometer/event_definitions.yaml dest node_config_directory /ceilometer-notification/event_definitions.yaml force True mode,0660 become True register ceilometer_event_definitions_overwriting when ceilometer_event_definitions_file.stat.exists inventory_hostname in groups service.group service.enabled bool notify Restart ceilometer-notification container

AnsibleTask vars service ceilometer_services template src event_definitions.yaml.j2 dest node_config_directory /ceilometer-notification/event_definitions.yaml mode,0660 become True register ceilometer_event_definitions when inventory_hostname in groups service.group service.enabled bool not ceilometer_event_definitions_file.stat.exists notify Restart ceilometer-notification container

AnsibleTask vars service ceilometer_services copy src node_custom_config /ceilometer/event_pipeline.yaml dest node_config_directory /ceilometer-notification/event_pipeline.yaml force True mode,0660 become True register ceilometer_event_pipeline_overwriting when ceilometer_event_pipeline_file.stat.exists inventory_hostname in groups service.group service.enabled bool notify Restart ceilometer-notification container

AnsibleTask vars service ceilometer_services template src event_pipeline.yaml.j2 dest node_config_directory /ceilometer-notification/event_pipeline.yaml mode,0660 become True when inventory_hostname in groups service.group service.enabled bool not ceilometer_event_pipeline_file.stat.exists notify Restart ceilometer-notification container

AnsibleTask vars services_require_pipeline copy src node_custom_config /ceilometer/pipeline.yaml dest node_config_directory item.key /pipeline.yaml force True mode,0660 become True register ceilometer_pipeline_overwriting when ceilometer_pipeline_file.stat.exists inventory_hostname in groups item.value.group item.value.enabled bool item.key in services_require_pipeline with_dict ceilometer_services notify Restart item.key container

AnsibleTask vars services_require_pipeline template src pipeline.yaml.j2 dest node_config_directory item.key /pipeline.yaml mode,0660 become True when inventory_hostname in groups item.value.group item.value.enabled bool item.key in services_require_pipeline not ceilometer_pipeline_file.stat.exists with_dict ceilometer_services notify Restart item.key container

AnsibleTask vars service ceilometer_services copy src node_custom_config /vmware_ca dest node_config_directory /ceilometer-compute/vmware_ca mode,0660 when nova_compute_virt_type vmware not vmware_vcenter_insecure bool inventory_hostname in groups service.group service.enabled bool notify Restart ceilometer-compute container

AnsibleTask template src ceilometer_policy_file_path dest node_config_directory item.key ceilometer_policy_file mode,0660 become True when ceilometer_policy_file is defined inventory_hostname in groups item.value.group item.value.enabled bool with_dict ceilometer_services notify Restart item.key container

AnsibleTask fail msg gnocchi is required but not enabled run_once True changed_when False when enable_ceilometer bool not enable_gnocchi bool

AnsibleTask file path certificates_dir /private/internal state directory recurse True mode,0770

AnsibleTask file path certificates_dir /private/external state directory recurse True mode,0770

AnsibleTask file path certificates_dir /ca state directory recurse True mode,0770

AnsibleTask template src item .j2 dest certificates_dir item mode,0660 with_items openssl-kolla.cnf

AnsibleTask command creates= item openssl genrsa -out item with_items certificates_dir /private/external/external.key

AnsibleTask file path certificates_dir /private/external/external.key mode,0660 state file

AnsibleTask command creates= item openssl req -new -nodes -sha256 -x509 -config certificates_dir /openssl-kolla.cnf -days 3650 -extensions v3_req -key certificates_dir /private/external/external.key -out item with_items certificates_dir /private/external/external.crt

AnsibleTask copy src certificates_dir /private/external/external.crt dest kolla_external_fqdn_cacert mode,0660

AnsibleTask copy src certificates_dir /private/external/external.crt dest certificates_dir /private/internal/internal.crt remote_src True mode,0660

AnsibleTask copy src certificates_dir /private/external/external.key dest certificates_dir /private/internal/internal.key remote_src True mode,0660

AnsibleTask copy src kolla_external_fqdn_cert dest kolla_internal_fqdn_cert remote_src True mode,0660

AnsibleTask copy src kolla_external_fqdn_cacert dest kolla_internal_fqdn_cacert remote_src True mode,0660

AnsibleTask template src item .j2 dest certificates_dir item mode,0660 with_items openssl-kolla-internal.cnf

AnsibleTask command creates= item openssl genrsa -out item with_items certificates_dir /private/internal/internal.key

AnsibleTask file path certificates_dir /private/internal/internal.key mode,0660 state file

AnsibleTask command creates= item openssl req -new -nodes -sha256 -x509 -config certificates_dir /openssl-kolla-internal.cnf -days 3650 -extensions v3_req -key certificates_dir /private/internal/internal.key -out item with_items certificates_dir /private/internal/internal.crt

AnsibleTask copy src certificates_dir /private/internal/internal.crt dest kolla_internal_fqdn_cacert mode,0660

AnsibleTask vars service_name chrony service chrony_services service_name file path node_config_directory item state directory owner config_owner_user group config_owner_group mode,0770 become True when inventory_hostname in groups service.group service.enabled bool with_items chrony

AnsibleTask vars service_name chrony service chrony_services service_name template src item .json.j2 dest node_config_directory item /config.json mode,0660 become True when inventory_hostname in groups service.group service.enabled bool with_items chrony notify Restart chrony container

AnsibleTask vars service_name chrony service chrony_services service_name template src item dest node_config_directory /chrony/chrony.conf mode,0660 become True when inventory_hostname in groups service.group service.enabled bool with_first_found node_custom_config /chrony/ inventory_hostname /chrony.conf node_custom_config /chrony/chrony.conf chrony.conf.j2 notify Restart chrony container

AnsibleTask file path node_config_directory item.key state directory owner config_owner_user group config_owner_group mode,0770 become True when inventory_hostname in groups item.value.group item.value.enabled bool with_dict cinder_services

AnsibleTask set_fact cinder_policy_file cinder_policy.results.0.stat.path basename cinder_policy_file_path cinder_policy.results.0.stat.path when cinder_policy.results

AnsibleTask become True copy src node_config /certificates/ca/ dest node_config_directory item.key /ca-certificates mode,0644 when inventory_hostname in groups item.value.group item.value.enabled bool kolla_copy_ca_into_containers bool with_dict cinder_services notify Restart item.key container

AnsibleTask template src item.key .json.j2 dest node_config_directory item.key /config.json mode,0660 become True when inventory_hostname in groups item.value.group item.value.enabled bool with_dict cinder_services notify Restart item.key container

AnsibleTask vars service cinder_services become True template src item dest node_config_directory /cinder-api/cinder-wsgi.conf mode,0660 with_first_found node_custom_config /cinder/ inventory_hostname /cinder-wsgi.conf node_custom_config /cinder/cinder-wsgi.conf cinder-wsgi.conf.j2 when inventory_hostname in groups service.group service.enabled bool notify Restart cinder-api container

AnsibleTask become True template src cinder_policy_file_path dest node_config_directory item.key cinder_policy_file mode,0660 when item.value.enabled bool cinder_policy_file is defined inventory_hostname in groups item.value.group with_dict cinder_services notify Restart item.key container

AnsibleTask become True template src item dest node_config_directory /cinder-volume/nfs_shares mode,0660 with_first_found node_custom_config /nfs_shares.j2 node_custom_config /cinder/nfs_shares.j2 node_custom_config /cinder/cinder-volume/nfs_shares.j2 node_custom_config /cinder/ inventory_hostname /nfs_shares.j2 node_custom_config /nfs_shares node_custom_config /cinder/nfs_shares node_custom_config /cinder/cinder-volume/nfs_shares node_custom_config /cinder/ inventory_hostname /nfs_shares not enable_cinder_backend_nfs bool and not enable_cinder_backend_hnas_nfs bool when inventory_hostname in groups notify Restart cinder-volume container

AnsibleTask copy src node_custom_config /cinder/cinder-volume/ ceph_cinder_keyring dest node_config_directory /cinder-volume/ mode,0660 become True when external_ceph_cephx_enabled bool inventory_hostname in groups cinder_services .enabled bool notify Restart cinder-volume container

AnsibleTask copy src node_custom_config /cinder/ item dest node_config_directory /cinder-backup/ mode,0660 become True register cinder_backup_ceph_keyring with_items cinder-backup/ ceph_cinder_keyring cinder-backup/ ceph_cinder_backup_keyring when external_ceph_cephx_enabled bool inventory_hostname in groups cinder_services .enabled bool notify Restart cinder-backup container

AnsibleTask become True file path node_config_directory item recurse True owner config_owner_user group config_owner_group when inventory_hostname in groups item with_items cinder-volume cinder-backup

AnsibleTask run_once True fail msg Please enable at least one backend when enabling Cinder when not skip_cinder_backend_check bool not enable_cinder_backend_hnas_nfs bool not enable_cinder_backend_iscsi bool not enable_cinder_backend_lvm bool not enable_cinder_backend_nfs bool not cinder_backend_ceph bool not cinder_backend_vmwarevc_vmdk bool not enable_cinder_backend_zfssa_iscsi bool not enable_cinder_backend_quobyte bool

AnsibleTask become True command vgs cinder_volume_group register result changed_when False failed_when result is failed when enable_cinder bool enable_cinder_backend_lvm bool inventory_hostname in groups

AnsibleTask file path node_config_directory item.key state directory owner config_owner_user group config_owner_group mode,0770 become True when inventory_hostname in groups item.value.group item.value.enabled bool with_dict cloudkitty_services

AnsibleTask set_fact cloudkitty_policy_file cloudkitty_policy.results.0.stat.path basename cloudkitty_policy_file_path cloudkitty_policy.results.0.stat.path when cloudkitty_policy.results

AnsibleTask copy src node_custom_config /cloudkitty/ cloudkitty_custom_metrics_yaml_file dest node_config_directory item.key cloudkitty_custom_metrics_yaml_file mode,0660 become True when cloudkitty_custom_metrics_file.stat.exists inventory_hostname in groups item.value.group item.value.enabled bool with_dict cloudkitty_services notify Restart item.key container

AnsibleTask set_fact cloudkitty_custom_metrics_used cloudkitty_custom_metrics_file.stat.exists

AnsibleTask become True copy src node_config /certificates/ca/ dest node_config_directory item.key /ca-certificates mode,0644 when item.value.enabled bool inventory_hostname in groups item.value.group kolla_copy_ca_into_containers bool with_dict cloudkitty_services notify Restart item.key container

AnsibleTask template src item.key .json.j2 dest node_config_directory item.key /config.json mode,0660 become True when item.value.enabled bool inventory_hostname in groups item.value.group with_dict cloudkitty_services notify Restart item.key container

AnsibleTask vars service cloudkitty_services template src wsgi-cloudkitty.conf.j2 dest node_config_directory /cloudkitty-api/wsgi-cloudkitty.conf mode,0660 become True when inventory_hostname in groups service.group service.enabled bool notify Restart cloudkitty-api container

AnsibleTask template src cloudkitty_policy_file_path dest node_config_directory item.key cloudkitty_policy_file mode,0660 become True when cloudkitty_policy_file is defined inventory_hostname in groups item.value.group item.value.enabled bool with_dict cloudkitty_services notify Restart item.key container

AnsibleTask file path node_config_directory item.key state directory owner config_owner_user group config_owner_group mode,0770 become True when inventory_hostname in groups item.value.group item.value.enabled bool with_dict collectd_services

AnsibleTask file path node_config_directory item.key /collectd.conf.d state directory owner config_owner_user group config_owner_group mode,0770 become True when inventory_hostname in groups item.value.group item.value.enabled bool with_dict collectd_services

AnsibleTask template src item.key .json.j2 dest node_config_directory item.key /config.json mode,0660 become True when inventory_hostname in groups item.value.group item.value.enabled bool with_dict collectd_services notify Restart collectd container

AnsibleTask vars service collectd_services template src item dest node_config_directory /collectd/collectd.conf mode,0660 become True with_first_found node_custom_config /collectd/ inventory_hostname /collectd.conf node_custom_config /collectd/collectd.conf node_custom_config /collectd.conf collectd.conf.j2 when inventory_hostname in groups service.group service.enabled bool notify Restart collectd container

AnsibleTask become True command docker exec -t kolla_toolbox ansible version changed_when False

AnsibleTask become True file src docker_runtime_directory or /volumes/kolla_logs/_data path /var/log/kolla state link

AnsibleTask file path node_config_directory item state directory owner config_owner_user group config_owner_group mode,0770 become True with_items kolla-toolbox cron cron/logrotate

AnsibleTask file path node_config_directory item state directory mode,0770 become True with_items fluentd fluentd/input fluentd/output fluentd/format fluentd/filter when enable_fluentd bool

AnsibleTask set_fact fluentd_binary fluentd_labels.images.0.ContainerConfig.Labels.fluentd_binary when enable_fluentd bool

AnsibleTask become True copy src node_config /certificates/ca/ dest node_config_directory item.key /ca-certificates mode,0644 when item.value.enabled bool kolla_copy_ca_into_containers bool with_dict common_services notify Restart item.key container

AnsibleTask template src item.key .json.j2 dest node_config_directory item.key /config.json mode,0660 become True when item.value.enabled bool with_dict common_services notify Restart item.key container

AnsibleTask vars customised_input_files find_custom_fluentd_inputs.files map map list template src conf/input/ item .conf.j2 dest node_config_directory /fluentd/input/ item .conf mode,0660 become True when enable_fluentd bool item ~ not in customised_input_files with_items 00-global,01-syslog,02-mariadb,03-rabbitmq,04-openstack-wsgi,05-libvirt,06-zookeeper,07-kafka,09-monasca notify Restart fluentd container

AnsibleTask template src item.path dest node_config_directory /fluentd/input/ item.path basename mode,0660 when enable_fluentd bool with_items find_custom_fluentd_inputs.files notify Restart fluentd container

AnsibleTask set_fact log_direct_to_elasticsearch enable_elasticsearch bool or elasticsearch_address kolla_internal_vip_address and not enable_monasca bool

AnsibleTask vars customised_output_files find_custom_fluentd_outputs.files map map list template src conf/output/ item.name .conf.j2 dest node_config_directory /fluentd/output/ item.name .conf mode,0660 become True when enable_fluentd bool item.enabled bool item.name ~ not in customised_output_files with_items True log_direct_to_elasticsearch enable_monasca bool notify Restart fluentd container

AnsibleTask file path node_config_directory /fluentd/output/ item.name .conf state absent become True when enable_fluentd bool item.disable bool with_items not enable_monasca bool not log_direct_to_elasticsearch notify Restart fluentd container

AnsibleTask template src item.path dest node_config_directory /fluentd/output/ item.path basename mode,0660 become True when enable_fluentd bool with_items find_custom_fluentd_outputs.files notify Restart fluentd container

AnsibleTask vars customised_format_files find_custom_fluentd_format.files map map list template src conf/format/ item .conf.j2 dest node_config_directory /fluentd/format/ item .conf mode,0660 become True with_items apache_access wsgi_access when enable_fluentd bool item ~ not in customised_format_files notify Restart fluentd container

AnsibleTask template src item.path dest node_config_directory /fluentd/format/ item.path basename mode,0660 when enable_fluentd bool with_items find_custom_fluentd_format.files notify Restart fluentd container

AnsibleTask vars customised_filter_files find_custom_fluentd_filters.files map map list fluentd_version fluentd_labels.images.0.ContainerConfig.Labels.fluentd_version default 0.12 template src conf/filter/ item.src .conf.j2 dest node_config_directory /fluentd/filter/ item.dest .conf mode,0660 become True with_items if fluentd_version 0.14 else when enable_fluentd bool item.src ~ not in customised_filter_files notify Restart fluentd container

AnsibleTask template src item.path dest node_config_directory /fluentd/filter/ item.path basename mode,0660 become True with_items find_custom_fluentd_filters.files when enable_fluentd bool notify Restart fluentd container

AnsibleTask template src td-agent.conf.j2 dest node_config_directory item /td-agent.conf mode,0660 become True with_items fluentd when enable_fluentd bool notify Restart fluentd container

AnsibleTask template src cron-logrotate- item.name .conf.j2 dest node_config_directory /cron/logrotate/ item.name .conf mode,0660 become True when item.enabled bool with_items enable_aodh enable_barbican enable_blazar enable_ceilometer enable_chrony enable_cinder enable_cloudkitty enable_collectd enable_congress enable_cyborg enable_designate enable_elasticsearch enable_etcd enable_freezer enable_glance enable_gnocchi enable_grafana enable_haproxy enable_heat enable_horizon enable_influxdb enable_ironic enable_ironic enable_iscsid enable_kafka enable_karbor enable_haproxy enable_keystone enable_kibana enable_kuryr enable_magnum enable_manila enable_mariadb enable_masakari enable_mistral enable_monasca enable_mongodb enable_murano enable_neutron enable_nova enable_octavia enable_outward_rabbitmq enable_panko enable_qinling enable_rabbitmq enable_rally enable_sahara enable_searchlight enable_senlin enable_skydive enable_solum enable_storm enable_swift enable_tacker enable_tempest enable_trove enable_vitrage enable_watcher { enable_zookeeper , { 'zun , { { enable_zun } } } notify Restart cron container

AnsibleTask become True copy content rabbitmq_cluster_cookie dest node_config_directory /kolla-toolbox/rabbitmq-erlang.cookie mode,0660 when enable_rabbitmq bool notify Restart kolla-toolbox container

AnsibleTask become True file path node_config_directory item.key owner config_owner_user group config_owner_group mode,0770 ignore_errors ansible_check_mode when item.value.enabled bool item.key kolla-toolbox with_dict common_services

AnsibleTask copy content RABBITMQ_CTL_ERL_ARGS= -proto_dist inet6_tcp export ERL_INETRC=/etc/rabbitmq/erl_inetrc dest node_config_directory /kolla-toolbox/rabbitmq-env.conf mode,0600 become True when api_address_family ipv6

AnsibleTask copy content inet6 true dest node_config_directory /kolla-toolbox/erl_inetrc mode,0600 become True when api_address_family ipv6

AnsibleTask set_fact common_run True tags common when not common_run

AnsibleTask file path node_config_directory item.key state directory owner config_owner_user group config_owner_group mode,0770 become True when inventory_hostname in groups item.value.group item.value.enabled bool with_dict congress_services

AnsibleTask set_fact congress_policy_file congress_policy.results.0.stat.path basename congress_policy_file_path congress_policy.results.0.stat.path when congress_policy.results

AnsibleTask become True copy src node_config /certificates/ca/ dest node_config_directory item.key /ca-certificates mode,0644 when item.value.enabled bool inventory_hostname in groups item.value.group kolla_copy_ca_into_containers bool with_dict congress_services notify Restart item.key container

AnsibleTask template src item.key .json.j2 dest node_config_directory item.key /config.json mode,0660 become True when inventory_hostname in groups item.value.group item.value.enabled bool with_dict congress_services notify Restart item.key container

AnsibleTask template src congress_policy_file_path dest node_config_directory item.key congress_policy_file mode,0660 become True when congress_policy_file is defined inventory_hostname in groups item.value.group item.value.enabled bool with_dict congress_services notify Restart item.key container

AnsibleTask file path node_config_directory item.key state directory owner config_owner_user group config_owner_group mode,0770 become True when item.value.enabled bool inventory_hostname in groups item.value.group with_dict cyborg_services

AnsibleTask set_fact cyborg_policy_file cyborg_policy.results.0.stat.path basename cyborg_policy_file_path cyborg_policy.results.0.stat.path when cyborg_policy.results

AnsibleTask template src cyborg_policy_file_path dest node_config_directory item.key cyborg_policy_file mode,0660 become True when cyborg_policy_file is defined inventory_hostname in groups item.value.group item.value.enabled bool with_dict cyborg_services notify Restart item.key container

AnsibleTask become True copy src node_config /certificates/ca/ dest node_config_directory item.key /ca-certificates mode,0644 when item.value.enabled bool inventory_hostname in groups item.value.group kolla_copy_ca_into_containers bool with_dict cyborg_services notify Restart item.key container

AnsibleTask template src item.key .json.j2 dest node_config_directory item.key /config.json mode,0660 become True when item.value.enabled bool inventory_hostname in groups item.value.group with_dict cyborg_services notify Restart item.key container

AnsibleTask vars service cyborg_services template src node_custom_config /cyborg/cyborg-api-paste.ini dest node_config_directory /cyborg-api/api-paste.ini mode,0660 when inventory_hostname in groups service.enabled bool check_cyborg_api_paste_ini.stat.exists notify Restart cyborg-api container

AnsibleTask template src node_custom_config /designate/rndc.conf dest node_config_directory item.key /rndc.conf mode,0660 when designate_backend_external item.key in designate-worker inventory_hostname in groups item.value.group item.value.enabled bool with_dict designate_services notify Restart item.key container

AnsibleTask template src node_custom_config /designate/rndc.key dest node_config_directory item.key /rndc.key mode,0660 when designate_backend_external item.key in designate-worker inventory_hostname in groups item.value.group item.value.enabled bool with_dict designate_services notify Restart item.key container

AnsibleTask file path node_config_directory item.key state directory owner config_owner_user group config_owner_group mode,0770 become True when inventory_hostname in groups item.value.group item.value.enabled bool with_dict designate_services

AnsibleTask set_fact designate_policy_file designate_policy.results.0.stat.path basename designate_policy_file_path designate_policy.results.0.stat.path when designate_policy.results

AnsibleTask become True copy src node_config /certificates/ca/ dest node_config_directory item.key /ca-certificates mode,0644 when item.value.enabled bool inventory_hostname in groups item.value.group kolla_copy_ca_into_containers bool with_dict designate_services notify Restart item.key container

AnsibleTask template src item.key .json.j2 dest node_config_directory item.key /config.json mode,0660 become True when inventory_hostname in groups item.value.group item.value.enabled bool with_dict designate_services notify Restart item.key container

AnsibleTask vars service designate_services template src item dest node_config_directory /designate-worker/pools.yaml mode,0660 become True when inventory_hostname in groups service.group service.enabled bool with_first_found node_custom_config /designate/pools.yaml role_path /templates/pools.yaml.j2 notify Restart designate-worker container

AnsibleTask vars service designate_services template src item dest node_config_directory /designate-backend-bind9/named.conf mode,0660 become True when designate_backend inventory_hostname in groups service.group service.enabled bool with_first_found node_custom_config /designate/designate-backend-bind9/ inventory_hostname /named.conf node_custom_config /designate/designate-backend-bind9/named.conf node_custom_config /designate/named.conf role_path /templates/named.conf.j2 notify Restart designate-backend-bind9 container

AnsibleTask template src rndc.conf.j2 dest node_config_directory item.key /rndc.conf mode,0660 become True when designate_backend and designate_backend_external item.key in designate-backend-bind9 designate-worker inventory_hostname in groups item.value.group item.value.enabled bool with_dict designate_services notify Restart item.key container

AnsibleTask template src rndc.key.j2 dest node_config_directory item.key /rndc.key mode,0660 become True when designate_backend and designate_backend_external item.key in designate-backend-bind9 designate-worker inventory_hostname in groups item.value.group item.value.enabled bool with_dict designate_services notify Restart item.key container

AnsibleTask template src designate_policy_file_path dest node_config_directory item.key designate_policy_file mode,0660 become True when designate_policy_file is defined inventory_hostname in groups item.value.group item.value.enabled bool with_dict designate_services notify Restart item.key container

AnsibleTask become True command docker exec -t designate_worker designate-manage pool update file /etc/designate/pools.yaml when inventory_hostname groups 0

AnsibleTask file path node_config_directory item.key state directory owner config_owner_user group config_owner_group mode,0770 become True when inventory_hostname in groups item.value.group item.value.enabled bool with_dict elasticsearch_services

AnsibleTask become True copy src node_config /certificates/ca/ dest node_config_directory item.key /ca-certificates mode,0644 when item.value.enabled bool kolla_copy_ca_into_containers bool with_dict elasticsearch_services notify Restart item.key container

AnsibleTask template src item.key .json.j2 dest node_config_directory item.key /config.json mode,0660 become True when inventory_hostname in groups item.value.group item.value.enabled bool with_dict elasticsearch_services notify Restart item.key container

AnsibleTask template src item.key .yml.j2 dest node_config_directory item.key item.key .yml mode,0660 become True when inventory_hostname in groups item.value.group item.value.enabled bool with_dict elasticsearch_services notify Restart item.key container

AnsibleTask vars service elasticsearch_services template src item dest node_config_directory /elasticsearch-curator/elasticsearch-curator-actions.yml mode,0660 become True when inventory_hostname in groups service service.enabled bool with_first_found node_custom_config /elasticsearch/elasticsearch-curator-actions.yml role_path /templates/elasticsearch-curator-actions.yml.j2 notify Restart elasticsearch-curator container

AnsibleTask vars service elasticsearch_services template src role_path /templates/elasticsearch-curator.crontab.j2 dest node_config_directory /elasticsearch-curator/elasticsearch-curator.crontab mode,0660 become True when inventory_hostname in groups service service.enabled bool notify Restart elasticsearch-curator container

AnsibleTask file path node_config_directory item.key state directory owner config_owner_user group config_owner_group mode,0770 become True when item.value.enabled bool inventory_hostname in groups item.value.group with_dict etcd_services

AnsibleTask template src item.key .json.j2 dest node_config_directory item.key /config.json mode,0660 become True when item.value.enabled bool inventory_hostname in groups item.value.group with_dict etcd_services notify Restart item.key container

AnsibleTask file path node_config_directory item.key state directory owner config_owner_user group config_owner_group mode,0770 become True when inventory_hostname in groups item.value.group item.value.enabled bool with_dict freezer_services

AnsibleTask set_fact freezer_policy_file freezer_policy.results.0.stat.path basename freezer_policy_file_path freezer_policy.results.0.stat.path when freezer_policy.results

AnsibleTask become True copy src node_config /certificates/ca/ dest node_config_directory item.key /ca-certificates mode,0644 when item.value.enabled bool inventory_hostname in groups item.value.group kolla_copy_ca_into_containers bool with_dict freezer_services notify Restart item.key container

AnsibleTask template src item.key .json.j2 dest node_config_directory item.key /config.json mode,0660 become True when inventory_hostname in groups item.value.group item.value.enabled bool with_dict freezer_services notify Restart item.key container

AnsibleTask vars service freezer_services template src wsgi-freezer-api.conf.j2 dest node_config_directory /freezer-api/wsgi-freezer-api.conf mode,0660 become True when inventory_hostname in groups service.group service.enabled bool notify Restart freezer-api container

AnsibleTask template src freezer_policy_file_path dest node_config_directory item.key freezer_policy_file mode,0660 become True when freezer_policy_file is defined inventory_hostname in groups item.value.group item.value.enabled bool with_dict freezer_services notify Restart item.key container

AnsibleTask file path node_config_directory item.key state directory owner config_owner_user group config_owner_group mode,0770 become True when item.value.host_in_groups bool item.value.enabled bool with_dict glance_services

AnsibleTask set_fact glance_policy_file glance_policy.results.0.stat.path basename glance_policy_file_path glance_policy.results.0.stat.path when glance_policy.results

AnsibleTask become True copy src node_config /certificates/ca/ dest node_config_directory item.key /ca-certificates mode,0644 when item.value.enabled bool inventory_hostname in groups item.value.group kolla_copy_ca_into_containers bool with_dict glance_services notify Restart item.key container

AnsibleTask template src item.key .json.j2 dest node_config_directory item.key /config.json mode,0660 become True when item.value.enabled bool item.value.host_in_groups bool with_dict glance_services notify Restart item.key container

AnsibleTask template src glance_policy_file_path dest node_config_directory item.key glance_policy_file mode,0660 become True when glance_policy_file is defined item.value.host_in_groups bool item.value.enabled bool with_dict glance_services notify Restart item.key container

AnsibleTask template src node_custom_config /glance/ceph.conf dest node_config_directory /glance-api/ceph.conf mode,0660 become True when inventory_hostname in groups notify Restart glance-api container

AnsibleTask copy src node_custom_config /glance/ ceph_glance_keyring dest node_config_directory /glance-api/ ceph_glance_keyring mode,0660 become True when inventory_hostname in groups notify Restart glance-api container

AnsibleTask file path node_config_directory /glance-api recurse True owner config_owner_user group config_owner_group become True when inventory_hostname in groups

AnsibleTask file path node_config_directory item.key state directory owner config_owner_user group config_owner_group mode,0770 become True when inventory_hostname in groups item.value.group item.value.enabled bool with_dict gnocchi_services

AnsibleTask set_fact gnocchi_policy_file gnocchi_policy.results.0.stat.path basename gnocchi_policy_file_path gnocchi_policy.results.0.stat.path when gnocchi_policy.results

AnsibleTask become True copy src node_config /certificates/ca/ dest node_config_directory item.key /ca-certificates mode,0644 when item.value.enabled bool inventory_hostname in groups item.value.group kolla_copy_ca_into_containers bool with_dict gnocchi_services notify Restart item.key container

AnsibleTask template src item.key .json.j2 dest node_config_directory item.key /config.json mode,0660 become True when item.value.enabled bool inventory_hostname in groups item.value.group with_dict gnocchi_services notify Restart item.key container

AnsibleTask vars service gnocchi_services template src wsgi-gnocchi.conf.j2 dest node_config_directory item /wsgi-gnocchi.conf mode,0660 become True when inventory_hostname in groups service.enabled bool with_items gnocchi-api notify Restart gnocchi-api container

AnsibleTask template src gnocchi_policy_file_path dest node_config_directory item.key gnocchi_policy_file mode,0660 become True when gnocchi_policy_file is defined inventory_hostname in groups item.value.group item.value.enabled bool with_dict gnocchi_services notify Restart item.key container

AnsibleTask template src node_custom_config /gnocchi/ceph.conf dest node_config_directory item /ceph.conf mode,0660 become True when inventory_hostname in groups item with_items gnocchi-api gnocchi-metricd gnocchi-statsd notify Restart item container

AnsibleTask copy src node_custom_config /gnocchi/ ceph_gnocchi_keyring dest node_config_directory item ceph_gnocchi_keyring mode,0660 become True when inventory_hostname in groups item with_items gnocchi-api gnocchi-metricd gnocchi-statsd notify Restart item container

AnsibleTask become True file path node_config_directory item recurse True owner config_owner_user group config_owner_group when inventory_hostname in groups item with_items gnocchi-api gnocchi-metricd gnocchi-statsd

AnsibleTask file path node_config_directory item.key state directory owner config_owner_user group config_owner_group mode,0770 become True when inventory_hostname in groups item.value.group item.value.enabled bool with_dict grafana_services

AnsibleTask become True copy src node_config /certificates/ca/ dest node_config_directory item.key /ca-certificates mode,0644 when item.value.enabled bool kolla_copy_ca_into_containers bool with_dict grafana_services notify Restart item.key container

AnsibleTask template src item.key .json.j2 dest node_config_directory item.key /config.json mode,0660 become True when inventory_hostname in groups item.value.group item.value.enabled bool with_dict grafana_services notify Restart item.key container

AnsibleTask become True template src item.path dest node_config_directory /grafana/ item.path basename mode,0660 when item is defined with_items check_extra_conf_grafana.files notify Restart grafana container

AnsibleTask template src node_custom_config /grafana/grafana_home_dashboard.json dest node_config_directory /grafana/grafana_home_dashboard.json mode,0660 when grafana_custom_dashboard_file.stat.exists notify Restart grafana container

AnsibleTask vars service grafana_services template src item dest node_config_directory /grafana/prometheus.yaml mode,0660 become True when inventory_hostname in groups service.group service.enabled bool enable_prometheus bool with_first_found node_custom_config /grafana/ inventory_hostname /prometheus.yaml node_custom_config /grafana/prometheus.yaml prometheus.yaml.j2 notify Restart grafana container

AnsibleTask file path node_config_directory item.key state directory owner config_owner_user group config_owner_group mode,0770 become True when inventory_hostname in groups item.value.group item.value.enabled bool with_dict haproxy_services

AnsibleTask vars service haproxy_services file path node_config_directory /haproxy/services.d state directory owner config_owner_user group config_owner_group mode,0770 become True when inventory_hostname in groups service.group service.enabled bool

AnsibleTask template src item.key .json.j2 dest node_config_directory item.key /config.json mode,0660 become True when inventory_hostname in groups item.value.group item.value.enabled bool with_dict haproxy_services notify Restart item.key container

AnsibleTask vars service haproxy_services template src item dest node_config_directory /haproxy/haproxy.cfg mode,0660 become True when inventory_hostname in groups service.group service.enabled bool with_first_found node_custom_config /haproxy/ inventory_hostname /haproxy_main.cfg node_custom_config /haproxy/haproxy_main.cfg haproxy_main.cfg.j2 notify Restart haproxy container

AnsibleTask vars service haproxy_services template src item dest node_config_directory /haproxy/services.d/ mode,0660 become True when inventory_hostname in groups service.group service.enabled bool with_fileglob node_custom_config /haproxy/services.d/*.cfg notify Restart haproxy container

AnsibleTask vars service haproxy_services template src item dest node_config_directory /keepalived/keepalived.conf mode,0660 become True when inventory_hostname in groups service.group service.enabled bool with_first_found node_custom_config /keepalived/ inventory_hostname /keepalived.conf node_custom_config /keepalived/keepalived.conf keepalived.conf.j2 notify Restart keepalived container

AnsibleTask vars service haproxy_services copy src kolla_external_fqdn_cert dest node_config_directory /haproxy/ item mode,0660 become True when kolla_enable_tls_external bool inventory_hostname in groups service.group service.enabled bool with_items haproxy.pem notify Restart haproxy container

AnsibleTask vars service haproxy_services copy src kolla_internal_fqdn_cert dest node_config_directory /haproxy/ item mode,0660 become True when kolla_enable_tls_internal bool inventory_hostname in groups service.group service.enabled bool with_items haproxy-internal.pem notify Restart haproxy container

AnsibleTask vars service haproxy_services template src item dest node_config_directory /haproxy/haproxy_run.sh mode,0770 become True when inventory_hostname in groups service.group service.enabled bool with_first_found node_custom_config /haproxy/ inventory_hostname /haproxy_run.sh node_custom_config /haproxy/haproxy_run.sh haproxy_run.sh.j2 notify Restart haproxy container

AnsibleTask file path /tmp/kolla_keepalived_running state absent delegate_to localhost changed_when False check_mode False run_once True when enable_keepalived bool

AnsibleTask copy content None dest /tmp/kolla_keepalived_running mode,420 changed_when False delegate_to localhost check_mode False run_once True when enable_keepalived bool

AnsibleTask copy content ansible_hostname dest /tmp/kolla_keepalived_running mode,420 delegate_to localhost changed_when False check_mode False when inventory_hostname in groups container_facts is defined enable_keepalived bool

AnsibleTask set_fact host_running_keepalived lookup when enable_keepalived bool

AnsibleTask file path /tmp/kolla_haproxy_running state absent delegate_to localhost changed_when False check_mode False run_once True

AnsibleTask copy content None dest /tmp/kolla_haproxy_running mode,420 delegate_to localhost changed_when False check_mode False run_once True

AnsibleTask copy content ansible_hostname dest /tmp/kolla_haproxy_running mode,420 delegate_to localhost changed_when False check_mode False when inventory_hostname in groups container_facts is defined enable_haproxy bool

AnsibleTask run_once True fail msg External haproxy certificate file is not found It is configured via when kolla_enable_tls_external bool not haproxy_cert_file.stat.exists

AnsibleTask run_once True fail msg Internal haproxy certificate file is not found It is configured via when kolla_enable_tls_internal bool not haproxy_internal_cert_file.stat.exists

AnsibleTask fail check the kolla_external_vip_interface property interface kolla_external_vip_interface not found when haproxy_enable_external_vip bool kolla_external_vip_interface not in ansible_interfaces

AnsibleTask fail check the kolla_external_vip_interface settings interface kolla_external_vip_interface is not active when haproxy_enable_external_vip bool not hostvars inventory_hostname kolla_external_vip_interface

AnsibleTask command item.command -c 3 item.address register ping_output changed_when False failed_when ping_output.rc 1 with_items kolla_internal_vip_address if kolla_internal_vip_address|ipv4 else kolla_external_vip_address if kolla_external_vip_address|ipv4 else when enable_keepalived bool host_running_keepalived enable_haproxy bool

AnsibleTask become True command ip -o addr show dev api_interface register ip_addr_output changed_when False failed_when ip_addr_output is failed or kolla_internal_vip_address ipaddr ip_addr_output.stdout.split 3 is none when enable_haproxy bool enable_keepalived bool container_facts is not defined inventory_hostname in groups

AnsibleTask shell echo show stat docker exec -i haproxy socat unix-connect /var/lib/kolla/haproxy/haproxy.sock stdio register haproxy_stat_shell changed_when False failed_when False when container_facts is defined

AnsibleTask set_fact haproxy_stat haproxy_stat_shell.stdout|default

AnsibleTask vars service item.value haproxy_templates node_custom_config /haproxy-config/ inventory_hostname haproxy_service_template node_custom_config /haproxy-config/ haproxy_service_template haproxy_service_template template_file query haproxy_templates first template src template_file dest node_config_directory /haproxy/services.d/ item.key .cfg mode,0660 become True when service.enabled bool service.haproxy is defined enable_haproxy bool with_dict project_services notify Restart haproxy container

AnsibleTask become True file path node_config_directory item.key state directory owner config_owner_user group config_owner_group mode,0770 when inventory_hostname in groups item.value.group item.value.enabled bool with_dict heat_services

AnsibleTask set_fact heat_policy_file heat_policy.results.0.stat.path basename heat_policy_file_path heat_policy.results.0.stat.path when heat_policy.results

AnsibleTask become True copy src node_config /certificates/ca/ dest node_config_directory item.key /ca-certificates mode,0644 when inventory_hostname in groups item.value.group item.value.enabled bool kolla_copy_ca_into_containers bool with_dict heat_services notify Restart item.key container

AnsibleTask become True template src item.key .json.j2 dest node_config_directory item.key /config.json mode,0660 when item.value.enabled bool inventory_hostname in groups item.value.group with_dict heat_services notify Restart item.key container

AnsibleTask become True template src heat_policy_file_path dest node_config_directory item.key heat_policy_file mode,0660 when heat_policy_file is defined item.value.enabled bool inventory_hostname in groups item.value.group with_dict heat_services notify Restart item.key container

AnsibleTask become True file path node_config_directory /heat-engine/_deprecated.yaml state absent

AnsibleTask become True file path node_config_directory item.key state directory owner config_owner_user group config_owner_group mode,0770 when inventory_hostname in groups item.value.group item.value.enabled bool with_dict horizon_services

AnsibleTask become True vars horizon horizon_services template src horizon.json.j2 dest node_config_directory /horizon/config.json mode,0660 when horizon.enabled bool inventory_hostname in groups horizon.group notify Restart horizon container

AnsibleTask become True vars horizon horizon_services template src item dest node_config_directory /horizon/horizon.conf mode,0660 with_first_found node_custom_config /horizon/ inventory_hostname /horizon.conf node_custom_config /horizon/horizon.conf horizon.conf.j2 when horizon.enabled bool inventory_hostname in groups horizon.group notify Restart horizon container

AnsibleTask become True vars horizon horizon_services template src item dest node_config_directory /horizon/local_settings mode,0660 with_first_found node_custom_config /horizon/ inventory_hostname /local_settings node_custom_config /horizon/local_settings local_settings.j2 when horizon.enabled bool inventory_hostname in groups horizon.group notify Restart horizon container

AnsibleTask become True vars horizon horizon_services template src item dest node_config_directory /horizon/custom_local_settings mode,0660 with_first_found node_custom_config /horizon/ inventory_hostname /custom_local_settings node_custom_config /horizon/custom_local_settings custom_local_settings.j2 when horizon.enabled bool inventory_hostname in groups horizon.group notify Restart horizon container

AnsibleTask become True vars horizon horizon_services template src item dest node_config_directory /horizon/ item basename mode,0660 when horizon.enabled bool inventory_hostname in groups horizon.group with_items custom_policy notify Restart horizon container

AnsibleTask become True copy src node_config /certificates/ca/ dest node_config_directory item.key /ca-certificates mode,0644 when inventory_hostname in groups item.value.group item.value.enabled bool kolla_copy_ca_into_containers bool with_dict horizon_services notify Restart item.key container

AnsibleTask set_fact supported_policy_files supported_policy_format_list map project_name _\1 list

AnsibleTask set_fact custom_policy custom_policy overwritten_files.results.0.stat.path when overwritten_files.results

AnsibleTask file path node_config_directory /influxdb state directory owner config_owner_user group config_owner_group mode,0770 become True when inventory_hostname in groups item.value.group item.value.enabled bool with_dict influxdb_services

AnsibleTask template src item.key .json.j2 dest node_config_directory /influxdb/config.json mode,0660 become True when inventory_hostname in groups item.value.group item.value.enabled bool with_dict influxdb_services notify Restart influxdb container

AnsibleTask vars service influxdb_services template src item dest node_config_directory /influxdb/influxdb.conf mode,0660 become True when inventory_hostname in groups service.group service.enabled bool with_first_found node_custom_config /influxdb/ inventory_hostname /influxdb.conf node_custom_config /influxdb.conf influxdb.conf.j2 notify Restart influxdb container

AnsibleTask file path node_config_directory item.key state directory owner config_owner_user group config_owner_group mode,0770 become True when inventory_hostname in groups item.value.group item.value.enabled bool with_dict ironic_services

AnsibleTask set_fact ironic_policy_file ironic_policy.results.0.stat.path basename ironic_policy_file_path ironic_policy.results.0.stat.path when ironic_policy.results

AnsibleTask become True copy src node_config /certificates/ca/ dest node_config_directory item.key /ca-certificates mode,0644 when item.value.enabled bool inventory_hostname in groups item.value.group kolla_copy_ca_into_containers bool with_dict ironic_services notify Restart item.key container

AnsibleTask template src item.key .json.j2 dest node_config_directory item.key /config.json mode,0660 become True when inventory_hostname in groups item.value.group item.value.enabled bool with_dict ironic_services notify Restart item.key container

AnsibleTask vars service ironic_services template src item dest node_config_directory /ironic-dnsmasq/dnsmasq.conf mode,0660 become True when inventory_hostname in groups service.group service.enabled bool with_first_found node_custom_config /ironic/ironic-dnsmasq.conf node_custom_config /ironic/ inventory_hostname /ironic-dnsmasq.conf ironic-dnsmasq.conf.j2 notify Restart ironic-dnsmasq container

AnsibleTask vars service ironic_services template src item dest node_config_directory /ironic-pxe/default mode,0660 become True with_first_found node_custom_config /ironic/pxelinux.default node_custom_config /ironic/ inventory_hostname /pxelinux.default pxelinux.default.j2 when groups length 0 inventory_hostname in groups service.group service.enabled bool not enable_ironic_pxe_uefi bool not enable_ironic_ipxe bool notify Restart ironic-pxe container

AnsibleTask vars service ironic_services template src item dest node_config_directory /ironic-pxe/default mode,0660 become True with_first_found node_custom_config /ironic/ironic_pxe_uefi.default node_custom_config /ironic/ inventory_hostname /ironic_pxe_uefi.default ironic_pxe_uefi.default.j2 when inventory_hostname in groups service.group service.enabled bool enable_ironic_pxe_uefi bool notify Restart ironic-pxe container

AnsibleTask vars service ironic_services copy src node_custom_config /ironic/ item dest node_config_directory /ironic-pxe/ item mode,0660 become True with_items ironic-agent.kernel ironic-agent.initramfs when groups length 0 inventory_hostname in groups service.group service.enabled bool not enable_ironic_pxe_uefi bool not enable_ironic_ipxe bool notify Restart ironic-pxe container

AnsibleTask vars service ironic_services copy src node_custom_config /ironic/ item dest node_config_directory /ironic-ipxe/ item mode,0660 become True with_items ironic-agent.kernel ironic-agent.initramfs when groups length 0 inventory_hostname in groups service.group service.enabled bool notify Restart ironic-ipxe container

AnsibleTask vars service ironic_services template src item dest node_config_directory /ironic-ipxe/inspector.ipxe mode,0660 become True with_first_found node_custom_config /ironic/ inventory_hostname /inspector.ipxe node_custom_config /ironic/inspector.ipxe inspector.ipxe.j2 when groups length 0 inventory_hostname in groups service.group service.enabled bool notify Restart ironic-ipxe container

AnsibleTask vars service ironic_services template src item dest node_config_directory /ironic-ipxe/httpd.conf mode,0660 become True with_first_found node_custom_config /ironic/ironic-ipxe-httpd.conf ironic-ipxe-httpd.conf.j2 when service.enabled bool inventory_hostname in groups service.group notify Restart ironic-ipxe container

AnsibleTask vars services_require_policy_json template src ironic_policy_file_path dest node_config_directory item.key ironic_policy_file mode,0660 become True when ironic_policy_file is defined item.key in services_require_policy_json inventory_hostname in groups item.value.group item.value.enabled bool with_dict ironic_services notify Restart item.key container

AnsibleTask become True command iptables item ironic-inspector register ironic_inspector_chain with_items flush delete-chain when ironic_inspector_pxe_filter changed_when ironic_inspector_chain.rc 0 failed_when ironic_inspector_chain.rc 0 chain/target/match by that name not in ironic_inspector_chain.stderr

AnsibleTask fail msg ironic_dnsmasq_dhcp_range must be set when enable ironic connection local run_once True when ironic_dnsmasq_dhcp_range is none

AnsibleTask file path node_config_directory item.key state directory owner config_owner_user group config_owner_group mode,0770 become True when inventory_hostname in groups item.value.group item.value.enabled bool with_dict iscsi_services

AnsibleTask template src item.key .json.j2 dest node_config_directory item.key /config.json mode,0660 become True when inventory_hostname in groups item.value.group item.value.enabled bool with_dict iscsi_services notify Restart item.key container

AnsibleTask fail msg The SCSI target daemon tgtd is not supported on CentOS/RHEL 8 and later when ansible_os_family ansible_distribution_major_version is version_compare 8 enable_tgtd bool

AnsibleTask file path node_config_directory item.key state directory owner config_owner_user group config_owner_group mode,0770 become True when inventory_hostname in groups item.value.group item.value.enabled bool with_dict kafka_services

AnsibleTask template src item.key .json.j2 dest node_config_directory item.key /config.json mode,0660 become True when inventory_hostname in groups item.value.group item.value.enabled bool with_dict kafka_services notify Restart kafka container

AnsibleTask file path node_config_directory item.key /providers.d state directory owner config_owner_user group config_owner_group mode,0770 become True when inventory_hostname in groups item.value.group item.value.enabled bool with_dict karbor_services

AnsibleTask become True copy src node_config /certificates/ca/ dest node_config_directory item.key /ca-certificates mode,0644 when item.value.enabled bool inventory_hostname in groups item.value.group kolla_copy_ca_into_containers bool with_dict karbor_services notify Restart item.key container

AnsibleTask template src item.key .json.j2 dest node_config_directory item.key /config.json mode,0660 become True when inventory_hostname in groups item.value.group item.value.enabled bool with_dict karbor_services notify Restart item.key container

AnsibleTask vars service_name karbor-protection service karbor_services service_name copy src item dest node_config_directory service_name /providers.d/ mode,0660 become True with_fileglob node_custom_config /karbor/ service_name /providers.d/* when inventory_hostname in groups service.group service.enabled bool notify Restart karbor-protection container

AnsibleTask file path node_config_directory item.key state directory owner config_owner_user group config_owner_group mode,0770 become True when inventory_hostname in groups item.value.group item.value.enabled bool with_dict keystone_services

AnsibleTask set_fact keystone_policy_file keystone_policy.results.0.stat.path basename keystone_policy_file_path keystone_policy.results.0.stat.path when keystone_policy.results

AnsibleTask become True copy src node_config /certificates/ca/ dest node_config_directory item.key /ca-certificates mode,0644 when item.value.enabled bool inventory_hostname in groups item.value.group kolla_copy_ca_into_containers bool with_dict keystone_services notify Restart item.key container

AnsibleTask template src item.key .json.j2 dest node_config_directory item.key /config.json mode,0660 become True with_dict keystone_services when inventory_hostname in groups item.value.group item.value.enabled bool notify Restart item.key container

AnsibleTask vars keystone keystone_services.keystone file dest node_config_directory /keystone/domains/ state directory mode,0770 become True when inventory_hostname in groups keystone.group keystone.enabled bool keystone_domain_directory.stat.exists

AnsibleTask vars keystone keystone_services.keystone template src item.path dest node_config_directory /keystone/domains/ mode,0660 become True register keystone_domains when inventory_hostname in groups keystone.group keystone.enabled bool keystone_domain_directory.stat.exists with_items keystone_domains.files|default notify Restart keystone container

AnsibleTask template src keystone_policy_file_path dest node_config_directory item.key keystone_policy_file mode,0660 become True when inventory_hostname in groups item.value.group item.key in keystone keystone-fernet item.value.enabled bool keystone_policy_file is defined with_dict keystone_services notify Restart item.key container

AnsibleTask vars keystone keystone_services.keystone template src item dest node_config_directory /keystone/wsgi-keystone.conf mode,0660 become True when inventory_hostname in groups keystone.group keystone.enabled bool with_first_found node_custom_config /keystone/ inventory_hostname /wsgi-keystone.conf node_custom_config /keystone/wsgi-keystone.conf wsgi-keystone.conf.j2 notify Restart keystone container

AnsibleTask vars keystone keystone_services.keystone template src node_custom_config /keystone/keystone-paste.ini dest node_config_directory /keystone/keystone-paste.ini mode,0660 become True when inventory_hostname in groups keystone.group keystone.enabled bool check_keystone_paste_ini.stat.exists notify Restart keystone container

AnsibleTask command ansible_playbook_python role_path /files/fernet_rotate_cron_generator.py -t fernet_key_rotation_interval int // 60 -i groups .index inventory_hostname -n groups length changed_when False register cron_jobs_json when keystone_token_provider delegate_to localhost

AnsibleTask set_fact cron_jobs cron_jobs_json.stdout from_json .cron_jobs ignore_errors ansible_check_mode when keystone_token_provider

AnsibleTask vars keystone_fernet keystone_services template src item.src dest node_config_directory /keystone-fernet/ item.dest mode,0660 become True ignore_errors ansible_check_mode with_items : when inventory_hostname in groups keystone_fernet.group keystone_fernet.enabled bool notify Restart keystone-fernet container

AnsibleTask vars keystone_ssh keystone_services template src item.src dest node_config_directory /keystone-ssh/ item.dest mode,0660 become True with_items when inventory_hostname in groups keystone_ssh.group keystone_ssh.enabled bool notify Restart keystone-ssh container

AnsibleTask become True command docker exec -t keystone_fernet /usr/bin/fernet-push.sh run_once True delegate_to if groups is defined groups 0 else groups 0 endif

AnsibleTask run_once True command cmd awk print 2 node_config /globals.yml delegate_to localhost register result changed_when False failed_when result.stdout regex_replace 60|120|180|240|300|360|600|720|900|1200|1800|3600|7200|10800|14400|21600|28800|43200|86400|604800 is search

AnsibleTask become True command docker exec keystone kolla_keystone_bootstrap openstack_auth.username openstack_auth.password openstack_auth.project_name admin keystone_admin_url keystone_internal_url keystone_public_url item register keystone_bootstrap changed_when keystone_bootstrap.stdout from_json .changed failed_when keystone_bootstrap.stdout from_json .failed run_once True with_items multiple_regions_names

AnsibleTask command /bin/true notify Init keystone database upgrade when inventory_hostname groups 0

AnsibleTask command /bin/true notify Finish keystone database upgrade when inventory_hostname groups -1

AnsibleTask file path node_config_directory item.key state directory owner config_owner_user group config_owner_group mode,0770 become True when inventory_hostname in groups item.value.group item.value.enabled bool with_dict kibana_services

AnsibleTask become True copy src node_config /certificates/ca/ dest node_config_directory item.key /ca-certificates mode,0644 when item.value.enabled bool inventory_hostname in groups item.value.group kolla_copy_ca_into_containers bool with_dict kibana_services notify Restart item.key container

AnsibleTask template src item.key .json.j2 dest node_config_directory item.key /config.json mode,0660 become True when inventory_hostname in groups item.value.group item.value.enabled bool with_dict kibana_services notify Restart kibana container

AnsibleTask vars kibana kibana_services.kibana template src item dest node_config_directory /kibana/kibana.yml mode,0660 become True with_first_found node_custom_config /kibana/ inventory_hostname /kibana.yml node_custom_config /kibana/kibana.yml kibana.yml.j2 when inventory_hostname in groups kibana.group kibana.enabled bool notify Restart kibana container

AnsibleTask set_fact kibana_default_indexes kibana_default_indexes.json default when kibana_default_indexes is defined run_once True connection local

AnsibleTask file path node_config_directory item.key state directory owner config_owner_user group config_owner_group mode,0770 become True when inventory_hostname in groups item.value.group item.value.enabled bool with_dict kuryr_services

AnsibleTask set_fact kuryr_policy_file kuryr_policy.results.0.stat.path basename kuryr_policy_file_path kuryr_policy.results.0.stat.path when kuryr_policy.results

AnsibleTask become True copy src node_config /certificates/ca/ dest node_config_directory item.key /ca-certificates mode,0644 when item.value.enabled bool inventory_hostname in groups item.value.group kolla_copy_ca_into_containers bool with_dict kuryr_services notify Restart item.key container

AnsibleTask template src item.key .json.j2 dest node_config_directory item.key /config.json mode,0660 become True when inventory_hostname in groups item.value.group item.value.enabled bool with_dict kuryr_services notify Restart kuryr container

AnsibleTask vars service kuryr_services template src kuryr.spec.j2 dest node_config_directory item /kuryr.spec mode,0660 become True when inventory_hostname in groups service.group service.enabled bool with_items kuryr notify Restart kuryr container

AnsibleTask template src kuryr_policy_file_path dest node_config_directory item.key kuryr_policy_file mode,0660 become True when kuryr_policy_file is defined inventory_hostname in groups item.value.group item.value.enabled bool with_dict kuryr_services notify Restart kuryr container

AnsibleTask file path node_config_directory item.key state directory owner config_owner_user group config_owner_group mode,0770 become True when inventory_hostname in groups item.value.group item.value.enabled bool with_dict magnum_services

AnsibleTask set_fact magnum_policy_file magnum_policy.results.0.stat.path basename magnum_policy_file_path magnum_policy.results.0.stat.path when magnum_policy.results

AnsibleTask become True copy src node_config /certificates/ca/ dest node_config_directory item.key /ca-certificates mode,0644 when item.value.enabled bool inventory_hostname in groups item.value.group kolla_copy_ca_into_containers bool with_dict magnum_services notify Restart item.key container

AnsibleTask template src item.key .json.j2 dest node_config_directory item.key /config.json mode,0660 become True when inventory_hostname in groups item.value.group item.value.enabled bool with_dict magnum_services notify Restart item.key container

AnsibleTask template src magnum_policy_file_path dest node_config_directory item.key magnum_policy_file mode,0660 become True when magnum_policy_file is defined inventory_hostname in groups item.value.group item.value.enabled bool with_dict magnum_services notify Restart item.key container

AnsibleTask file path node_config_directory item.key state directory owner config_owner_user group config_owner_group mode,0770 become True when inventory_hostname in groups item.value.group item.value.enabled bool with_dict manila_services

AnsibleTask set_fact manila_policy_file manila_policy.results.0.stat.path basename manila_policy_file_path manila_policy.results.0.stat.path when manila_policy.results

AnsibleTask become True copy src node_config /certificates/ca/ dest node_config_directory item.key /ca-certificates mode,0644 when item.value.enabled bool inventory_hostname in groups item.value.group kolla_copy_ca_into_containers bool with_dict manila_services notify Restart item.key container

AnsibleTask template src item.key .json.j2 dest node_config_directory item.key /config.json mode,0660 become True when inventory_hostname in groups item.value.group item.value.enabled bool with_dict manila_services notify Restart item.key container

AnsibleTask template src manila_policy_file_path dest node_config_directory item.key manila_policy_file mode,0660 when manila_policy_file is defined inventory_hostname in groups item.value.group item.value.enabled bool with_dict manila_services notify Restart item.key container

AnsibleTask template src node_custom_config /manila/ceph.conf dest node_config_directory /manila-share/ceph.conf mode,0660 become True when inventory_hostname in groups notify Restart manila-share container

AnsibleTask copy src node_custom_config /manila/ ceph_manila_keyring dest node_config_directory /manila-share/ ceph_manila_keyring mode,0600 become True when inventory_hostname in groups notify Restart manila-share container

AnsibleTask become True file path node_config_directory item recurse True owner config_owner_user group config_owner_group when inventory_hostname in groups item with_items manila-share

AnsibleTask become True command docker exec -u 0 manila_share ls /tmp/cephfs/ register check_cephfs changed_when False failed_when check_cephfs.rc 0 and check_cephfs.stderr.find such file or directory -1 run_once True

AnsibleTask become True command docker exec -u 0 manila_share mkdir -p /tmp/cephfs run_once True when check_cephfs.rc 0

AnsibleTask become True command docker exec manila_share ceph mon dump -c /etc/ceph/ceph.conf name client.manila -f json register ceph_monitor_dump changed_when False run_once True

AnsibleTask vars query mons .public_addr regex ^/ set_fact cephfs_addr ceph_monitor_dump.stdout from_json json_query query map regex join run_once True

AnsibleTask become True command docker exec manila_share ceph-authtool -p /etc/ceph/ceph.client.manila.keyring -n client.manila register manila_keyring changed_when False run_once True

AnsibleTask become True command docker exec -u 0 manila_share umount /tmp/cephfs/ register umount_cephfs changed_when False failed_when False run_once True

AnsibleTask become True command docker exec -u 0 manila_share mount -t ceph cephfs_addr /tmp/cephfs -o name=manila secret= manila_keyring.stdout register mount_cephfs changed_when False run_once True

AnsibleTask become True command docker exec -u 0 manila_share ls /tmp/cephfs/volumes register check_volume changed_when False failed_when False run_once True

AnsibleTask become True command docker exec -u 0 manila_share mkdir /tmp/cephfs/volumes register create_volume run_once True when check_volume.rc 0

AnsibleTask become True command docker exec -u 0 manila_share chown manila manila /tmp/cephfs/volumes register chown_volume run_once True when check_volume.rc 0 and create_volume.rc 0

AnsibleTask become True command docker exec -u 0 manila_share umount /tmp/cephfs changed_when False register umount_cephfs run_once True when mount_cephfs.rc 0

AnsibleTask become True command docker exec mariadb_service.container_name mysql -uroot -p database_password silent skip-column-names -e STATUS LIKE wsrep_local_state_comment changed_when False register result until result.stdout wsrep_local_state_comment\tSynced retries 10 delay 6 no_log True listen Bootstrap MariaDB cluster

AnsibleTask become True command docker exec mariadb mysql -h database_address -P database_port -u haproxy -e databases register result until result is success changed_when False retries 6 delay 10

AnsibleTask file path node_config_directory item.key state directory owner config_owner_user group config_owner_group mode,0770 become True when inventory_hostname in groups item.value.group item.value.enabled bool with_dict mariadb_services

AnsibleTask file path node_config_directory /mariabackup state directory owner config_owner_user group config_owner_group mode,0770 become True when enable_mariabackup bool inventory_hostname mariadb_backup_host

AnsibleTask vars service_name mariadb service mariadb_services service_name template src service_name .json.j2 dest node_config_directory service_name /config.json mode,0660 become True when inventory_hostname in groups service.group service.enabled bool notify restart mariadb

AnsibleTask vars service_name mariabackup template src service_name .json.j2 dest node_config_directory service_name /config.json mode,0660 become True when enable_mariabackup bool inventory_hostname mariadb_backup_host

AnsibleTask template src role_path /templates/wsrep-notify.sh.j2 dest node_config_directory item.key /wsrep-notify.sh mode,0770 become True when inventory_hostname in groups item.value.group item.value.enabled bool with_dict mariadb_services notify restart mariadb

AnsibleTask set_fact mariadb_cluster_exists groups.mariadb_had_volume_True is defined

AnsibleTask fail msg MariaDB cluster exists but is stopped Please start it using kolla-ansible mariadb_recovery when groups length 1 mariadb_cluster_exists groups.mariadb_port_alive_True is not defined

AnsibleTask fail msg MariaDB cluster is not synced Please wait for WSREP sync before proceeding when groups.mariadb_port_alive_True is defined groups.mariadb_sync_status_Synced is not defined or groups.mariadb_port_alive_True sort groups.mariadb_sync_status_Synced sort

AnsibleTask fail msg MariaDB cluster was not found Is your inventory correct when not mariadb_cluster_exists

AnsibleTask file path /tmp/kolla_mariadb_grastate.dat state absent changed_when False check_mode False

AnsibleTask file path /tmp/kolla_mariadb_recover_inventory_name state absent delegate_to localhost changed_when False check_mode False run_once True

AnsibleTask become True command docker cp mariadb_service.container_name /var/log/kolla/mariadb/mariadb.log /tmp/mariadb_tmp.log

AnsibleTask become True shell tail -n 200 /tmp/mariadb_tmp.log awk -F 0~/Recovered position/ print NF exit awk -F print 2 register wsrep_recovery_seqno

AnsibleTask become True file path /tmp/mariadb_tmp.log state absent changed_when False check_mode False

AnsibleTask set_fact seqno wsrep_recovery_seqno.stdout_lines 0 changed_when False

AnsibleTask shell cmd if -z hostvars inventory_hostname -z hostvars item hostvars inventory_hostname 0-9 hostvars item 0-9 hostvars inventory_hostname -lt hostvars item then echo hostvars item fi with_items groups register seqno_compare args executable /bin/bash changed_when False

AnsibleTask copy content inventory_hostname dest /tmp/kolla_mariadb_recover_inventory_name mode,420 delegate_to localhost changed_when False when seqno_compare.results map join

AnsibleTask set_fact bootstrap_host mariadb_recover_inventory_name

AnsibleTask become True command docker cp mariadb_service.container_name /var/lib/mysql/grastate.dat /tmp/kolla_mariadb_grastate.dat changed_when False when bootstrap_host is defined bootstrap_host inventory_hostname

AnsibleTask become True command docker cp /tmp/kolla_mariadb_grastate.dat mariadb /var/lib/mysql/grastate.dat changed_when False when bootstrap_host is defined bootstrap_host inventory_hostname

AnsibleTask become True shell docker exec mariadb_service.container_name mysql -uroot -p database_password -e SET GLOBAL no_log True when bootstrap_host is defined bootstrap_host inventory_hostname

AnsibleTask become True command docker exec mariadb_service.container_name mysql -uroot -p database_password silent skip-column-names -e STATUS LIKE wsrep_evs_state changed_when False register result until OPERATIONAL in result.stdout retries 10 delay 6 no_log True when bootstrap_host is defined bootstrap_host inventory_hostname

AnsibleTask become True command docker exec mariadb_service.container_name mysql -uroot -p database_password silent skip-column-names -e STATUS LIKE wsrep_local_state_comment changed_when False register result until result.stdout wsrep_local_state_comment\tSynced retries 10 delay 6 no_log True when not mariadb_cluster_exists or groups.mariadb_port_alive_True is defined and inventory_hostname in groups.mariadb_port_alive_True

AnsibleTask file path node_config_directory item.key state directory owner config_owner_user group config_owner_group mode,0770 become True when item.value.enabled bool inventory_hostname in groups item.value.group with_dict masakari_services

AnsibleTask set_fact masakari_policy_file masakari_policy.results.0.stat.path basename masakari_policy_file_path masakari_policy.results.0.stat.path when masakari_policy.results

AnsibleTask template src masakari_policy_file_path dest node_config_directory item masakari_policy_file mode,0660 become True when masakari_policy_file is defined inventory_hostname in groups item.value.group item.value.enabled bool with_dict masakari_services notify Restart item.key container

AnsibleTask template src item.key .json.j2 dest node_config_directory item.key /config.json mode,0660 become True when inventory_hostname in groups item.value.group item.value.enabled bool with_dict masakari_services notify Restart item.key container

AnsibleTask vars service masakari_services template src wsgi-masakari.conf.j2 dest node_config_directory /masakari-api/wsgi-masakari.conf mode,0660 become True when inventory_hostname in groups service.group service.enabled bool notify Restart masakari-api container

AnsibleTask file path node_config_directory item state directory owner config_owner_user group config_owner_group mode,0770 become True with_items memcached

AnsibleTask vars service memcached_services.memcached template src item .json.j2 dest node_config_directory item /config.json mode,0660 become True with_items memcached when inventory_hostname in groups service.group service.enabled bool notify Restart memcached container

AnsibleTask file path node_config_directory item.key state directory owner config_owner_user group config_owner_group mode,0770 become True when inventory_hostname in groups item.value.group item.value.enabled bool with_dict mistral_services

AnsibleTask set_fact mistral_policy_file mistral_policy.results.0.stat.path basename mistral_policy_file_path mistral_policy.results.0.stat.path when mistral_policy.results

AnsibleTask become True copy src node_config /certificates/ca/ dest node_config_directory item.key /ca-certificates mode,0644 when item.value.enabled bool inventory_hostname in groups item.value.group kolla_copy_ca_into_containers bool with_dict mistral_services notify Restart item.key container

AnsibleTask template src item.key .json.j2 dest node_config_directory item.key /config.json mode,0660 become True when item.value.enabled bool inventory_hostname in groups item.value.group with_dict mistral_services notify Restart item.key container

AnsibleTask template src mistral_policy_file_path dest node_config_directory item.key mistral_policy_file mode,0660 become True when mistral_policy_file is defined inventory_hostname in groups item.value.group item.value.enabled bool with_dict mistral_services notify Restart item.key container

AnsibleTask become True vars service mistral_services template src item dest node_config_directory /mistral-event-engine/event_definitions.yaml mode,0660 when inventory_hostname in groups service.group service.enabled bool with_first_found node_custom_config /mistral/ inventory_hostname /event_definitions.yaml node_custom_config /mistral/event_definitions.yaml role_path /templates/event_definitions.yaml.j2 notify Restart mistral-event-engine container

AnsibleTask become True command docker exec influxdb influx -host monasca_influxdb_address -port monasca_influxdb_http_port -execute databases run_once True delegate_to groups 0 register monasca_influxdb_database changed_when False

AnsibleTask become True command docker exec influxdb influx -host monasca_influxdb_address -port monasca_influxdb_http_port -execute DATABASE monasca_influxdb_name WITH DURATION monasca_influxdb_retention_policy.duration REPLICATION monasca_influxdb_retention_policy.replication_count NAME monasca_influxdb_retention_policy.name run_once True delegate_to groups 0 when monasca_influxdb_name not in monasca_influxdb_database.stdout_lines

AnsibleTask file path node_config_directory item.key state directory owner config_owner_user group config_owner_group mode,0770 become True when inventory_hostname in groups item.value.group item.value.enabled bool with_dict monasca_services

AnsibleTask become True copy src node_config /certificates/ca/ dest node_config_directory item.key /ca-certificates mode,0644 when item.value.enabled bool inventory_hostname in groups item.value.group kolla_copy_ca_into_containers bool with_dict monasca_services notify Restart item.key container

AnsibleTask template src item.key item.key .json.j2 dest node_config_directory item.key /config.json mode,0660 become True when inventory_hostname in groups item.value.group item.value.enabled bool with_dict monasca_services notify Restart item.key container

AnsibleTask vars service monasca_services file path node_config_directory /monasca-agent-collector/plugins state directory owner config_owner_user group config_owner_group mode,0770 become True when inventory_hostname in groups service service.enabled bool

AnsibleTask vars service monasca_services template src item.path dest node_config_directory /monasca-agent-collector/plugins/ item.path basename mode,0660 become True with_items agent_plugins.files when inventory_hostname in groups service service.enabled bool notify Restart monasca-agent-collector container

AnsibleTask vars service monasca_services template src role_path /templates/monasca-api/wsgi-api.conf.j2 dest node_config_directory /monasca-api/wsgi-api.conf mode,0660 become True when inventory_hostname in groups service service.enabled bool notify Restart monasca-api container

AnsibleTask vars service monasca_services template src role_path /templates/monasca-log-api/wsgi-log-api.conf.j2 dest node_config_directory /monasca-log-api/wsgi-log-api.conf mode,0660 become True when inventory_hostname in groups service service.enabled bool notify Restart monasca-log-api container

AnsibleTask vars service monasca_services template src item dest node_config_directory /monasca-log-transformer/log-transformer.conf mode,0660 become True with_first_found node_custom_config /monasca/ inventory_hostname /log-transformer.conf node_custom_config /monasca/log-transformer.conf role_path /templates/monasca-log-transformer/log-transformer.conf.j2 when inventory_hostname in groups service service.enabled bool notify Restart monasca-log-transformer container

AnsibleTask vars service monasca_services file path node_config_directory /monasca-log-transformer/logstash_patterns state directory mode,0770 become True when inventory_hostname in groups service service.enabled bool

AnsibleTask vars service monasca_services template src item.path dest node_config_directory /monasca-log-transformer/logstash_patterns/ item.path basename mode,0660 with_items monasca_custom_logstash_patterns.files become True when inventory_hostname in groups service service.enabled bool notify Restart monasca-log-transformer container

AnsibleTask vars service monasca_services template src item dest node_config_directory /monasca-log-persister/log-persister.conf mode,0660 become True with_first_found node_custom_config /monasca/ inventory_hostname /log-persister.conf node_custom_config /monasca/log-persister.conf role_path /templates/monasca-log-persister/log-persister.conf.j2 when inventory_hostname in groups service service.enabled bool notify Restart monasca-log-persister container

AnsibleTask vars service monasca_services template src item dest node_config_directory /monasca-log-persister/elasticsearch-template.json mode,0660 become True with_first_found node_custom_config /monasca/ inventory_hostname /elasticsearch-template.json node_custom_config /monasca/elasticsearch-template.json role_path /templates/monasca-log-persister/elasticsearch-template.json when inventory_hostname in groups service service.enabled bool notify Restart monasca-log-persister container

AnsibleTask vars service monasca_services template src item dest node_config_directory /monasca-log-metrics/log-metrics.conf mode,0660 become True with_first_found node_custom_config /monasca/ inventory_hostname /log-metrics.conf node_custom_config /monasca/log-metrics.conf role_path /templates/monasca-log-metrics/log-metrics.conf.j2 when inventory_hostname in groups service service.enabled bool notify Restart monasca-log-metrics container

AnsibleTask vars service monasca_services template src item dest node_config_directory /monasca-thresh/thresh-config.yml mode,0660 become True with_first_found node_custom_config /monasca/ inventory_hostname /thresh-config.yml node_custom_config /monasca/thresh-config.yml role_path /templates/monasca-thresh/thresh-config.yml.j2 when inventory_hostname in groups service service.enabled bool notify Restart monasca-thresh container

AnsibleTask vars service monasca_services template src item dest node_config_directory /monasca-thresh/storm.yml mode,0660 become True with_first_found node_custom_config /monasca/ inventory_hostname /storm.yml node_custom_config /monasca/storm.yml role_path /templates/monasca-thresh/storm.yml.j2 when inventory_hostname in groups service service.enabled bool notify Restart monasca-thresh container

AnsibleTask vars service monasca_services copy src node_custom_config /monasca/notification_templates dest node_config_directory /monasca-notification/ mode,0660 become True when notification_templates.stat.exists and notification_templates.stat.isdir inventory_hostname in groups service service.enabled bool notify Restart monasca-notification container

AnsibleTask set_fact monasca_grafana_control_plane_org monasca_control_plane_project default_project_domain_id

AnsibleTask become True command docker exec -t mongodb mongo host kolla_address port mongodb_port quiet eval rs.status .ok register mongodb_replication_status changed_when False delegate_to groups 0 run_once True

AnsibleTask template src bootstrap_cluster.js.j2 dest /tmp/mongodb_bootstrap_replication_set.js delegate_to localhost run_once True

AnsibleTask become True command docker exec -t mongodb mongo host api_interface_address port mongodb_port quiet eval lookup register bootstrap_mongodb_cluster failed_when bootstrap_mongodb_cluster.stdout|from_json .ok 1 delegate_to groups 0 run_once True

AnsibleTask file path /tmp/mongodb_bootstrap_replication_set.js state absent delegate_to localhost changed_when False failed_when False run_once True

AnsibleTask file path node_config_directory item.key state directory owner config_owner_user group config_owner_group mode,0770 become True when inventory_hostname in groups item.value.group item.value.enabled bool with_dict mongodb_services

AnsibleTask template src item.key .json.j2 dest node_config_directory item.key /config.json mode,0660 become True when inventory_hostname in groups item.value.group item.value.enabled bool with_dict mongodb_services notify Restart mongodb container

AnsibleTask debug msg MongoDB deployment role is deprecated in Ussuri and will be removed in Victoria Please read release notes for more background

AnsibleTask file path node_config_directory item.key state directory owner config_owner_user group config_owner_group mode,0770 become True when inventory_hostname in groups item.value.group item.value.enabled bool with_dict multipathd_services

AnsibleTask template src item.key .json.j2 dest node_config_directory item.key /config.json mode,0660 become True when inventory_hostname in groups item.value.group item.value.enabled bool with_dict multipathd_services notify Restart multipathd container

AnsibleTask template src multipath.conf.j2 dest node_config_directory item.key /multipath.conf mode,0660 become True when inventory_hostname in groups item.value.group item.value.enabled bool with_dict multipathd_services notify Restart multipathd container

AnsibleTask file path node_config_directory item.key state directory owner config_owner_user group config_owner_group mode,0770 become True when inventory_hostname in groups item.value.group item.value.enabled bool with_dict murano_services

AnsibleTask set_fact murano_policy_file murano_policy.results.0.stat.path basename murano_policy_file_path murano_policy.results.0.stat.path when murano_policy.results

AnsibleTask become True copy src node_config /certificates/ca/ dest node_config_directory item.key /ca-certificates mode,0644 when item.value.enabled bool inventory_hostname in groups item.value.group kolla_copy_ca_into_containers bool with_dict murano_services notify Restart item.key container

AnsibleTask template src item.key .json.j2 dest node_config_directory item.key /config.json mode,0660 become True when inventory_hostname in groups item.value.group item.value.enabled bool with_dict murano_services notify Restart item.key container

AnsibleTask template src murano_policy_file_path dest node_config_directory item.key murano_policy_file mode,0660 when murano_policy_file is defined inventory_hostname in groups item.value.group item.value.enabled bool with_dict murano_services notify Restart item.key container

AnsibleTask become True command docker exec murano_api murano os-username openstack_auth.username os-password keystone_admin_password os-project-name openstack_auth.project_name os-auth-url keystone_admin_url murano-url admin_protocol // api_interface_address put_address_in_context murano_api_port package-list register status changed_when False run_once True delegate_to groups 0

AnsibleTask become True command docker exec murano_api murano os-username openstack_auth.username os-password keystone_admin_password os-project-name openstack_auth.project_name os-auth-url keystone_admin_url murano-url admin_protocol // api_interface_address put_address_in_context murano_api_port package-import exists-action u is-public /io.murano.zip run_once True delegate_to groups 0 when status.stdout.find io.murano -1 or kolla_action upgrade

AnsibleTask become True command docker exec murano_api murano os-username openstack_auth.username os-password keystone_admin_password os-project-name openstack_auth.project_name os-auth-url keystone_admin_url murano-url admin_protocol // api_interface_address put_address_in_context murano_api_port package-import exists-action u is-public /io.murano.applications.zip run_once True delegate_to groups 0 when status.stdout.find io.murano.applications -1 or kolla_action upgrade

AnsibleTask become True file path node_config_directory /neutron-openvswitch-agent-fake- item state directory recurse True mode,0770 with_sequence start=1 end= num_nova_fake_per_node when inventory_hostname in groups

AnsibleTask become True template src neutron-openvswitch-agent.json.j2 dest node_config_directory /neutron-openvswitch-agent-fake- item /config.json mode,0660 with_sequence start=1 end= num_nova_fake_per_node when inventory_hostname in groups neutron_plugin_agent openvswitch notify Restart fake neutron-openvswitch-agent container

AnsibleTask become True file path node_config_directory /neutron-openvswitch-agent-fake- item recurse True owner config_owner_user group config_owner_group when inventory_hostname in groups with_sequence start=1 end= num_nova_fake_per_node

AnsibleTask become True file path node_config_directory item.key state directory owner config_owner_user group config_owner_group mode,0770 when item.value.enabled bool item.value.host_in_groups bool with_dict neutron_services

AnsibleTask become True copy src node_config /certificates/ca/ dest node_config_directory item.key /ca-certificates mode,0644 when item.value.enabled bool item.value.host_in_groups bool kolla_copy_ca_into_containers bool with_dict neutron_services notify Restart item.key container

AnsibleTask become True template src item.key .json.j2 dest node_config_directory item.key /config.json mode,0660 when item.value.enabled bool item.value.host_in_groups bool with_dict neutron_services notify Restart item.key container

AnsibleTask become True vars service_name neutron-dhcp-agent neutron_dhcp_agent neutron_services service_name template src item dest node_config_directory service_name /dnsmasq.conf mode,0660 with_first_found node_custom_config /neutron/ inventory_hostname /dnsmasq.conf node_custom_config /neutron/dnsmasq.conf dnsmasq.conf.j2 when neutron_dhcp_agent.enabled bool neutron_dhcp_agent.host_in_groups bool notify Restart service_name container

AnsibleTask become True vars service_name item.key services_need_policy_json template src node_custom_config /neutron/policy.json dest node_config_directory service_name /policy.json mode,0660 when neutron_policy.stat.exists item.value.enabled bool item.value.host_in_groups bool with_dict neutron_services notify Restart item.key container

AnsibleTask become True vars service_name neutron-l3-agent service neutron_services service_name template src neutron-l3-agent-wrapper.sh.j2 dest node_config_directory service_name /neutron-l3-agent-wrapper.sh mode,0770 when service.enabled bool service.host_in_groups bool notify Restart service_name container

AnsibleTask become True vars service_name item.0 services_need_ml2_conf_ini template src item.2.path dest node_config_directory service_name item.2.path basename mode,0660 when item.2 is defined item.1.enabled bool item.1.host_in_groups bool service_name in services_need_ml2_conf_ini with_nested neutron_services dictsort check_extra_ml2_plugins.files notify Restart item.0 container

AnsibleTask fail msg Number of network agents are less than two when enabling agent ha changed_when False run_once True when enable_neutron_agent_ha bool groups length 2 or groups length 2

AnsibleTask vars type_drivers neutron_type_drivers.replace .split reject list tenant_network_types neutron_tenant_network_types.replace .split reject list fail msg Tenant network type item is not in type drivers neutron_type_drivers changed_when False when item not in type_drivers run_once True with_items tenant_network_types

AnsibleTask fail msg Ironic must be enabled when using networking-baremetal/ironic-neutron-agent changed_when False run_once True when enable_ironic_neutron_agent bool not enable_ironic bool

AnsibleTask become True command docker exec -t neutron_server neutron-db-manage subproject item has_offline_migrations register neutron_check_contract_db_stdout ignore_errors True with_items neutron_rolling_upgrade_services when inventory_hostname groups 0

AnsibleTask become True file path node_config_directory item.key state directory owner config_owner_user group config_owner_group mode,0770 when inventory_hostname in groups item.value.group item.value.enabled bool with_dict nova_services

AnsibleTask set_fact nova_policy_file nova_policy.results.0.stat.path basename nova_policy_file_path nova_policy.results.0.stat.path when nova_policy.results

AnsibleTask become True copy src node_config /certificates/ca/ dest node_config_directory item.key /ca-certificates mode,0644 when item.value.enabled bool inventory_hostname in groups item.value.group kolla_copy_ca_into_containers bool with_dict nova_services notify Restart item.key container

AnsibleTask become True template src item.key .json.j2 dest node_config_directory item.key /config.json mode,0660 when inventory_hostname in groups item.value.group item.value.enabled bool with_dict nova_services notify Restart item.key container

AnsibleTask become True template src nova_policy_file_path dest node_config_directory item.key nova_policy_file mode,0660 when inventory_hostname in groups item.value.group item.value.enabled bool nova_policy_file is defined item.key in nova_services_require_policy_json with_dict nova_services notify Restart item.key container

AnsibleTask become True file path node_config_directory /nova-api-bootstrap state directory owner config_owner_user group config_owner_group mode,0770 run_once True

AnsibleTask become True template src nova-api-bootstrap.json.j2 dest node_config_directory /nova-api-bootstrap/config.json mode,0660 run_once True

AnsibleTask become True shell kill -HUP ` docker inspect -f raw .State.Pid endraw nova_scheduler ` when inventory_hostname in groups

AnsibleTask become True command docker exec -t nova_api nova-status upgrade check register nova_upgrade_check_stdout when inventory_hostname groups 0 failed_when False

AnsibleTask fail msg was an upgrade status check failure the detail at https //docs.openstack.org/nova/latest/cli/nova-status.html nova-status-checks vars first_nova_api_host groups 0 when hostvars first_nova_api_host not in 0 1

AnsibleTask file path xenapi_facts_root state directory mode,0770 become True

AnsibleTask vars xenapi_facts_path xenapi_facts_root xenapi_facts_file command xenapi_bootstrap -i xenserver_himn_ip -u xenserver_username -p xenserver_password -f xenapi_facts_path become True

AnsibleTask become True copy src first_found dest node_config_directory service_name file mode,0600 with_first_found node_custom_config /nova/nova-libvirt/ inventory_hostname file node_custom_config /nova/nova-libvirt/ file loop_control loop_var first_found notify Restart service_name container

AnsibleTask become True file path node_config_directory /nova-compute-fake- item state directory mode,0770 with_sequence start=1 end= num_nova_fake_per_node notify Restart nova-compute-fake containers

AnsibleTask become True template src nova-compute.json.j2 dest node_config_directory /nova-compute-fake- item /config.json mode,0660 with_sequence start=1 end= num_nova_fake_per_node notify Restart nova-compute-fake containers

AnsibleTask become True file path node_config_directory /nova-compute-fake- item recurse True owner config_owner_user group config_owner_group with_sequence start=1 end= num_nova_fake_per_node notify Restart nova-compute-fake containers

AnsibleTask become True file path node_config_directory item.key state directory owner config_owner_user group config_owner_group mode,0770 when inventory_hostname in groups item.value.group item.value.enabled bool with_dict nova_cell_services

AnsibleTask become True copy src node_config /certificates/ca/ dest node_config_directory item.key /ca-certificates mode,0644 when item.value.enabled bool inventory_hostname in groups item.value.group kolla_copy_ca_into_containers bool with_dict nova_cell_services notify Restart item.key container

AnsibleTask become True template src item.key .json.j2 dest node_config_directory item.key /config.json mode,0660 when inventory_hostname in groups item.value.group item.value.enabled bool with_dict nova_cell_services notify Restart item.key container

AnsibleTask set_fact xenapi_facts lookup xenapi_facts_root inventory_hostname xenapi_facts_file from_json when nova_compute_virt_type inventory_hostname in groups nova_cell_compute_group

AnsibleTask become True vars service nova_cell_services template src item.src dest node_config_directory /nova-libvirt/ item.dest mode,0660 when inventory_hostname in groups service.group service.enabled bool with_items notify Restart nova-libvirt container

AnsibleTask become True vars service nova_cell_services template src item.src dest node_config_directory /nova-ssh/ item.dest mode,0660 when inventory_hostname in groups service.group service.enabled bool with_items notify Restart nova-ssh container

AnsibleTask vars service nova_cell_services copy src node_custom_config /vmware_ca dest node_config_directory /nova-compute/vmware_ca mode,0660 when nova_compute_virt_type vmware not vmware_vcenter_insecure bool inventory_hostname in groups service.group service.enabled bool notify Restart nova-compute container

AnsibleTask vars service nova_cell_services copy src item dest node_config_directory /nova-compute/release mode,0660 with_first_found node_custom_config /nova_compute/ inventory_hostname /release node_custom_config /nova_compute/release node_custom_config /nova/release True when inventory_hostname in groups service.group service.enabled bool notify Restart nova-compute container

AnsibleTask become True template src nova_policy_file_path dest node_config_directory item.key nova_policy_file mode,0660 when inventory_hostname in groups item.value.group item.value.enabled bool nova_policy_file is defined item.key in nova_cell_services_require_policy_json with_dict nova_cell_services notify Restart item.key container

AnsibleTask become True file path node_config_directory /nova-cell-bootstrap state directory owner config_owner_user group config_owner_group mode,0770 when inventory_hostname groups nova_cell_conductor_group 0

AnsibleTask become True template src nova-cell-bootstrap.json.j2 dest node_config_directory /nova-cell-bootstrap/config.json mode,0660 when inventory_hostname groups nova_cell_conductor_group 0

AnsibleTask vars virt_compute_service_hosts groups nova_cell_compute_group intersect ansible_play_batch map hostvars list ironic_compute_service_hosts groups nova_cell_compute_ironic_group intersect ansible_play_batch map hostvars map list if nova_cell_services .enabled bool else set_fact expected_compute_service_hosts virt_compute_service_hosts ironic_compute_service_hosts when inventory_hostname groups nova_cell_conductor_group 0 default None

AnsibleTask become True command docker exec kolla_toolbox openstack os-interface internal os-auth-url keystone_admin_url os-identity-api-version 3 os-project-domain-name openstack_auth.domain_name os-tenant-name openstack_auth.project_name os-username openstack_auth.username os-password keystone_admin_password os-user-domain-name openstack_auth.domain_name os-region-name openstack_region_name if openstack_cacert os-cacert openstack_cacert endif compute service list format json column Host service nova-compute register nova_compute_services changed_when False retries 20 delay 10 until nova_compute_services is success nova_compute_services.stdout from_json map list is superset expected_compute_service_hosts when inventory_hostname groups nova_cell_conductor_group 0 default None

AnsibleTask fail msg Unable to find settings for nova_cell_name or default cell when inventory_hostname groups nova_cell_conductor_group 0 default None not nova_cell_settings

AnsibleTask become True command docker exec nova_conductor nova-manage cell_v2 discover_hosts by-service cell_uuid nova_cell_settings.cell_uuid changed_when False when inventory_hostname groups nova_cell_conductor_group 0 default None

AnsibleTask file path node_config_directory item state directory mode,0770 become True with_items nova-libvirt/secrets when inventory_hostname in groups nova_cell_compute_group

AnsibleTask copy src nova_cephx_keyring_file.stat.path dest node_config_directory item mode,0660 become True with_items nova-compute when inventory_hostname in groups nova_cell_compute_group nova_backend rbd external_ceph_cephx_enabled bool notify Restart item container

AnsibleTask copy src cinder_cephx_keyring_file.stat.path dest node_config_directory item mode,0660 become True with_items nova-compute when inventory_hostname in groups nova_cell_compute_group nova_backend rbd external_ceph_cephx_enabled bool notify Restart item container

AnsibleTask template src node_custom_config /nova/ceph.conf dest node_config_directory item mode,0660 become True with_items nova-compute nova-libvirt when inventory_hostname in groups nova_cell_compute_group nova_backend rbd notify Restart item container

AnsibleTask template src secret.xml.j2 dest node_config_directory /nova-libvirt/secrets/ item.uuid .xml mode,0600 become True when inventory_hostname in groups nova_cell_compute_group item.enabled bool with_items rbd_secret_uuid secret nova_backend cinder_rbd_secret_uuid secret cinder_backend_ceph notify Restart nova-libvirt container

AnsibleTask set_fact nova_cephx_raw_key lookup nova_cephx_keyring_file.stat.path regex_search multiline=True regex_replace \s* changed_when False run_once True when nova_backend rbd external_ceph_cephx_enabled bool

AnsibleTask set_fact cinder_cephx_raw_key lookup cinder_cephx_keyring_file.stat.path regex_search multiline=True regex_replace \s* changed_when False run_once True when cinder_backend_ceph bool external_ceph_cephx_enabled bool

AnsibleTask copy content item.result dest node_config_directory /nova-libvirt/secrets/ item.uuid .base64 mode,0600 become True when inventory_hostname in groups nova_cell_compute_group item.enabled bool external_ceph_cephx_enabled bool with_items rbd_secret_uuid nova_cephx_raw_key default nova_backend cinder_rbd_secret_uuid cinder_cephx_raw_key default cinder_backend_ceph notify Restart nova-libvirt container

AnsibleTask become True file path node_config_directory item recurse True owner config_owner_user group config_owner_group with_items nova-compute nova-libvirt/secrets when inventory_hostname in groups nova_cell_compute_group

AnsibleTask vars nova_conductor nova_cell_services set_fact nova_cell_settings existing_cells_list extract_cell nova_cell_name when inventory_hostname groups nova_conductor.group 0 default None

AnsibleTask vars nova_compute_ironic nova_cell_services fail msg At least 1 compute node required in inventory when ironic is disabled when groups nova_cell_compute_group length 1 not nova_compute_ironic.enabled bool

AnsibleTask become True copy src node_config /certificates/ca/ dest node_custom_config /nova-hyperv/ca-certificates mode,0644 when item.value.enabled bool inventory_hostname in groups item.value.group kolla_copy_ca_into_containers bool

AnsibleTask debug msg Nova Hyper-V deployment role is deprecated in Ussuri and will be removed in Victoria Please read release notes for more background

AnsibleTask file path node_config_directory item.key state directory owner config_owner_user group config_owner_group mode,0770 become True when inventory_hostname in groups item.value.group item.value.enabled bool with_dict octavia_services

AnsibleTask set_fact octavia_policy_file octavia_policy.results.0.stat.path basename octavia_policy_file_path octavia_policy.results.0.stat.path when octavia_policy.results

AnsibleTask template src octavia_policy_file_path dest node_config_directory item.key octavia_policy_file mode,0660 become True when octavia_policy_file is defined inventory_hostname in groups item.value.group item.value.enabled bool with_dict octavia_services notify Restart item.key container

AnsibleTask become True copy src node_config /certificates/ca/ dest node_config_directory item.key /ca-certificates mode,0644 when item.value.enabled bool inventory_hostname in groups item.value.group kolla_copy_ca_into_containers bool with_dict octavia_services notify Restart item.key container

AnsibleTask template src item.key .json.j2 dest node_config_directory item.key /config.json mode,0660 become True when inventory_hostname in groups item.value.group item.value.enabled bool with_dict octavia_services notify Restart item.key container

AnsibleTask vars service octavia_services copy src node_custom_config /octavia/ item dest node_config_directory /octavia-worker/ item mode,0660 become True when inventory_hostname in groups service.group service.enabled bool with_items cakey.pem ca_01.pem client.pem notify Restart octavia-worker container

AnsibleTask vars service octavia_services copy src node_custom_config /octavia/ item dest node_config_directory /octavia-housekeeping/ item mode,0660 become True when inventory_hostname in groups service.group service.enabled bool with_items cakey.pem ca_01.pem client.pem notify Restart octavia-housekeeping container

AnsibleTask vars service octavia_services copy src node_custom_config /octavia/ item dest node_config_directory /octavia-health-manager/ item mode,0660 become True when inventory_hostname in groups service.group service.enabled bool with_items cakey.pem ca_01.pem client.pem notify Restart octavia-health-manager container

AnsibleTask become True command docker exec openvswitch_db ovs-vsctl no-wait show register check_result until check_result is success changed_when False retries 30 delay 2

AnsibleTask become True file path node_config_directory item.key state directory owner config_owner_user group config_owner_group mode,0770 when item.value.enabled bool item.value.host_in_groups bool with_dict openvswitch_services

AnsibleTask become True template src item.key .json.j2 dest node_config_directory item.key /config.json mode,0660 when item.value.enabled bool item.value.host_in_groups bool with_dict openvswitch_services notify Restart item.key container

AnsibleTask become True vars service openvswitch_services template src role_path /templates/start-ovs.j2 dest node_config_directory /openvswitch-vswitchd/start-ovs mode,0770 when inventory_hostname in groups service.group service.enabled bool notify Restart openvswitch-vswitchd container

AnsibleTask become True vars service openvswitch_services template src role_path /templates/start-ovsdb-server.j2 dest node_config_directory /openvswitch-db-server/start-ovsdb-server mode,0770 when inventory_hostname in groups service.group service.enabled bool notify Restart openvswitch-db-server container

AnsibleTask become True command docker exec openvswitch_db /usr/local/bin/kolla_ensure_openvswitch_configured item.0 item.1 register status changed_when status.stdout.find -1 when inventory_hostname in groups network or inventory_hostname in groups compute and computes_need_external_bridge bool with_together neutron_bridge_name.split neutron_external_interface.split

AnsibleTask vars service_name ovsdpdk-db service ovsdpdk_services service_name become True command docker exec service.container_name ovs-vsctl no-wait show register check_result until check_result is success changed_when False retries 30 delay 2

AnsibleTask vars service_name ovsdpdk-db service ovsdpdk_services service_name become True command docker exec service.container_name /bin/sh -c container_config_directory /ovs-dpdkctl.conf container_config_directory /ovs-dpdkctl.sh init register status changed_when status.stdout.find -1 when inventory_hostname in groups or enable_manila bool and inventory_hostname in groups or inventory_hostname in groups or inventory_hostname in groups or inventory_hostname in groups ovs_physical_port_policy

AnsibleTask file path node_config_directory item.key state directory owner config_owner_user group config_owner_group mode,0770 when item.value.enabled bool item.value.host_in_groups bool with_dict ovsdpdk_services

AnsibleTask template src item.key .json.j2 dest node_config_directory item.key /config.json mode,0660 when item.value.enabled bool item.value.host_in_groups bool with_dict ovsdpdk_services notify Restart item.key container

AnsibleTask copy src ../tools/ovs-dpdkctl.sh dest node_config_directory /ovsdpdk-db/ovs-dpdkctl.sh mode,0770

AnsibleTask become True command node_config_directory /ovsdpdk-db/ovs-dpdkctl.sh install environment CONFIG_FILE node_config_directory /ovsdpdk-db/ovs-dpdkctl.conf bridge_mappings ovs_bridge_mappings port_mappings ovs_port_mappings cidr_mappings ovs_cidr_mappings ovs_mem_channels ovs_mem_channels ovs_socket_mem ovs_socket_mem hugepage_mountpoint ovs_hugepage_mountpoint ovs_physical_port_policy ovs_physical_port_policy

AnsibleTask become True command node_config_directory /ovsdpdk-db/ovs-dpdkctl.sh bind_nics environment CONFIG_FILE node_config_directory /ovsdpdk-db/ovs-dpdkctl.conf bridge_mappings ovs_bridge_mappings port_mappings ovs_port_mappings cidr_mappings ovs_cidr_mappings ovs_mem_channels ovs_mem_channels ovs_socket_mem ovs_socket_mem hugepage_mountpoint ovs_hugepage_mountpoint ovs_physical_port_policy ovs_physical_port_policy

AnsibleTask become True command docker exec -t mongodb mongo host mongodb_replication_set_name panko_database_mongodb_address eval db.getSiblingDB panko_database_name db.createUser user panko_database_user pwd panko_database_password roles readWrite dbAdmin register mongodb_panko_database run_once True changed_when mongodb_panko_database.stdout.find -1 failed_when mongodb_panko_database.stdout.split 4 delegate_to groups 0 when panko_database_type mongodb

AnsibleTask file path node_config_directory item.key state directory owner config_owner_user group config_owner_group mode,0770 become True when inventory_hostname in groups item.value.group item.value.enabled bool with_dict panko_services

AnsibleTask set_fact panko_policy_file panko_policy.results.0.stat.path basename panko_policy_file_path panko_policy.results.0.stat.path when panko_policy.results

AnsibleTask become True copy src node_config /certificates/ca/ dest node_config_directory item.key /ca-certificates mode,0644 when item.value.enabled bool inventory_hostname in groups item.value.group kolla_copy_ca_into_containers bool with_dict panko_services notify Restart item.key container

AnsibleTask template src item.key .json.j2 dest node_config_directory item.key /config.json mode,0660 become True when inventory_hostname in groups item.value.group item.value.enabled bool with_dict panko_services notify Restart panko-api container

AnsibleTask vars service panko_services template src wsgi-panko.conf.j2 dest node_config_directory item /wsgi-panko.conf mode,0660 become True when inventory_hostname in groups service.group service.enabled bool with_items panko-api notify Restart panko-api container

AnsibleTask template src panko_policy_file_path dest node_config_directory item.key panko_policy_file mode,0660 become True when panko_policy_file is defined inventory_hostname in groups item.value.group item.value.enabled bool with_dict panko_services notify Restart panko-api container

AnsibleTask become True file path node_config_directory item.key state directory owner config_owner_user group config_owner_group mode,0770 when inventory_hostname in groups item.value.group item.value.enabled bool with_dict placement_services

AnsibleTask set_fact placement_policy_file placement_policy.results.0.stat.path basename placement_policy_file_path placement_policy.results.0.stat.path when placement_policy.results

AnsibleTask become True copy src node_config /certificates/ca/ dest node_config_directory item.key /ca-certificates mode,0644 when item.value.enabled bool inventory_hostname in groups item.value.group kolla_copy_ca_into_containers bool with_dict placement_services notify Restart item.key container

AnsibleTask become True template src item.key .json.j2 dest node_config_directory item.key /config.json mode,0660 when inventory_hostname in groups item.value.group item.value.enabled bool with_dict placement_services notify Restart item.key container

AnsibleTask become True vars service placement_services template src placement-api-wsgi.conf.j2 dest node_config_directory /placement-api/placement-api-wsgi.conf mode,0660 when inventory_hostname in groups service.group service.enabled bool notify Restart placement-api container

AnsibleTask become True vars service placement_services template src migrate-db.rc.j2 dest node_config_directory /placement-api/migrate-db.rc mode,0660 when inventory_hostname in groups service.group service.enabled bool notify Restart placement-api container

AnsibleTask become True template src placement_policy_file_path dest placement_config_directory item.key placement_policy_file mode,0660 when inventory_hostname in groups item.value.group item.value.enabled bool placement_policy_file is defined with_dict placement_services notify Restart item.key container

AnsibleTask fail msg Host OS distribution ansible_distribution is not supported Supported distributions are host_os_distributions.keys join when ansible_distribution not in host_os_distributions

AnsibleTask fail msg ansible_distribution release ansible_distribution_release version ansible_distribution_version is not supported Supported releases are host_os_distributions ansible_distribution join when ansible_distribution_release not in host_os_distributions ansible_distribution ansible_distribution_version not in host_os_distributions ansible_distribution ansible_distribution_major_version not in host_os_distributions ansible_distribution

AnsibleTask command ansible_python.executable -c import docker print docker.__version__ register result changed_when False when inventory_hostname in groups failed_when result is failed or result.stdout is version docker_py_version_min

AnsibleTask vars ansible_version_host ansible_version.major ansible_version.minor fail msg Ansible version should be between ansible_version_min and ansible_version_max Current version is ansible_version.full which is not supported run_once True when ansible_version_host is version ansible_version_min or ansible_version_host is version ansible_version_max

AnsibleTask fail check the api_interface property interface api_interface not found when api_interface not in ansible_interfaces

AnsibleTask fail check the api_interface settings interface api_interface is not active when not hostvars inventory_hostname api_interface

AnsibleTask fail check the api_interface settings interface api_interface ip address problem when api_interface_address is not defined

AnsibleTask become True command docker version register result changed_when False when inventory_hostname in groups failed_when result is failed or result.stdout regex_replace \\d+\\.\\d+\\.\\d+ is version docker_version_min

AnsibleTask command cmd grep \s* node_config /passwords.yml delegate_to localhost run_once True register result changed_when False failed_when result.stdout regex_replace .*ssh_key is search

AnsibleTask command pgrep nscd ignore_errors True failed_when False changed_when False register nscd_status

AnsibleTask fail msg Service nscd is running This is known to cause issues with Docker user namespaces in Kolla Please disable it before proceeding when nscd_status.rc 0

AnsibleTask run_once True fail msg kolla_external_vip_address and kolla_internal_vip_address must not be the same when only one network has TLS enabled changed_when False when kolla_enable_tls_external bool or kolla_enable_tls_internal bool not kolla_enable_tls_external bool and kolla_enable_tls_internal bool kolla_same_external_internal_vip bool

AnsibleTask run_once True fail msg We are sorry but enable_ceph is no longer supported Please use external ceph support when enable_ceph default bool

AnsibleTask command true become True register result failed_when result is failed changed_when False

AnsibleTask become True file path node_config_directory item.key state directory owner config_owner_user group config_owner_group mode,0770 when inventory_hostname in groups item.value.group item.value.enabled bool with_dict prometheus_services

AnsibleTask become True copy src node_config /certificates/ca/ dest node_config_directory item.key /ca-certificates mode,0644 when item.value.enabled bool inventory_hostname in groups item.value.group kolla_copy_ca_into_containers bool with_dict prometheus_services notify Restart item.key container

AnsibleTask become True template src item.key .json.j2 dest node_config_directory item.key /config.json mode,0660 when inventory_hostname in groups item.value.group item.value.enabled bool with_dict prometheus_services notify Restart item.key container

AnsibleTask become True vars service prometheus_services copy src item.path dest node_config_directory /prometheus-server/ item.path basename mode,0660 when inventory_hostname in groups service.group service.enabled bool and enable_prometheus_alertmanager bool prometheus_alert_rules is defined and prometheus_alert_rules.files length 0 with_items prometheus_alert_rules.files notify Restart prometheus-server container

AnsibleTask become True vars service prometheus_services template src item dest node_config_directory /prometheus-server/prometheus.yml mode,0660 when inventory_hostname in groups service.group service.enabled bool with_first_found node_custom_config /prometheus/ inventory_hostname /prometheus.yml node_custom_config /prometheus/prometheus.yml role_path /templates/prometheus.yml.j2 notify Restart prometheus-server container

AnsibleTask become True vars service prometheus_services template src item dest node_config_directory /prometheus-alertmanager/prometheus-alertmanager.yml mode,0660 when inventory_hostname in groups service.group service.enabled bool with_first_found node_custom_config /prometheus/ inventory_hostname /prometheus-alertmanager.yml node_custom_config /prometheus/prometheus-alertmanager.yml role_path /templates/prometheus-alertmanager.yml.j2 notify Restart prometheus-alertmanager container

AnsibleTask become True vars service prometheus_services template src item dest node_config_directory /prometheus-openstack-exporter/clouds.yml mode,0660 when inventory_hostname in groups service.group service.enabled bool with_first_found node_custom_config /prometheus-openstack-exporter/ inventory_hostname /clouds.yml node_custom_config /prometheus-openstack-exporter/clouds.yml role_path /templates/clouds.yml.j2 notify Restart prometheus-openstack-exporter container

AnsibleTask become True vars service prometheus_services template src item dest node_config_directory /prometheus-blackbox-exporter/prometheus-blackbox-exporter.yml mode,0660 when inventory_hostname in groups service.group service.enabled bool with_first_found node_custom_config /prometheus/ inventory_hostname /prometheus-blackbox-exporter.yml node_custom_config /prometheus/prometheus-blackbox-exporter.yml role_path /templates/prometheus-blackbox-exporter.yml.j2 notify Restart prometheus-blackbox-exporter container

AnsibleTask shell set -o pipefail echo qdrouterd_password docker exec -u root -i qdrouterd saslpasswd2 -c -p -f /var/lib/qdrouterd/qdrouterd.sasldb -u AMQP qdrouterd_user run_once True changed_when True when kolla_action config

AnsibleTask file path node_config_directory item.key state directory owner config_owner_user group config_owner_group mode,0770 become True when inventory_hostname in groups item.value.group item.value.enabled bool with_dict qdrouterd_services

AnsibleTask template src item.key .json.j2 dest node_config_directory item.key /config.json mode,0660 become True when inventory_hostname in groups item.value.group item.value.enabled bool with_dict qdrouterd_services notify Restart qdrouterd container

AnsibleTask vars service qdrouterd_services template src item dest node_config_directory /qdrouterd/qdrouterd.conf mode,0660 become True when inventory_hostname in groups service.group service.enabled bool with_first_found node_custom_config /qdrouterd/ inventory_hostname /qdrouterd.conf node_custom_config /qdrouterd/qdrouterd.conf qdrouterd.conf.j2 notify Restart qdrouterd container

AnsibleTask vars service qdrouterd_services template src item dest node_config_directory /qdrouterd/qdrouterd-sasl.conf mode,0660 become True when inventory_hostname in groups service.group service.enabled bool with_first_found node_custom_config /qdrouterd/ inventory_hostname /qdrouterd-sasl.conf node_custom_config /qdrouterd/qdrouterd-sasl.conf qdrouterd-sasl.conf.j2 notify Restart qdrouterd container

AnsibleTask vars nss_database if api_address_family else command getent nss_database hostvars item changed_when False register qdrouterd_hostnames with_items groups

AnsibleTask fail msg Hostname has to resolve to IP address of api_interface with_items qdrouterd_hostnames.results when item.stdout.find kolla_address item -1

AnsibleTask file path node_config_directory item.key state directory owner config_owner_user group config_owner_group mode,0770 become True when inventory_hostname in groups item.value.group item.value.enabled bool with_dict qinling_services

AnsibleTask set_fact qinling_policy_file qinling_policy.results.0.stat.path basename qinling_policy_file_path qinling_policy.results.0.stat.path when qinling_policy.results

AnsibleTask become True copy src node_config /certificates/ca/ dest node_config_directory item.key /ca-certificates mode,0644 when item.value.enabled bool inventory_hostname in groups item.value.group kolla_copy_ca_into_containers bool with_dict qinling_services notify Restart item.key container

AnsibleTask template src item.key .json.j2 dest node_config_directory item.key /config.json mode,0660 become True when inventory_hostname in groups item.value.group item.value.enabled bool with_dict qinling_services notify Restart item.key container

AnsibleTask vars service qinling_services template src wsgi-qinling.conf.j2 dest node_config_directory /qinling-api/wsgi-qinling.conf mode,0660 become True when inventory_hostname in groups service.group service.enabled bool notify Restart qinling-api container

AnsibleTask template src qinling_policy_file_path dest node_config_directory item.key qinling_policy_file mode,0660 become True when qinling_policy_file is defined inventory_hostname in groups item.value.group item.value.enabled bool with_dict qinling_services notify Restart item.key container

AnsibleTask copy src item dest node_config_directory /qinling-engine/ mode,0660 owner config_owner_user group config_owner_group become True register qinling_engine_kubernetes_files with_items node_custom_config /qinling/qinling-engine/kubernetes_ca.crt node_custom_config /qinling/qinling-engine/kubernetes.crt node_custom_config /qinling/qinling-engine/kubernetes.key when qinling_kubernetes_certificates bool inventory_hostname in groups notify Restart qinling-engine container

AnsibleTask vars service_name rabbitmq service rabbitmq_services service_name become True command docker exec service.container_name rabbitmqctl wait rabbitmq_pid_file when inventory_hostname groups service.group |first

AnsibleTask file path node_config_directory project_name state directory owner config_owner_user group config_owner_group mode,0770 become True when inventory_hostname in groups item.value.group item.value.enabled bool with_dict rabbitmq_services

AnsibleTask template src item.key .json.j2 dest node_config_directory project_name /config.json mode,0660 become True when inventory_hostname in groups item.value.group item.value.enabled bool with_dict rabbitmq_services notify Restart rabbitmq container first node Restart rabbitmq container rest of nodes

AnsibleTask become True vars service rabbitmq_services template src item dest node_config_directory project_name /rabbitmq-env.conf mode,0660 with_first_found node_custom_config /rabbitmq/ inventory_hostname /rabbitmq-env.conf node_custom_config /rabbitmq/rabbitmq-env.conf rabbitmq-env.conf.j2 when inventory_hostname in groups service.group service.enabled bool notify Restart rabbitmq container first node Restart rabbitmq container rest of nodes

AnsibleTask become True vars service rabbitmq_services template src item dest node_config_directory project_name /rabbitmq.conf mode,0660 with_first_found node_custom_config /rabbitmq/ inventory_hostname /rabbitmq.conf node_custom_config /rabbitmq/rabbitmq.conf rabbitmq.conf.j2 when inventory_hostname in groups service.group service.enabled bool notify Restart rabbitmq container first node Restart rabbitmq container rest of nodes

AnsibleTask become True vars service rabbitmq_services template src item dest node_config_directory project_name /erl_inetrc mode,0660 with_first_found node_custom_config /rabbitmq/ inventory_hostname /erl_inetrc node_custom_config /rabbitmq/erl_inetrc erl_inetrc.j2 when inventory_hostname in groups service.group service.enabled bool notify Restart rabbitmq container first node Restart rabbitmq container rest of nodes

AnsibleTask become True vars service rabbitmq_services template src item dest node_config_directory project_name /definitions.json mode,0660 with_first_found node_custom_config /rabbitmq/ inventory_hostname /definitions.json node_custom_config /rabbitmq/definitions.json definitions.json.j2 when inventory_hostname in groups service.group service.enabled bool notify Restart rabbitmq container first node Restart rabbitmq container rest of nodes

AnsibleTask vars nss_database if api_address_family else command getent nss_database hostvars item changed_when False register rabbitmq_hostnames with_items groups

AnsibleTask fail msg Hostname has to resolve uniquely to the IP address of api_interface with_subelements rabbitmq_hostnames.results stdout_lines when not item.1 is match kolla_address item.0.item

AnsibleTask vars nss_database if api_address_family else command getent nss_database hostvars item changed_when False register outward_rabbitmq_hostnames with_items groups when enable_outward_rabbitmq bool

AnsibleTask fail msg Hostname has to resolve uniquely to the IP address of api_interface with_subelements outward_rabbitmq_hostnames.results stdout_lines when enable_outward_rabbitmq bool not item.1 is match kolla_address item.0.item

AnsibleTask file path node_config_directory item.key state directory owner config_owner_user group config_owner_group mode,0770 become True when inventory_hostname in groups item.value.group item.value.enabled bool with_dict rally_services

AnsibleTask set_fact rally_policy_file rally_policy.results.0.stat.path basename rally_policy_file_path rally_policy.results.0.stat.path when rally_policy.results

AnsibleTask become True copy src node_config /certificates/ca/ dest node_config_directory item.key /ca-certificates mode,0644 when item.value.enabled bool inventory_hostname in groups item.value.group kolla_copy_ca_into_containers bool with_dict rally_services notify Restart item.key container

AnsibleTask template src item.key .json.j2 dest node_config_directory item.key /config.json mode,0660 become True when item.value.enabled bool inventory_hostname in groups item.value.group with_dict rally_services notify Restart rally container

AnsibleTask template src rally_policy_file_path dest node_config_directory item.key rally_policy_file mode,0660 become True when rally_policy_file is defined inventory_hostname in groups item.value.group item.value.enabled bool with_dict rally_services notify Restart rally container

AnsibleTask become True command docker exec redis redis-cli -h api_interface_address -a redis_master_password ping register redis_check changed_when redis_check.stdout failed_when redis_check.stdout

AnsibleTask file path node_config_directory item.key state directory owner config_owner_user group config_owner_group mode,0770 become True when inventory_hostname in groups item.value.group item.value.enabled bool with_dict redis_services

AnsibleTask template src item.key .json.j2 dest node_config_directory item.key /config.json mode,0660 become True when inventory_hostname in groups item.value.group item.value.enabled bool with_dict redis_services notify Restart item.key container

AnsibleTask template src item.key .conf.j2 dest node_config_directory item.key /redis.conf mode,0660 become True when inventory_hostname in groups item.value.group item.value.enabled bool with_dict redis_services notify Restart item.key container

AnsibleTask file path node_config_directory item.key state directory owner config_owner_user group config_owner_group mode,0770 become True when inventory_hostname in groups item.value.group item.value.enabled bool with_dict sahara_services

AnsibleTask set_fact sahara_policy_file sahara_policy.results.0.stat.path basename sahara_policy_file_path sahara_policy.results.0.stat.path when sahara_policy.results

AnsibleTask become True copy src node_config /certificates/ca/ dest node_config_directory item.key /ca-certificates mode,0644 when item.value.enabled bool inventory_hostname in groups item.value.group kolla_copy_ca_into_containers bool with_dict sahara_services notify Restart item.key container

AnsibleTask template src item.key .json.j2 dest node_config_directory item.key /config.json mode,0660 become True when inventory_hostname in groups item.value.group item.value.enabled bool with_dict sahara_services notify Restart item.key container

AnsibleTask template src sahara_policy_file_path dest node_config_directory item.key sahara_policy_file mode,0660 become True when sahara_policy_file is defined inventory_hostname in groups item.value.group item.value.enabled bool with_dict sahara_services notify Restart item.key container

AnsibleTask file path node_config_directory item.key state directory owner config_owner_user group config_owner_group mode,0770 become True when inventory_hostname in groups item.value.group item.value.enabled bool with_dict searchlight_services

AnsibleTask set_fact searchlight_policy_file searchlight_policy.results.0.stat.path basename searchlight_policy_file_path searchlight_policy.results.0.stat.path when searchlight_policy.results

AnsibleTask become True copy src node_config /certificates/ca/ dest node_config_directory item.key /ca-certificates mode,0644 when item.value.enabled bool inventory_hostname in groups item.value.group kolla_copy_ca_into_containers bool with_dict searchlight_config_jsons notify Restart item.key container

AnsibleTask template src item.key .json.j2 dest node_config_directory item.key /config.json mode,0660 become True when item.value.enabled bool inventory_hostname in groups item.value.group with_dict searchlight_services notify Restart item.key container

AnsibleTask template src searchlight_policy_file_path dest node_config_directory item.key searchlight_policy_file mode,0660 become True when searchlight_policy_file is defined inventory_hostname in groups item.value.group item.value.enabled bool with_dict searchlight_services notify Restart item.key container

AnsibleTask file path node_config_directory item.key state directory owner config_owner_user group config_owner_group mode,0770 become True when inventory_hostname in groups item.value.group item.value.enabled bool with_dict senlin_services

AnsibleTask set_fact senlin_policy_file senlin_policy.results.0.stat.path basename senlin_policy_file_path senlin_policy.results.0.stat.path when senlin_policy.results

AnsibleTask become True copy src node_config /certificates/ca/ dest node_config_directory item.key /ca-certificates mode,0644 when item.value.enabled bool inventory_hostname in groups item.value.group kolla_copy_ca_into_containers bool with_dict senlin_services notify Restart item.key container

AnsibleTask template src item.key .json.j2 dest node_config_directory item.key /config.json mode,0660 become True when item.value.enabled bool inventory_hostname in groups item.value.group with_dict senlin_services notify Restart item.key container

AnsibleTask template src senlin_policy_file_path dest node_config_directory item.key senlin_policy_file mode,0660 become True when senlin_policy_file is defined inventory_hostname in groups item.value.group item.value.enabled bool with_dict senlin_services notify Restart item.key container

AnsibleTask file path node_config_directory item.key state directory owner config_owner_user group config_owner_group mode,0770 become True when inventory_hostname in groups item.value.group item.value.enabled bool with_dict skydive_services

AnsibleTask become True copy src node_config /certificates/ca/ dest node_config_directory item.key /ca-certificates mode,0644 when item.value.enabled bool inventory_hostname in groups item.value.group kolla_copy_ca_into_containers bool with_dict skydive_services notify Restart item.key container

AnsibleTask template src item.key .json.j2 dest node_config_directory item.key /config.json mode,0660 become True when inventory_hostname in groups item.value.group item.value.enabled bool with_dict skydive_services notify Restart item.key container

AnsibleTask template src item.key .conf.j2 dest node_config_directory item.key /skydive.conf mode,0660 become True when item.value.enabled bool inventory_hostname in groups item.value.group with_dict skydive_services notify Restart item.key container

AnsibleTask file path node_config_directory item.key state directory owner config_owner_user group config_owner_group mode,0770 become True when inventory_hostname in groups item.value.group item.value.enabled bool with_dict solum_services

AnsibleTask become True copy src node_config /certificates/ca/ dest node_config_directory item.key /ca-certificates mode,0644 when item.value.enabled bool inventory_hostname in groups item.value.group kolla_copy_ca_into_containers bool with_dict solum_services notify Restart item.key container

AnsibleTask template src item.key .json.j2 dest node_config_directory item.key /config.json mode,0660 become True when inventory_hostname in groups item.value.group item.value.enabled bool with_dict solum_services notify Restart item.key container

AnsibleTask file path node_config_directory item.key state directory owner config_owner_user group config_owner_group mode,0770 become True when inventory_hostname in groups item.value.group item.value.enabled bool with_dict storm_services

AnsibleTask template src item.key .json.j2 dest node_config_directory item.key /config.json mode,0660 become True when inventory_hostname in groups item.value.group item.value.enabled bool with_dict storm_services notify Restart item.key container

AnsibleTask vars service storm_services template src item dest node_config_directory /storm-worker/storm.yml mode,0660 become True with_first_found node_custom_config /storm/ inventory_hostname /storm.yml node_custom_config /storm.yml storm.yml.j2 when inventory_hostname in groups service service.enabled bool notify Restart storm-worker container

AnsibleTask vars service storm_services template src item dest node_config_directory /storm-nimbus/storm.yml mode,0660 become True with_first_found node_custom_config /storm/ inventory_hostname /storm.yml node_custom_config /storm.yml storm.yml.j2 when inventory_hostname in groups service service.enabled bool notify Restart storm-nimbus container

AnsibleTask become True command docker exec -t kolla_toolbox ansible localhost -m kolla_sanity -a service=swift project=service user= openstack_auth.username password= swift_keystone_password role=admin region_name= openstack_region_name auth= openstack_swift_auth if openstack_cacert cacert= openstack_cacert endif -e openstack_swift_auth register swift_sanity changed_when swift_sanity.stdout.find SUCCESS -1 and swift_sanity.stdout.split SUCCESS 1 |from_json .changed until swift_sanity.stdout.split 2 retries 10 delay 5 run_once True when kolla_enable_sanity_swift bool

AnsibleTask file path node_config_directory item state directory owner config_owner_user group config_owner_group mode,0770 become True with_items swift swift-account-auditor swift-account-reaper swift-account-replication-server swift-account-replicator swift-account-server swift-container-auditor swift-container-replication-server swift-container-replicator swift-container-server swift-container-updater swift-object-auditor swift-object-expirer swift-object-replication-server swift-object-replicator swift-object-server swift-object-updater swift-proxy-server swift-rsyncd

AnsibleTask become True copy src node_config /certificates/ca/ dest node_config_directory item.key /ca-certificates mode,0644 when item.value.enabled bool inventory_hostname in groups item.value.group kolla_copy_ca_into_containers bool with_dict swift_services notify Restart item.key container

AnsibleTask template src item .json.j2 dest node_config_directory item /config.json mode,0660 become True with_items swift-account-auditor swift-account-reaper swift-account-replication-server swift-account-replicator swift-account-server swift-container-auditor swift-container-replication-server swift-container-replicator swift-container-server swift-container-updater swift-object-auditor swift-object-expirer swift-object-replication-server swift-object-replicator swift-object-server swift-object-updater swift-proxy-server swift-rsyncd

AnsibleTask template src rsyncd.conf.j2 dest node_config_directory /swift-rsyncd/rsyncd.conf mode,0660 become True when inventory_hostname in groups or inventory_hostname in groups or inventory_hostname in groups

AnsibleTask copy src node_custom_config /swift/ item dest node_config_directory /swift/ item backup True mode,0660 become True with_items account.builder account.ring.gz container.builder container.ring.gz object.builder object.ring.gz swift_extra_ring_files

AnsibleTask template src node_custom_config /swift/policy.json dest node_config_directory item /policy.json mode,0660 with_items swift-account-auditor swift-account-reaper swift-account-replication-server swift-account-replicator swift-account-server swift-container-auditor swift-container-replication-server swift-container-replicator swift-container-server swift-container-updater swift-object-auditor swift-object-expirer swift-object-replication-server swift-object-replicator swift-object-server swift-object-updater swift-proxy-server when swift_policy.stat.exists

AnsibleTask run_once True fail msg Swift ring files do not exist Ensure .builder and .gz are available for each of account/container/object under node_custom_config /swift before deploying Swift with_items swift_ring_files.results when not item.stat.exists

AnsibleTask set_fact swift_containers swift_replication_server_containers 'name , ' '

AnsibleTask set_fact swift_containers swift_containers swift_replication_server_containers when swift_has_replication_network

AnsibleTask become True command docker exec -u root item.name /usr/local/bin/kolla_set_configs check changed_when False failed_when False register check_results when inventory_hostname in groups item.group with_items swift_containers

AnsibleTask become True command docker exec -t kolla_toolbox sudo -E ansible localhost -m find_disks -a name= swift_devices_name match_mode= swift_devices_match_mode register swift_disk_lookup changed_when swift_disk_lookup.stdout.find SUCCESS -1 and swift_disk_lookup.stdout.split SUCCESS 1 |from_json .changed failed_when swift_disk_lookup.stdout.split 2 when inventory_hostname in groups or inventory_hostname in groups or inventory_hostname in groups

AnsibleTask set_fact swift_disks swift_disk_lookup.stdout.split SUCCESS 1 |from_json .disks|from_json when inventory_hostname in groups or inventory_hostname in groups or inventory_hostname in groups

AnsibleTask file path node_config_directory item.key state directory owner config_owner_user group config_owner_group mode,0770 become True when item.value.host_in_groups bool item.value.enabled bool with_dict tacker_services

AnsibleTask set_fact tacker_policy_file tacker_policy.results.0.stat.path basename tacker_policy_file_path tacker_policy.results.0.stat.path when tacker_policy.results

AnsibleTask become True copy src node_config /certificates/ca/ dest node_config_directory item.key /ca-certificates mode,0644 when item.value.enabled bool inventory_hostname in groups item.value.group kolla_copy_ca_into_containers bool with_dict tacker_services notify Restart item.key container

AnsibleTask template src item.key .json.j2 dest node_config_directory item.key /config.json mode,0660 become True with_dict tacker_services when item.value.host_in_groups bool item.value.enabled notify Restart item.key container

AnsibleTask template src tacker_policy_file_path dest node_config_directory item.key tacker_policy_file mode,0660 become True when item.value.host_in_groups bool item.value.enabled bool tacker_policy_file is defined with_dict tacker_services notify Restart item.key container

AnsibleTask debug msg In Train Tacker started using local filesystem to store VNF packages and CSAR files Kolla Ansible provides no shared filesystem capabilities hence only one instance of each Tacker service is deployed and all on the same host Previous multinode deployments will be descaled when running upgrade

AnsibleTask file path node_config_directory item.key /config state directory owner config_owner_user group config_owner_group mode,0770 become True when inventory_hostname in groups item.value.group item.value.enabled bool with_dict telegraf_services

AnsibleTask become True copy src node_config /certificates/ca/ dest node_config_directory item.key /ca-certificates mode,0644 when item.value.enabled bool inventory_hostname in groups item.value.group kolla_copy_ca_into_containers bool with_dict telegraf_services notify Restart item.key container

AnsibleTask template src telegraf.json.j2 dest node_config_directory /telegraf/config.json mode,0660 become True when inventory_hostname in groups item.value.group item.value.enabled bool with_dict telegraf_services notify Restart telegraf container

AnsibleTask vars service telegraf_services template src item dest node_config_directory /telegraf/telegraf.conf mode,0660 become True when inventory_hostname in groups service.group service.enabled bool with_first_found node_custom_config /telegraf/ inventory_hostname /telegraf.conf node_custom_config /telegraf/telegraf.conf telegraf.conf.j2 notify Restart telegraf container

AnsibleTask vars service telegraf_services copy src item dest node_config_directory /telegraf/config mode,0660 become True when inventory_hostname in groups service.group item.value.enabled bool with_fileglob role_path /templates/config/*.conf notify Restart telegraf container

AnsibleTask file path node_config_directory item.key state directory owner config_owner_user group config_owner_group mode,0770 become True when inventory_hostname in groups item.value.group item.value.enabled bool with_dict tempest_services

AnsibleTask become True copy src node_config /certificates/ca/ dest node_config_directory item.key /ca-certificates mode,0644 when item.value.enabled bool inventory_hostname in groups item.value.group kolla_copy_ca_into_containers bool with_dict tempest_services notify Restart item.key container

AnsibleTask template src item.key .json.j2 dest node_config_directory item.key /config.json mode,0660 become True when inventory_hostname in groups item.value.group item.value.enabled bool with_dict tempest_services notify Restart tempest container

AnsibleTask file path node_config_directory item.key state directory owner config_owner_user group config_owner_group mode,0770 become True when inventory_hostname in groups item.value.group item.value.enabled bool with_dict trove_services

AnsibleTask set_fact trove_policy_file trove_policy.results.0.stat.path basename trove_policy_file_path trove_policy.results.0.stat.path when trove_policy.results

AnsibleTask become True copy src node_config /certificates/ca/ dest node_config_directory item.key /ca-certificates mode,0644 when item.value.enabled bool inventory_hostname in groups item.value.group kolla_copy_ca_into_containers bool with_dict trove_services notify Restart item.key container

AnsibleTask template src item.key .json.j2 dest node_config_directory item.key /config.json mode,0660 become True when inventory_hostname in groups item.value.group item.value.enabled bool with_dict trove_services notify Restart item.key container

AnsibleTask template src trove_policy_file_path dest node_config_directory item.key trove_policy_file mode,0660 when trove_policy_file is defined inventory_hostname in groups item.value.group with_dict trove_services notify Restart item.key container

AnsibleTask file path node_config_directory item.key state directory owner config_owner_user group config_owner_group mode,0770 become True when inventory_hostname in groups item.value.group item.value.enabled bool with_dict vitrage_services

AnsibleTask set_fact vitrage_policy_file vitrage_policy.results.0.stat.path basename vitrage_policy_file_path vitrage_policy.results.0.stat.path when vitrage_policy.results

AnsibleTask become True copy src node_config /certificates/ca/ dest node_config_directory item.key /ca-certificates mode,0644 when item.value.enabled bool inventory_hostname in groups item.value.group kolla_copy_ca_into_containers bool with_dict vitrage_services notify Restart item.key container

AnsibleTask template src item.key .json.j2 dest node_config_directory item.key /config.json mode,0660 become True when inventory_hostname in groups item.value.group item.value.enabled bool with_dict vitrage_services notify Restart item.key container

AnsibleTask template src wsgi-vitrage.conf.j2 dest node_config_directory item /wsgi-vitrage.conf mode,0660 become True with_items vitrage-api notify Restart vitrage-api container

AnsibleTask vars service vitrage_services template src node_custom_config /vitrage/prometheus_conf.yaml dest node_config_directory /vitrage-graph/prometheus_conf.yaml mode,0660 become True when enable_vitrage_prometheus_datasource bool inventory_hostname in groups service.group service.enabled bool notify Restart vitrage-graph container

AnsibleTask template src vitrage_policy_file_path dest node_config_directory item.key vitrage_policy_file mode,0660 become True when vitrage_policy_file is defined inventory_hostname in groups item.value.group item.value.enabled bool with_dict vitrage_services notify Restart item.key container

AnsibleTask file path node_config_directory item.key state directory owner config_owner_user group config_owner_group mode,0770 become True when inventory_hostname in groups item.value.group item.value.enabled bool with_dict vmtp_services

AnsibleTask file path node_config_directory item.key state directory owner config_owner_user group config_owner_group mode,0770 become True when inventory_hostname in groups item.value.group item.value.enabled bool with_dict watcher_services

AnsibleTask set_fact watcher_policy_file watcher_policy.results.0.stat.path basename watcher_policy_file_path watcher_policy.results.0.stat.path when watcher_policy.results

AnsibleTask become True copy src node_config /certificates/ca/ dest node_config_directory item.key /ca-certificates mode,0644 when item.value.enabled bool inventory_hostname in groups item.value.group kolla_copy_ca_into_containers bool with_dict watcher_services notify Restart item.key container

AnsibleTask template src item.key .json.j2 dest node_config_directory item.key /config.json mode,0660 when inventory_hostname in groups item.value.group item.value.enabled bool with_dict watcher_services notify Restart item.key container

AnsibleTask template src watcher_policy_file_path dest node_config_directory item.key watcher_policy_file mode,0660 when watcher_policy_file is defined inventory_hostname in groups item.value.group item.value.enabled bool with_dict watcher_services notify Restart item.key container

AnsibleTask file path node_config_directory item.key state directory owner config_owner_user group config_owner_group mode,0770 become True when inventory_hostname in groups item.value.group item.value.enabled bool with_dict zookeeper_services

AnsibleTask template src item.key .json.j2 dest node_config_directory item.key /config.json mode,0660 become True when inventory_hostname in groups item.value.group item.value.enabled bool with_dict zookeeper_services notify Restart zookeeper container

AnsibleTask template src myid.j2 dest node_config_directory item.key /myid mode,0660 become True when inventory_hostname in groups item.value.group item.value.enabled bool with_dict zookeeper_services notify Restart zookeeper container

AnsibleTask file path node_config_directory item.key state directory owner config_owner_user group config_owner_group mode,0770 become True when inventory_hostname in groups item.value.group item.value.enabled bool with_dict zun_services

AnsibleTask set_fact zun_policy_file zun_policy.results.0.stat.path basename zun_policy_file_path zun_policy.results.0.stat.path when zun_policy.results

AnsibleTask become True copy src node_config /certificates/ca/ dest node_config_directory item.key /ca-certificates mode,0644 when item.value.enabled bool inventory_hostname in groups item.value.group kolla_copy_ca_into_containers bool with_dict zun_services notify Restart item.key container

AnsibleTask template src item.key .json.j2 dest node_config_directory item.key /config.json mode,0660 become True when item.value.enabled bool inventory_hostname in groups item.value.group with_dict zun_services notify Restart item.key container

AnsibleTask vars service zun_services template src wsgi-zun.conf.j2 dest node_config_directory /zun-api/wsgi-zun.conf mode,0660 become True when inventory_hostname in groups service.group service.enabled bool notify Restart zun-api container

AnsibleTask template src zun_policy_file_path dest node_config_directory item.key zun_policy_file mode,0660 become True when zun_policy_file is defined inventory_hostname in groups item.value.group with_dict zun_services notify Restart item.key container

AnsibleTask fail msg kuryr is required but not enabled run_once True changed_when False when enable_zun bool not enable_kuryr bool

AnsibleTask set_fact managed_interface_address managed_network_prefix groups .index inventory_hostname 1

AnsibleTask become True vars managed_network_cidr managed_interface_address managed_network_prefix_length managed_network_broadcast_address managed_network_cidr ipaddr command ip address add managed_network_cidr broadcast managed_network_broadcast_address dev managed_interface_name when managed_network_address_family

AnsibleTask become True command ip address add managed_interface_address managed_network_prefix_length dev managed_interface_name when managed_network_address_family

AnsibleTask become True command ip -o address show tentative dev managed_interface_name register tentative_addresses until tentative_addresses.stdout retries 30 delay 2 when managed_network_address_family

AnsibleTask vars ping_command if managed_network_address_family else command ping_command -c1 hostvars item .managed_interface_address with_inventory_hostnames all

AnsibleTask become True command ip link add vxlan_interface_name type vxlan id vxlan_vni local tunnel_local_address dstport vxlan_dstport

AnsibleTask become True vars parent_interface ansible_interfaces map ansible_facts selectattr selectattr tunnel_local_address first mtu parent_interface.mtu int 50 command ip link set vxlan_interface_name mtu mtu

AnsibleTask become True vars dest_ip hostvars item .tunnel_local_address command bridge fdb append 00:00:00:00:00:00 dev vxlan_interface_name dst dest_ip with_inventory_hostnames all when item inventory_hostname

AnsibleTask become True command ip link set vxlan_interface_name up

AnsibleTask copy content hostvars inventory_hostname to_nice_json dest logs_dir /facts.json

AnsibleTask file path logs_dir item state directory mode,511 with_items docker_logs kolla_configs system_logs kolla ansible

AnsibleTask vars openstack_core_enabled scenario not in is_centos8 ansible_os_family and ansible_distribution_major_version int 8 set_fact kolla_inventory_path /etc/kolla/inventory logs_dir /tmp/logs kolla_ansible_src_dir ansible_env.PWD /src/ zuul.project.canonical_hostname /openstack/kolla-ansible kolla_ansible_local_src_dir zuul.executor.work_root /src/ zuul.project.canonical_hostname /openstack/kolla-ansible infra_dockerhub_mirror http // zuul_site_mirror_fqdn :8082/ ceph_ansible_src_dir ansible_env.PWD /src/github.com/ceph/ceph-ansible need_build_image False build_image_tag change_ zuul.change default openstack_core_enabled openstack_core_enabled openstack_core_tested scenario in dashboard_enabled openstack_core_enabled playbook_python_version 2 if is_upgrade and previous_release and not is_centos8 else 3

AnsibleTask set_fact need_build_image True when item.project.short_name kolla item.branch zuul.branch with_items zuul

AnsibleTask set_fact need_build_image True when ansible_architecture

AnsibleTask shell cmd git checkout stable/ previous_release lower echo kolla-ansible checked out to git log pretty=oneline -1 chdir kolla_ansible_src_dir when is_upgrade

AnsibleTask file path /etc/kolla state directory mode,511 become True

AnsibleTask template src zuul.executor.work_root /src/opendev.org/openstack/kolla/tests/templates/template_overrides.j2 dest /etc/kolla/template_overrides.j2 when need_build_image

AnsibleTask file path /etc/kolla/config/ item state directory loop cinder glance neutron nova bifrost swift

AnsibleTask template src kolla_ansible_local_src_dir item.src dest item.dest become item.become default false vars is_previous_release is_upgrade with_items kolla_inventory_path openstack_core_enabled openstack_core_enabled scenario scenario scenario scenario scenario and is_previous_release and previous_release scenario and is_previous_release and previous_release , { scenario and is_previous_release and previous_release when item.when default true

AnsibleTask command python playbook_python_version -m ara.setup.callback_plugins changed_when False register ara_callback_plugins

AnsibleTask template src kolla_ansible_local_src_dir /tests/templates/ansible.cfg.j2 dest /etc/ansible/ansible.cfg become True

AnsibleTask copy src kolla_ansible_src_dir /etc/kolla/passwords.yml dest /etc/kolla/passwords.yml remote_src True

AnsibleTask copy content passwords_yml.content b64decode from_yaml .kolla_ssh_key.private_key dest ~/.ssh/id_rsa_kolla mode,384

AnsibleTask shell cmd ansible all -i kolla_inventory_path -e ansible_user= ansible_user -m setup /tmp/logs/ansible/initial-setup

AnsibleTask set_fact docker_image_tag build_image_tag if need_build_image else zuul.branch basename docker_image_prefix if need_build_image else

AnsibleTask copy src item dest /usr/lib/systemd/system/ item with_items systemd_artifacts

AnsibleTask command ls -I checksums_filename netbootxyz_root /ipxe/ register netboot_disks tags skip_ansible_lint

AnsibleTask command date register current_date tags skip_ansible_lint

AnsibleTask command sha256sum -b item with_items netboot_disks.stdout_lines args chdir netbootxyz_root /ipxe/ register netboot_disks_stat tags skip_ansible_lint

AnsibleTask template src checksums.txt.j2 dest netbootxyz_root /ipxe/ checksums_filename

AnsibleTask shell toilet -f standard site_name html grep span register index_title tags skip_ansible_lint when ansible_os_family Debian

AnsibleTask template src index.html.j2 dest netbootxyz_root /index.html

AnsibleTask copy src ipxe/local/ item dest ipxe_source_dir /src/config/local/ item with_items colour.h console.h crypto.h

AnsibleTask copy src ipxe/local/general.h.efi dest ipxe_source_dir /src/config/local/general.h

AnsibleTask set_fact trust_files cert_dir ipxe_ca_filename when not generate_signatures

AnsibleTask set_fact trust_files cert_dir ipxe_ca_filename cert_dir cert_file_filename when generate_signatures bool

AnsibleTask shell sed -i arch/arm64/Makefile args chdir ipxe_source_dir /src tags skip_ansible_lint

AnsibleTask shell make clean make CROSS_COMPILE=aarch64-linux-gnu- ARCH=arm64 EMBED= bootloader_filename TRUST= trust_files bin-arm64-efi/snp.efi args chdir ipxe_source_dir /src tags skip_ansible_lint

AnsibleTask copy src ipxe_source_dir /src/ item.src dest netbootxyz_root /ipxe/ item.dest remote_src True with_items bootloader_filename -arm64.efi

AnsibleTask file path item state directory with_items netbootxyz_root /ipxe cert_dir

AnsibleTask copy src item dest netbootxyz_root with_items memdisk wimboot

AnsibleTask template src disks/ bootloader_filename .j2 dest ipxe_source_dir /src/ bootloader_filename

AnsibleTask file path ipxe_source_dir item state touch with_items src/config/local/umalloc.h src/config/local/nap.h src/config/local/timer.h src/config/local/branding.h src/config/local/serial.h src/config/local/reboot.h src/config/local/sanboot.h src/config/local/fault.h src/config/local/dhcp.h src/config/local/sideband.h src/config/local/entropy.h src/config/local/crypto.h src/config/local/usb.h src/config/local/settings.h

AnsibleTask shell make clean make EMBED= bootloader_filename TRUST= trust_files bin-x86_64-efi/ipxe.efi bin-x86_64-efi/snp.efi bin-x86_64-efi/snponly.efi args chdir ipxe_source_dir /src tags skip_ansible_lint

AnsibleTask shell mkdir -p efi_tmp dd if=/dev/zero of=efi_tmp/ipxe.img count=2880 mformat -i efi_tmp/ipxe.img -m 0xf8 -f 2880 mmd -i efi_tmp/ipxe.img :efi :efi/boot mcopy -i efi_tmp/ipxe.img bin-x86_64-efi/ipxe.efi :efi/boot/bootx64.efi genisoimage -o ipxe-efi.eiso -eltorito-alt-boot -eltorito-boot ipxe.img -no-emul-boot efi_tmp args chdir ipxe_source_dir /src warn False tags skip_ansible_lint

AnsibleTask shell truncate -s 3MiB ipxe-efi.usb mkfs.vfat ipxe-efi.usb mmd -i ipxe-efi.usb :/efi mmd -i ipxe-efi.usb :/efi/boot mcopy -i ipxe-efi.usb bin-x86_64-efi/ipxe.efi :/efi/boot/bootx64.efi args chdir ipxe_source_dir /src warn False tags skip_ansible_lint

AnsibleTask copy src ipxe_source_dir /src/ item.src dest netbootxyz_root /ipxe/ item.dest remote_src True with_items bootloader_filename .efi bootloader_filename -snp.efi bootloader_filename -snponly.efi bootloader_filename -efi.iso bootloader_filename -efi.usb when bootloader_filename netboot.xyz-packet

AnsibleTask copy src ipxe_source_dir /src/ item.src dest netbootxyz_root /ipxe/ item.dest remote_src True with_items bootloader_filename .efi when bootloader_filename netboot.xyz-packet

AnsibleTask copy src ipxe/local/ item dest ipxe_source_dir /src/config/local/ item with_items colour.h console.h crypto.h general.h

AnsibleTask shell make clean make EMBED= bootloader_filename TRUST= trust_files bin/ipxe.dsk bin/ipxe.iso bin/ipxe.lkrn bin/ipxe.usb bin/ipxe.kpxe bin/undionly.kpxe args chdir ipxe_source_dir /src tags skip_ansible_lint

AnsibleTask copy src ipxe_source_dir /src/bin/ipxe item dest netbootxyz_root /ipxe/ bootloader_filename item remote_src True with_items .dsk .iso .lkrn .usb .kpxe when bootloader_filename netboot.xyz-packet

AnsibleTask copy src ipxe_source_dir /src/bin/ipxe item dest netbootxyz_root /ipxe/ bootloader_filename item remote_src True with_items .kpxe when bootloader_filename netboot.xyz-packet

AnsibleTask copy src ipxe_source_dir /src/bin/undionly.kpxe dest netbootxyz_root /ipxe/ bootloader_filename -undionly.kpxe remote_src True when bootloader_filename netboot.xyz-packet

AnsibleTask set_fact _releases releases|combine release_overrides recursive=True when release_overrides is defined

AnsibleTask set_fact releases _releases when release_overrides is defined

AnsibleTask set_fact _utilities utilities|combine utilities_overrides recursive=True when utilities_overrides is defined

AnsibleTask set_fact utilities _utilities when utilities_overrides is defined

AnsibleTask set_fact upstream_version boot_version when generate_version_file bool

AnsibleTask template src version.ipxe.j2 dest netbootxyz_root /version.ipxe when generate_version_file bool

AnsibleTask template src item.src dest netbootxyz_root item.path regex_replace with_filetree templates/menu/ when item.state file tags skip_ansible_lint

AnsibleTask file path item state directory with_items custom_templates_dir netbootxyz_root /custom

AnsibleTask template src item.src dest netbootxyz_root /custom/ item.path regex_replace with_filetree custom_templates_dir when item.state file tags skip_ansible_lint

AnsibleTask command ls netbootxyz_root register source_files tags skip_ansible_lint

AnsibleTask shell openssl cms -sign -binary -noattr -in netbootxyz_root item -signer codesign_cert_filename -inkey codesign_key_filename -certfile cert_file_filename -outform DER -out sigs_dir item .sig args chdir cert_dir warn False with_items source_files.stdout_lines tags skip_ansible_lint

AnsibleTask command ansible-galaxy install -r requirements_path -p ANSIBLE_REPO_PATH /configs/ env_type /roles when r_requirements_stat.stat.exists

AnsibleTask environment PATH /usr/bin command which az register az_result

AnsibleTask command az login service-principal -u azure_service_principal -p azure_password tenant azure_tenant environment PATH /usr/bin tags validate_azure_template create_inventory must

AnsibleTask environment PATH /usr/bin command az group deployment validate template-file t_dest resource-group az_resource_group parameters params_dest changed_when False tags azure_infrastructure_deployment validate_azure_template

AnsibleTask environment PATH /usr/bin command az group deployment create name env_type guid template-file t_dest resource-group az_resource_group parameters params_dest register az_deploy tags azure_infrastructure_deployment az_rm_deploy until az_deploy is succeeded retries 0

AnsibleTask command az vm list resource-group az_resource_group show-details environment PATH /usr/bin changed_when False register result_list tags create_inventory must

AnsibleTask hosts all become True gather_facts False vars_files ANSIBLE_REPO_PATH /configs/ env_type /env_vars.yml ANSIBLE_REPO_PATH /configs/ env_type /env_secret_vars.yml tasks is defined Azure disks using LUN ANSIBLE_REPO_PATH /roles/infra-azure-disk-map item.name index true instances json_query \n name instance_canonical_name \n .volumes \n \n

AnsibleTask set_fact lab_host_hostname hostvars lab_host default hostvars lab_host default hostvars lab_host

AnsibleTask file state directory path /var/lib/jenkins/.ssh mode,448 owner jenkins group jenkins

AnsibleTask copy content bastion_ssh_key.content b64decode dest /var/lib/jenkins/.ssh/id_rsa owner jenkins group jenkins mode,384 no_log True

AnsibleTask set_fact tower_org_id response.json json_query .id first int

AnsibleTask set_fact tower_project_id response.json json_query .id first int

AnsibleTask set_fact tower_inventory_id response.json json_query .id first int

AnsibleTask set_fact tower_credential_id response.json json_query .id first int

AnsibleTask hosts masters gather_facts False become True vars_files ANSIBLE_REPO_PATH /configs/ env_type /env_vars.yml run_once True roles ANSIBLE_REPO_PATH /roles/ocp-infra-nexus admin_project tags env-specific install_nexus

AnsibleTask hosts masters run_once True gather_facts False become True vars_files ANSIBLE_REPO_PATH /configs/ env_type /env_vars.yml roles ANSIBLE_REPO_PATH /roles/ocp-infra-nexus admin_project tags env-specific install_nexus

AnsibleTask hosts all windows become True gather_facts False vars_files ANSIBLE_REPO_PATH /configs/ env_type /env_vars.yml ANSIBLE_REPO_PATH /configs/ env_type /env_secret_vars.yml tags step004 common_tasks pre_tasks rhel-7-server-ansible-2.4-rpms repo for OCP 3.9 and 3.10 rhel_repos osrelease is version_compare 3.9 osrelease is version_compare 3.11 rhel-7-server-ansible-2.6-rpms repo for OCP 3.11 rhel_repos osrelease is version_compare 3.11 rhel-7-fast-datapath-rpms repo for OCP 3.9 3.10 rhel_repos osrelease is version_compare 3.9 osrelease is version_compare 3.11 roles ANSIBLE_REPO_PATH /roles/set-repositories is defined ANSIBLE_REPO_PATH /roles/common ANSIBLE_REPO_PATH /roles/set_env_authorized_key

AnsibleTask hosts localhost gather_facts False become False tasks 002 Post Infrastructure

AnsibleTask hosts localhost gather_facts False become False tasks 005 Post Software

AnsibleTask hosts localhost gather_facts False become False tasks 000 Pre Infrastructure

AnsibleTask hosts localhost gather_facts False become False tasks 003 Pre Software

AnsibleTask hosts all windows become True gather_facts False tags common_tasks roles ANSIBLE_REPO_PATH /roles/set-repositories is defined ANSIBLE_REPO_PATH /roles/common ANSIBLE_REPO_PATH /roles/set_env_authorized_key

AnsibleTask hosts bastions become True gather_facts False roles ANSIBLE_REPO_PATH /roles/bastion tags bastion_tasks

AnsibleTask hosts localhost connection local gather_facts False become False tags presoftware_flight_check tasks checks completed successfully

AnsibleTask debug msg Tower node is hostvars control_node .ansible_ssh_host

AnsibleTask debug msg user.info Login is ssh student1 hostvars groups 0 Password is ansible

AnsibleTask command /bin/ansible-playbook -i /etc/ansible/hosts -e hosts_to_apply= masters -e cuda_driver_repo_base_url= http //admin.na.shared.opentlc.com/repos/nvidia/ -e cuda_driver_repo_suffix= cuda/ /root/openshift-psap/playbooks/nvidia-driver-install.yaml

AnsibleTask command /bin/ansible-playbook -i /etc/ansible/hosts -e hosts_to_apply= masters -e nvidia_container_hook_repo_base_url= http //admin.na.shared.opentlc.com/repos/nvidia/ -e libnvidia_container_suffix= libnvidia-container -e libnvidia_container_repo_gpgcheck= false -e nvidia_container_runtime_suffix= nvidia-container-runtime -e nvidia_container_runtime_repo_gpgcheck= false /root/openshift-psap/playbooks/nvidia-container-runtime-hook.yaml

AnsibleTask command /bin/ansible-playbook -i /etc/ansible/hosts -e hosts_to_apply= masters -e gpu_hosts= nodes /root/openshift-psap/playbooks/nvidia-device-plugin.yaml

AnsibleTask hosts localhost connection local gather_facts False become False vars_files ANSIBLE_REPO_PATH /configs/ env_type /env_vars.yml tags post_flight_check tasks checks completed successfully

AnsibleTask hosts all windows become True gather_facts False vars_files ANSIBLE_REPO_PATH /configs/ env_type /env_vars.yml ANSIBLE_REPO_PATH /configs/ env_type /env_secret_vars.yml tags step003 step003.2 common_tasks pre_tasks rhel-7-server-ansible-2.4-rpms repo for OCP 3.9 and 3.10 rhel_repos osrelease is version_compare 3.9 osrelease is version_compare 3.11 rhel-7-server-ansible-2.6-rpms repo for OCP 3.11 rhel_repos osrelease is version_compare 3.11 rhel-7-fast-datapath-rpms repo for OCP 3.9 3.10 rhel_repos osrelease is version_compare 3.9 osrelease is version_compare 3.11 roles ANSIBLE_REPO_PATH /roles/set-repositories is defined ANSIBLE_REPO_PATH /roles/common ANSIBLE_REPO_PATH /roles/set_env_authorized_key

AnsibleTask template src ANSIBLE_REPO_PATH /configs/ env_type /files/labs_hosts_template osrelease .j2 dest ANSIBLE_REPO_PATH /workdir/labs_hosts- env_type guid

AnsibleTask gather_facts False become True hosts bastions vars_files ANSIBLE_REPO_PATH /configs/ env_type /env_vars.yml roles ANSIBLE_REPO_PATH /roles/host-ocp-provisioner

AnsibleTask copy src ANSIBLE_REPO_PATH /workdir/hosts- env_type guid dest /var/preserve/hosts tags preserve_complete_ansible_inventory

AnsibleTask copy src ANSIBLE_REPO_PATH /configs/ env_type /files/prometheus_alerts_rules.yml dest /root/prometheus_alerts_rules.yml

AnsibleTask template src ANSIBLE_REPO_PATH /configs/ env_type /files/pvs.j2 dest /root/pvs- env_type guid .yml when pv_list.0 is defined tags openshift_nfs_config gen_pv_file

AnsibleTask hosts all windows become True gather_facts False vars_files ANSIBLE_REPO_PATH /configs/ env_type /env_vars.yml ANSIBLE_REPO_PATH /configs/ env_type /env_secret_vars.yml tags step004 step004.2 common_tasks packer roles ANSIBLE_REPO_PATH /roles/set-repositories is defined ANSIBLE_REPO_PATH /roles/common ANSIBLE_REPO_PATH /roles/set_env_authorized_key

AnsibleTask hosts bastions provisioners become True gather_facts False vars_files ANSIBLE_REPO_PATH /configs/ env_type /env_vars.yml ANSIBLE_REPO_PATH /configs/ env_type /env_secret_vars.yml roles ANSIBLE_REPO_PATH /roles/bastion ANSIBLE_REPO_PATH /roles/bastion-student-user is defined tags step004 bastion_tasks

AnsibleTask hosts localhost connection local gather_facts False become False vars_files ANSIBLE_REPO_PATH /configs/ env_type /env_vars.yml ANSIBLE_REPO_PATH /configs/ env_type /env_secret_vars.yml tags flight_check tasks checks completed successfully checks completed successfully

AnsibleTask template src ./files/project-template.j2 dest /root/project-template.yml

AnsibleTask command oc label namespace default name=default when ovs_plugin networkpolicy

AnsibleTask hosts masters run_once True gather_facts False become True vars_files ANSIBLE_REPO_PATH /configs/ env_type /env_vars.yml tags env-specific install_openwhisk tasks ANSIBLE_REPO_PATH /roles/ocp-infra-openwhisk False |bool

AnsibleTask gather_facts False become True hosts nodes infranodes masters bastions vars_files ANSIBLE_REPO_PATH /configs/ env_type /env_vars.yml tags install_prometheus tasks ANSIBLE_REPO_PATH /roles/ocp-infra-prometheus-pre310 False |bool is version_compare 3.10

AnsibleTask shell docker pull docker.io/mrsiano/grafana-ocp latest when install_prometheus|d False |bool osrelease is version_compare 3.10 osrelease is version_compare 3.11

AnsibleTask gather_facts False become True hosts bastions run_once True vars_files ANSIBLE_REPO_PATH /configs/ env_type /env_vars.yml tags install_prometheus tasks is version_compare 3.10 is version_compare 3.11 if Grafana is already there get project openshift-grafana False True Grafana Installation Playbook -i /etc/ansible/hosts /usr/share/ansible/openshift-ansible/playbooks/openshift-grafana/config.yml is failed admin permissions to admin_user for Grafana project policy add-role-to-user admin admin_user -n openshift-grafana is failed

AnsibleTask hosts masters run_once True gather_facts False become True vars_files ANSIBLE_REPO_PATH /configs/ env_type /env_vars.yml tasks ANSIBLE_REPO_PATH /roles/ocp-infra-nexus admin_project False |bool tags env-specific install_nexus

AnsibleTask hosts masters run_once True gather_facts False become True vars_files ANSIBLE_REPO_PATH /configs/ env_type /env_vars.yml tags env-specific install_aws_broker tasks ANSIBLE_REPO_PATH /roles/ocp-infra-aws-service-broker False |bool

AnsibleTask hosts masters gather_facts True become True vars_files ANSIBLE_REPO_PATH /configs/ env_type /env_vars.yml ANSIBLE_REPO_PATH /configs/ env_type /env_secret_vars.yml vars zabbix_auto_registration_keyword OCP Master tasks ANSIBLE_REPO_PATH /roles/zabbix-client ANSIBLE_REPO_PATH /roles/zabbix-client-openshift-master ANSIBLE_REPO_PATH /roles/zabbix-client-openshift-node tags env-specific install_zabbix

AnsibleTask hosts nodes infranodes gather_facts True become True vars_files ANSIBLE_REPO_PATH /configs/ env_type /env_vars.yml ANSIBLE_REPO_PATH /configs/ env_type /env_secret_vars.yml vars zabbix_auto_registration_keyword OCP Node zabbix_token hostvars groups 0 .zabbix_token hawkular_route hostvars groups 0 .hawkular_route tasks ANSIBLE_REPO_PATH /roles/zabbix-client ANSIBLE_REPO_PATH /roles/zabbix-client-openshift-node tags env-specific install_zabbix

AnsibleTask hosts bastions support gather_facts True become True vars_files ANSIBLE_REPO_PATH /configs/ env_type /env_vars.yml ANSIBLE_REPO_PATH /configs/ env_type /env_secret_vars.yml vars zabbix_auto_registration_keyword OCP Host tasks ANSIBLE_REPO_PATH /roles/zabbix-client tags env-specific install_zabbix

AnsibleTask hosts masters become True gather_facts False run_once True vars_files ANSIBLE_REPO_PATH /configs/ env_type /env_vars.yml tasks osrelease is version_compare 3.9 False bool oc adm diagnostics adm diagnostics /tmp/diagnostics.log 2 is succeeded True /tmp/openshift exist an archive of diagnostics output logs the diagnostic archive and logs ANSIBLE_REPO_PATH /workdir/ project_tag _diagnostics.tar.gz True diagnostics failure project_tag Diagnostics is failed

AnsibleTask hosts all vars_files ANSIBLE_REPO_PATH /configs/ env_type /env_vars.yml gather_facts True tags ocp_report

AnsibleTask gather_facts False become True vars_files ANSIBLE_REPO_PATH /configs/ env_type /env_vars.yml ANSIBLE_REPO_PATH /configs/ env_type /env_secret_vars.yml hosts newnodes roles ANSIBLE_REPO_PATH /roles/host-ocp-node tags openshift_node_tasks

AnsibleTask template src ANSIBLE_REPO_PATH /configs/ env_type /files/hosts_template osrelease .j2 dest ANSIBLE_REPO_PATH /workdir/scaleup_hosts- env_type guid delegate_to localhost become False tags generate_ansible_hosts_file

AnsibleTask shell oc label node item logging-infra-fluentd=true with_items groups when install_logging|d true |bool

AnsibleTask template src ANSIBLE_REPO_PATH /configs/ env_type /files/hosts_template osrelease .j2 dest ANSIBLE_REPO_PATH /workdir/hosts- env_type guid delegate_to localhost become False tags generate_ansible_hosts_file

AnsibleTask hosts localhost gather_facts False become False vars_files ANSIBLE_REPO_PATH /configs/ env_type /env_vars.yml tasks tasks started

AnsibleTask fail msg and groups must be defined when quay_clair_enable=True when quay_clair_enable|d False |bool not in groups or groups |length 0 or not in groups or groups |length 0

AnsibleTask set_fact qe_quay_ssl_key_file ,qe_quay_ssl_cert_file when qe_quay_ssl_key_file is undefined or qe_quay_ssl_cert_file is undefined

AnsibleTask set_fact qe_quay_ssl_cert_file ANSIBLE_REPO_PATH /workdir/ guid .cert when qe_quay_ssl_lets_encrypt_certs|d False |bool

AnsibleTask set_fact qe_quay_ssl_cert_file /tmp/ssl.cert when qe_quay_ssl_cert_file is not defined or qe_quay_ssl_cert_file|trim

AnsibleTask fail msg infranode_cluster_1 and infranode_cluster_2 must be set when infranode_cluster_1 is not defined or infranode_cluster_2 is not defined or infranode_cluster_1 or infranode_cluster_2

AnsibleTask template src ./files/haproxy.j2 dest /etc/haproxy/haproxy.cfg

AnsibleTask copy src ./files/registries.conf dest /etc/containers/registries.conf mode,420 owner root group root

AnsibleTask file path /root/.docker state directory mode,775 owner root group root

AnsibleTask when osrelease is version_compare 3.11 template src ./files/config.j2 dest /root/.docker/config.json mode,420 owner root group root

AnsibleTask file path ocp_root state directory owner root group root mode,509

AnsibleTask file path item state directory owner root group root mode,509 with_items ocp_root /config ocp_root /data ocp_root /pv ocp_root /volumes when osrelease is version_compare 3.10

AnsibleTask template src ./files/oc-cluster.service.j2 dest /usr/lib/systemd/system/oc-cluster.service

AnsibleTask shell docker pull docker.io/mrsiano/grafana-ocp latest when install_prometheus|d False |bool osrelease is version_compare 3.10

AnsibleTask gather_facts False become True hosts bastions run_once True vars_files ANSIBLE_REPO_PATH /configs/ env_type /env_vars.yml tags install_prometheus tasks is version_compare 3.10 if Grafana is already there get project openshift-grafana False True Grafana Installation Playbook -i /etc/ansible/hosts /usr/share/ansible/openshift-ansible/playbooks/openshift-grafana/config.yml is failed admin permissions to admin_user for Grafana project policy add-role-to-user admin admin_user -n openshift-grafana is failed

AnsibleTask gather_facts False become True hosts nodes infranodes masters vars_files ANSIBLE_REPO_PATH /configs/ env_type /env_vars.yml tags install_prometheus tasks False |bool is version_compare 3.10 is version_compare 3.10.34 Firewall port 9100 for future sessions FORWARD -j REJECT reject-with icmp-host-prohibited OS_FIREWALL_ALLOW -p tcp -m state state NEW -m tcp dport 9100 -j ACCEPT Firewall Port 9100 for current session 9100 '

AnsibleTask hosts clientvms become True gather_facts False vars_files ANSIBLE_REPO_PATH /configs/ env_type /env_vars.yml ANSIBLE_REPO_PATH /configs/ env_type /env_secret_vars.yml roles ANSIBLE_REPO_PATH /roles/bastion-student-user is defined ANSIBLE_REPO_PATH /roles/ocp-client-vm tags step004 bastion_tasks clientvms

AnsibleTask fail msg Password needs to be provided to the role as parameter when student_password is not defined

AnsibleTask fail msg Quay Address Must Be Provided when quay_enterprise_address is undefined or quay_enterprise_address|trim

AnsibleTask set_fact clair_address http // hostvars inventory_hostname when clair_address is undefined or clair_address|trim

AnsibleTask file state directory owner root group root mode g+rw path clair_config_dir

AnsibleTask template src config.yaml.j2 dest clair_config_dir /config.yaml owner root group root mode g+rw notify Restart Clair Service

AnsibleTask template src clair_name .j2 dest systemd_environmentfile_dir clair_name notify Restart Clair Service

AnsibleTask template src clair_service .j2 dest systemd_service_dir clair_service notify Restart Clair Service

AnsibleTask template src postgresql.j2 dest systemd_environmentfile_dir postgresql_name notify Restart PostgreSQL Service

AnsibleTask template src postgresql.service.j2 dest systemd_service_dir postgresql_service notify Restart PostgreSQL Service

AnsibleTask fail msg Quay Hostname Must Be Provided when quay_enterprise_hostname is undefined or quay_enterprise_hostname|trim

AnsibleTask file state directory owner root group root mode g+rw path quay_builder_config_dir

AnsibleTask template src quay-builder.j2 dest systemd_environmentfile_dir quay_builder_name notify Restart Quay Builder Service

AnsibleTask template src quay-builder.service.j2 dest systemd_service_dir quay_builder_service notify Restart Quay Builder Service

AnsibleTask template src config.yaml.j2 dest quay_config_dir /config.yaml owner root group root mode g+rw notify Restart quay service

AnsibleTask template src quay.j2 dest systemd_environmentfile_dir quay_name notify Restart quay service

AnsibleTask template src quay.service.j2 dest systemd_service_dir quay_service notify Restart quay service

AnsibleTask fail msg Invalid Database Type must be or when quay_database_type not in postgresql mysql

AnsibleTask fail msg Clar Endpoint Must Be Specified when quay_clair_enable is defined and quay_clair_enable|bool and quay_clair_endpoint is not defined or quay_clair_endpoint|trim

AnsibleTask set_fact quay_db_uri postgresql_db_uri when quay_database_type postgresql

AnsibleTask set_fact quay_db_uri mysql_db_uri when quay_database_type mysql

AnsibleTask set_fact quay_http_protocol quay_ssl_enable|bool ternary

AnsibleTask set_fact quay_ssl_cert_file_to_use quay_ssl_cert_file quay_ssl_key_file_to_use quay_ssl_key_file when quay_ssl_enable|bool and quay_ssl_key_file|trim and quay_ssl_cert_file|trim

AnsibleTask debug msg First when true when quay_ssl_enable|bool and quay_ssl_key_file|trim and quay_ssl_cert_file|trim

AnsibleTask debug msg Second when true when quay_ssl_enable|bool and quay_ssl_key_file|trim or quay_ssl_cert_file|trim

AnsibleTask copy src item.src dest item.dest owner root group root mode g+rw notify Restart quay service with_items quay_ssl_cert_file_to_use quay_config_dir /ssl.cert quay_ssl_key_file_to_use quay_config_dir /ssl.key when quay_ssl_enable|bool

AnsibleTask file state directory owner root group root mode g+rw path redis_storage_dir notify Restart Redis Service

AnsibleTask template src redis_name .j2 dest systemd_environmentfile_dir redis_name notify Restart Redis Service

AnsibleTask set_fact git_install_from_source_dependencies __git_install_from_source_dependencies list when git_install_from_source_dependencies is not defined

AnsibleTask command git version warn=no changed_when False failed_when False check_mode False register git_installed_version

AnsibleTask set_fact git_reinstall_from_source True when git_install_from_source_force_update git_installed_version.rc 0 and git_installed_version.stdout regex_replace ^.* 0-9\ \\1 version_compare git_version operator=

AnsibleTask command make prefix= git_install_path item chdir= workspace /git- git_version with_items all install when git_installed_version.rc 0 or git_reinstall_from_source become True

AnsibleTask file path gogs_user_home gogs_init_script_path mode,493

AnsibleTask file src item.src dest item.dest state link with_items gogs_user_home /gogs/gogs gogs_user_home gogs_init_script_path notify restart gogs

AnsibleTask template src gogs.unit.j2 dest /etc/systemd/system/gogs.service owner root group root mode,493 when ansible_service_mgr

AnsibleTask file path gogs_user_home /gogs/log state directory owner gogs_user group gogs_user mode,493

AnsibleTask set_fact java_packages __java_packages list when java_packages is not defined

AnsibleTask template src java_home.sh.j2 dest /etc/profile.d/java_home.sh mode,420 when java_home is defined and java_home

AnsibleTask template src basic-security.groovy dest jenkins_home /init.groovy.d/basic-security.groovy owner jenkins_process_user group jenkins_process_group mode,509 register jenkins_users_config

AnsibleTask fail msg jenkins_protocol variable is undefined or has a wrong value Available options http https when jenkins_protocol http jenkins_protocol https

AnsibleTask set_fact jenkins_repo_url __jenkins_repo_url when jenkins_repo_url is not defined

AnsibleTask set_fact jenkins_repo_key_url __jenkins_repo_key_url when jenkins_repo_key_url is not defined

AnsibleTask set_fact jenkins_pkg_url __jenkins_pkg_url when jenkins_pkg_url is not defined

AnsibleTask shell curl -D silent max-time 5 jenkins_protocol // jenkins_hostname jenkins_port jenkins_url_prefix /cli/ -k register result until result.stdout.find 403 Forbidden -1 or result.stdout.find 200 OK -1 and result.stdout.find Please wait while -1 retries jenkins_connection_retries delay jenkins_connection_delay changed_when False check_mode False

AnsibleTask file path jenkins_home /init.groovy.d/basic-security.groovy state absent

AnsibleTask set_fact jenkins_admin_password adminpasswordfile default jenkins_admin_password no_log True

AnsibleTask set_fact jenkins_admin_token admintokenfile default jenkins_admin_token no_log True

AnsibleTask file path jenkins_home /updates state directory owner jenkins group jenkins

AnsibleTask command openssl genrsa -out jenkins_ca_key_path 2048 args creates jenkins_ca_key_path

AnsibleTask command openssl req -x509 -new -nodes -key jenkins_ca_key_path -sha256 -days jenkins_cert_expiration_days -out jenkins_ca_cert_path -subj jenkins_ca_subject_value args creates jenkins_ca_cert_path

AnsibleTask command openssl genrsa -out jenkins_key_path 2048 args creates jenkins_key_path

AnsibleTask command openssl req -new -subj jenkins_ca_subject_value -key jenkins_key_path -out jenkins_csr_path args creates jenkins_csr_path

AnsibleTask command openssl x509 -req -in jenkins_csr_path -CA jenkins_ca_cert_path -CAkey jenkins_ca_key_path -CAcreateserial -out jenkins_cert_path -sha256 -days jenkins_cert_expiration_days args creates jenkins_cert_path

AnsibleTask service name=jenkins state=restarted when jenkins_init_prefix.changed

AnsibleTask file path jenkins_home state directory owner jenkins group jenkins mode u+rwx follow True

AnsibleTask file path jenkins_home /init.groovy.d state directory owner jenkins_process_user group jenkins_process_group mode,509

AnsibleTask service name=jenkins state=restarted when jenkins_users_config is defined and jenkins_users_config.changed or jenkins_http_config is defined and jenkins_http_config.changed or jenkins_https_config is defined and jenkins_https_config.changed or jenkins_keystore_config is defined and jenkins_keystore_config.changed or jenkins_keystore_pass_config is defined and jenkins_keystore_pass_config.changed or jenkins_https_listen_address_config is defined and jenkins_https_listen_address_config.changed or jenkins_home_config is defined and jenkins_home_config.changed

AnsibleTask command openssl pkcs12 -export -out jenkins_pkcs12_path -passout pass jenkins_keystore_pass -inkey jenkins_key_path -in jenkins_cert_path -certfile jenkins_ca_cert_path -name jenkins_target_domain

AnsibleTask file path jenkins_keystore_path dirname owner jenkins_keystore_owner group jenkins_keystore_owner state directory mode jenkins_keystore_mode

AnsibleTask command keytool -importkeystore -srckeystore jenkins_pkcs12_path -srcstoretype pkcs12 -srcstorepass jenkins_keystore_pass -srcalias jenkins_target_domain -destkeystore jenkins_keystore_path -deststoretype jks -deststorepass jenkins_keystore_pass -destalias jenkins_target_domain

AnsibleTask file path jenkins_keystore_path owner jenkins_keystore_owner group jenkins_keystore_owner mode jenkins_keystore_mode

AnsibleTask fail msg AWS Credentials are required when requesting certificates for a wildcard domain when acme_wildcard_domain|length|int 0 acme_aws_access_key is not defined or acme_aws_access_key|trim or acme_aws_secret_access_key is not defined or acme_aws_secret_access_key|trim

AnsibleTask set_fact acme_wildcard_certs acme_wildcard_domain|length|int 0 |ternary

AnsibleTask template src ANSIBLE_REPO_PATH /configs/ env_type /files/htpasswd.openshift dest /root/htpasswd.openshift

AnsibleTask changed_when False shell sg_map -x awk 2 5 5 disk_map_device.lun print 7 register result

AnsibleTask debug msg disk_map_device.name LUN= disk_map_device.lun result.stdout

AnsibleTask set_fact disk_map_device.name result.stdout when result is succeeded

AnsibleTask copy dest /var/preserve/ disk_map_device.name content result.stdout force False when result is succeeded

AnsibleTask set_fact disk_map_device.name slurp_result.content|b64decode when slurp_result is succeeded

AnsibleTask set_fact cloudformation_out cloudformation_out_s3 when stat_template.stat.size 51200

AnsibleTask fail msg FAIL project_tag Destroy Cloudformation when not cloudformation_result is succeeded cloud_provider tags destroying destroy_cf_deployment destroy_cloud_deployment

AnsibleTask template src ANSIBLE_REPO_PATH /configs/ env_type /files/cloud_providers/ cloud_provider _cloud_template.j2 dest ANSIBLE_REPO_PATH /workdir/ env_type guid cloud_provider _cloud_template tags aws_infrastructure_deployment gen_cf_template

AnsibleTask command aws iam get-user register rget_user ignore_errors True

AnsibleTask environment AWS_ACCESS_KEY_ID aws_access_key_id AWS_SECRET_ACCESS_KEY aws_secret_access_key AWS_DEFAULT_REGION aws_region_final|d aws_region command aws cloudformation validate-template region aws_region_final d aws_region default region default template-body file //../workdir/ env_type guid cloud_provider _cloud_template changed_when False register cloudformation_validation until cloudformation_validation is succeeded delay 20 tags aws_infrastructure_deployment validate_cf_template when stat_template.stat.size 51200

AnsibleTask environment AWS_ACCESS_KEY_ID aws_access_key_id AWS_SECRET_ACCESS_KEY aws_secret_access_key AWS_DEFAULT_REGION aws_region_final|d aws_region command aws cloudformation validate-template region aws_region_final d aws_region default region default template-url https //s3.amazonaws.com/ bucket_templates env_type guid cloud_provider _cloud_template changed_when False register cloudformation_validation until cloudformation_validation is succeeded delay 20 tags aws_infrastructure_deployment validate_cf_template when stat_template.stat.size 51200

AnsibleTask command mv -f /root/apache-maven-3.5.4 /usr/local tags install_openshift_client_vm_packages

AnsibleTask file dest /root/apache-maven.tar.gz state absent tags install_openshift_client_vm_packages

AnsibleTask copy remote_src True src /root/istio-1.0.2/bin/istioctl dest /usr/local/bin/istioctl group root owner root mode,493 tags install_openshift_client_vm_packages

AnsibleTask file dest /root/istio-1.0.2 state absent tags install_openshift_client_vm_packages

AnsibleTask file dest /root/istio-1.0.2-linux.tar.gz state absent tags install_openshift_client_vm_packages

AnsibleTask file path item.directory /.bash-git-prompt owner item.user group item.group recurse True with_items tags install_bash_customization

AnsibleTask copy src ../files/bashrc dest item.directory /.bashrc mode,420 owner item.user group item.group with_items tags install_bash_customization

AnsibleTask copy src ../files/bash_profile dest item.directory /.bash_profile mode,420 owner item.user group item.group with_items tags install_bash_customization

AnsibleTask shell oc adm new-project aws-service-broker when osrelease is version_compare 3.10

AnsibleTask copy src files/custom-categories.js dest /root/custom-categories.js

AnsibleTask command oc create configmap webconsole-customization from-file=custom-categories.js=/root/custom-categories.js -n openshift-web-console

AnsibleTask command oc new-app nginx:1.12~https //github.com/siamaksade/web-console-customization.git name=static -n openshift-web-console

AnsibleTask command oc create route edge service=static -n openshift-web-console

AnsibleTask command oc set volume dc/static add name=custom configmap-name=webconsole-customization mount-path=/opt/app-root/src/custom -n openshift-web-console

AnsibleTask command oc get route/static -n openshift-web-console -o jsonpath= .spec.host register webconsole_url

AnsibleTask shell oc get cm/webconsole-config -n openshift-web-console -o jsonpath= .data.webconsole-config\.yaml /tmp/webconsole-config.yaml

AnsibleTask shell oc create configmap webconsole-config from-file=webconsole-config.yaml=/tmp/webconsole-config.yaml -n openshift-web-console dry-run -o yaml oc replace -f

AnsibleTask command oc delete pod -l app=openshift-web-console -n openshift-web-console

AnsibleTask shell openshift_cli get project default register default_project_result ignore_errors True changed_when False

AnsibleTask shell openshift_cli get project istio-operator register istio_project_result ignore_errors True changed_when False

AnsibleTask shell openshift_cli new-project istio-operator when istio_project_result is failed

AnsibleTask shell openshift_cli new-app -f installer_product param=OPENSHIFT_ISTIO_MASTER_PUBLIC_URL= openshift_master_public -n istio-operator when istio_project_result is failed product_images|bool

AnsibleTask shell openshift_cli new-app -f installer_community param=OPENSHIFT_ISTIO_MASTER_PUBLIC_URL= openshift_master_public -n istio-operator when istio_project_result is failed not product_images|bool

AnsibleTask shell openshift_cli create -f /tmp/istio-cr.yaml -n istio-operator

AnsibleTask shell openshift_cli get deployment istio-sidecar-injector -o jsonpath= .status.availableReplicas -n istio-system register sidecar_injector_replicas until sidecar_injector_replicas.stdout 1 retries 30 delay 30

AnsibleTask command oc get project nexus_project register nexus_project_exists ignore_errors True

AnsibleTask command oc new-project nexus_project display-name= nexus_project_display_name when nexus_project_exists is failed

AnsibleTask command oc get service nexus -n nexus_project register nexus_already_installed ignore_errors True changed_when False

AnsibleTask copy src files/nexus3-persistent-template.yaml dest /root/nexus-template.yaml when nexus_already_installed is failed

AnsibleTask command oc new-app -f /root/nexus-template.yaml param=VOLUME_CAPACITY= nexus_volume_capacity param=MEMORY_LIMIT= nexus_memory_limit param=MEMORY_REQUEST= nexus_memory_request param=CPU_LIMIT= nexus_cpu_limit param=CPU_REQUEST= nexus_cpu_request param=NEXUS_VERSION= nexus_version -n nexus_project when nexus_already_installed is failed

AnsibleTask command oc get dc/nexus -o yaml -n nexus_project register result until availableReplicas 1 in result.stdout retries 5 delay 60 changed_when False when nexus_already_installed is failed nexus_wait_for_deployment bool

AnsibleTask command oc new-project openwhisk when openwhisk_exists is failed install_openwhisk

AnsibleTask shell oc process -f https //raw.githubusercontent.com/apache/incubator-openwhisk-deploy-openshift/master/persistent-template.yml|oc create -f -n openwhisk when openwhisk_exists is failed install_openwhisk osrelease is version_compare 3.10

AnsibleTask shell oc process -f https //raw.githubusercontent.com/apache/incubator-openwhisk-deploy-openshift/master/persistent-template.yml /root/openwhisk.json when openwhisk_exists is failed install_openwhisk osrelease is version_compare 3.10

AnsibleTask shell oc create -f /root/openwhisk.json -n openwhisk when openwhisk_exists is failed install_openwhisk osrelease is version_compare 3.10

AnsibleTask shell oc create clusterquota clusterquota- ocp_username lab_name project-annotation-selector=openshift.io/requester= ocp_username hard requests.cpu= quota_requests_cpu hard limits.cpu= quota_limits_cpu hard requests.memory= quota_requests_memory hard limits.memory= quota_limits_memory hard configmaps= quota_configmaps hard pods= quota_pods hard persistentvolumeclaims= quota_persistentvolumeclaims hard services= quota_services hard secrets= quota_secrets hard requests.storage= quota_requests_storage ignore_errors True when ocp_user_needs_quota|d False |bool

AnsibleTask shell oc delete clusterresourcequota clusterquota- ocp_username lab_name ignore_errors True

AnsibleTask shell oc delete oauthclient OPENSHIFT_OAUTH_CLIENT_NAME ignore_errors True

AnsibleTask shell oc get project default register default_project_result ignore_errors True changed_when False

AnsibleTask shell oc new-project ocp_project description= project_description display-name= ocp_project

AnsibleTask command oc label namespace ocp_project AAD= lab_name

AnsibleTask shell oc create serviceaccount sso-service-account -n ocp_project

AnsibleTask shell oc policy add-role-to-user view system serviceaccount ocp_project sso-service-account

AnsibleTask shell oc create -f persistent_sso_template_url -n ocp_project

AnsibleTask shell oc new-app template=sso72-x509-mysql-persistent param=SSO_ADMIN_USERNAME= SSO_ADMIN_USERNAME param=SSO_ADMIN_PASSWORD= SSO_ADMIN_PASSWORD param=HOSTNAME_HTTP= SSO_HOSTNAME_HTTP param=HOSTNAME_HTTPS= SSO_HOSTNAME_HTTPS -n ocp_project

AnsibleTask shell oc process -f sso_oauth_realm_template_url param=OPENSHIFT_MASTER= OPENSHIFT_MASTER param=KEYCLOAK_ROUTE_HOSTNAME= SSO_HOSTNAME_HTTP param=MICROCKS_ROUTE_HOSTNAME= MICROCKS_ROUTE_HOSTNAME param=APICURIO_UI_ROUTE_HOSTNAME=http // APICURIO_UI_ROUTE param=OPENSHIFT_OAUTH_CLIENT_NAME= OPENSHIFT_OAUTH_CLIENT_NAME -n ocp_project oc create -f -n ocp_project

AnsibleTask shell oc create -f apibiz_url /apicurio-template.yml -n ocp_project

AnsibleTask shell oc new-app template=apicurio-studio param=AUTH_ROUTE=http // SSO_HOSTNAME_HTTP /auth param=UI_ROUTE= APICURIO_UI_ROUTE param=API_ROUTE= APICURIO_API_ROUTE param=WS_ROUTE= APICURIO_WS_ROUTE param=API_JVM_MAX=2000m param=API_MEM_LIMIT=3000Mi param=WS_JVM_MAX=2000m param=WS_MEM_LIMIT=2500Mi param=UI_JVM_MAX=1800m param=UI_MEM_LIMIT=2500Mi -n ocp_project

AnsibleTask shell oc create -f apibiz_url /microcks-persistent-no-keycloak-template.yml -n ocp_project

AnsibleTask shell oc new-app template=microcks-persistent-no-keycloak param=APP_ROUTE_HOSTNAME= MICROCKS_ROUTE_HOSTNAME param=KEYCLOAK_ROUTE_HOSTNAME= KEYCLOAK_ROUTE_HOSTNAME -n ocp_project

AnsibleTask shell oc create clusterquota clusterquota- admin_username ocp_project project-annotation-selector=openshift.io/requester= admin_username hard requests.cpu= quota_requests_cpu hard limits.cpu= quota_limits_cpu hard requests.memory= quota_requests_memory hard limits.memory= quota_limits_memory hard configmaps= quota_configmaps hard pods= quota_pods hard persistentvolumeclaims= quota_persistentvolumeclaims hard services= quota_services hard secrets= quota_secrets hard requests.storage= quota_requests_storage ignore_errors True when ocp_user_needs_quota|d False |bool

AnsibleTask debug msg tenant_output_dir tenant_output_dir tenant_provisioning_log_file tenant_output_dir tenant_provisioning_results_file and end tenants start_tenant end_tenant API Gateways for each tenant create_gws_with_each_tenant

AnsibleTask template src templates/manage_tenants.sh dest /tmp/manage_tenants.sh mode,493 vars create_tenants false when REMOVE_TENANTS_ONLY|d False |bool

AnsibleTask shell /tmp/manage_tenants.sh ignore_errors True when REMOVE_TENANTS_ONLY|d False |bool

AnsibleTask shell oc delete clusterresourcequota clusterquota- admin_username ocp_project ignore_errors True

AnsibleTask template src templates/manage_tenants.sh dest /tmp/manage_tenants.sh mode,493 vars create_tenants true

AnsibleTask debug msg Creation of tenants complete output files available at tenant_output_dir

AnsibleTask shell oc get project ocp_project register api_project_result ignore_errors True changed_when False

AnsibleTask file path new_app_output_dir state directory mode,493

AnsibleTask shell oc new-project ocp_project display-name= ocp_project when api_project_result is failed

AnsibleTask command oc label namespace ocp_project AAD= admin_username when api_project_result is failed

AnsibleTask shell oc project default when api_project_result is failed

AnsibleTask set_fact threescale_template threescale_template_shared when is_shared_cluster

AnsibleTask shell oc new-app -f modified_template_path -p ADMIN_PASSWORD= amp_admin_passwd -p TENANT_NAME= ocp_project -p MASTER_NAME= ocp_project -master -p MASTER_PASSWORD= master_passwd -p MASTER_ACCESS_TOKEN= master_access_token -p WILDCARD_DOMAIN= ocp_apps_domain -n ocp_project new_app_output when api_project_result is failed

AnsibleTask debug msg new-app output available at new_app_output when api_project_result is failed

AnsibleTask command oc rollout resume dc/ item -n ocp_project with_items backend-redis system-memcache system-mysql system-redis zync-database when api_project_result is failed

AnsibleTask command oc rollout resume dc/ item -n ocp_project with_items backend-listener backend-worker when api_project_result is failed

AnsibleTask command oc rollout resume dc/ item -n ocp_project with_items system-app when api_project_result is failed

AnsibleTask command oc rollout resume dc/ item -n ocp_project with_items system-resque system-sidekiq system-sphinx backend-cron when api_project_result is failed

AnsibleTask command oc rollout resume dc/ item -n ocp_project with_items apicast-staging apicast-production apicast-wildcard-router when api_project_result is failed

AnsibleTask command oc rollout resume dc/ item -n ocp_project with_items zync when api_project_result is failed

AnsibleTask shell oc annotate namespace ocp_project openshift.io/requester= admin_username overwrite

AnsibleTask command oc adm groups new OPENTLC-PROJECT-PROVISIONERS ignore_errors True

AnsibleTask command oc adm policy add-cluster-role-to-group self-provisioner OPENTLC-PROJECT-PROVISIONERS ignore_errors True

AnsibleTask shell oc delete limitrange ocp_constraints_project -core-resource-limits -n ocp_constraints_project ignore_errors True

AnsibleTask command oc get rc -o json -n ocp_project register rc_state changed_when False retries deploy_status_retries delay deploy_status_delay until rc_state.stdout from_json json_query status.readyReplicas || status.readyReplicas ` 0 ` .metadata.annotations openshift.io/deployment.cancelled true openshift.io/deployment-config.name intersect pod_to_wait length 0

AnsibleTask shell oc process -f pam_template_yml -p IMAGE_STREAM_NAMESPACE= ocp_project -p KIE_ADMIN_PWD= kie_admin_passwd -p APPLICATION_NAME= app_name -p BUSINESS_CENTRAL_HTTPS_SECRET= bcentral_app_secret -p KIE_SERVER_HTTPS_SECRET= kserver_app_secret /tmp/ guid pam_template_name .json

AnsibleTask shell oc create -f pam_imagestreams_yml -n ocp_project

AnsibleTask shell oc create -f /tmp/ guid pam_template_name .json -n ocp_project

AnsibleTask shell oc create configmap products-cm from-file=/tmp/ guid /products.txt -n ocp_project

AnsibleTask shell oc volume dc/ app_name -kieserver -n ocp_project overwrite add -t configmap -m /data name=products-volume configmap-name=products-cm

AnsibleTask debug msg Post-Workload Tasks completed successfully when not silent|bool

AnsibleTask debug msg Pre-Workload tasks completed successfully when not silent|bool

AnsibleTask debug msg Remove Workload tasks completed successfully when not silent|bool

AnsibleTask debug msg Setting up workload for user ocp_username ocp_username

AnsibleTask debug msg Workload Tasks completed successfully when not silent|bool

AnsibleTask shell oc new-app ignite_template_name -p ROUTE_HOSTNAME=fuse. ocp_project ocp_apps_domain -p OPENSHIFT_MASTER=https //master subdomain_base -p OPENSHIFT_PROJECT= ocp_project -p POSTGRESQL_MEMORY_LIMIT= POSTGRESQL_MEMORY_LIMIT -p PROMETHEUS_MEMORY_LIMIT= PROMETHEUS_MEMORY_LIMIT -p META_MEMORY_LIMIT= META_MEMORY_LIMIT -p SERVER_MEMORY_LIMIT= SERVER_MEMORY_LIMIT -p OPENSHIFT_OAUTH_CLIENT_SECRET= oc sa get-token syndesis-oauth-client -n ocp_project -p MAX_INTEGRATIONS_PER_USER= MAX_INTEGRATIONS_PER_USER -p IMAGE_STREAM_NAMESPACE= ocp_project -n ocp_project

AnsibleTask shell git clone branch release_tag https //github.com/integr8ly/installation.git install_dir args creates install_dir

AnsibleTask shell ansible-playbook -i inventory_hosts_file playbooks/uninstall.yml args chdir install_dir /evals

AnsibleTask shell ansible-playbook -i inventory_hosts_file playbooks/install.yml -e eval_self_signed_certs= self_signed_certs_enabled args chdir install_dir /evals

AnsibleTask shell oc get route/tutorial-web-app -o template template .spec.host\ -n webapp_namespace register webapp_route

AnsibleTask debug msg item with_items user.info Integreatly Workshop Overview user.info Openshift Master Console openshift_master_url user.info Web App URL https // webapp_route.stdout user.info Cluster Admin User admin_username admin_password user.info Evaluation User evals_username evals_password user.info Pre-seeded Evaluation Users evals 01..50 example.com evals_password

AnsibleTask shell oc secrets link default redhat-iot-rhpds-pull-secret for=pull -n ocp_project

AnsibleTask shell oc new-app -f /tmp/ guid /broker.yml -p mqtt_port -p mqtts_port -p IMAGE_VERSION=5.0.0 -p NAMESPACE= ocp_project -p EC_SECRET_DB=ec-db -p DISABLE_SSL=true -n ocp_project

AnsibleTask debug msg user.info Dashboard http //dashboard- ocp_project ocp_apps_domain

AnsibleTask debug msg user.info EC Console http //ec-console- ocp_project ocp_apps_domain UserID ec-sys Password ec-password

AnsibleTask debug msg user.info EC Broker MQTT mqtt //ec-broker-mqtt. ocp_project ocp_apps_domain mqtt_port Account Red-Hat Login ec-sys Password ec-password

AnsibleTask shell oc new-app -f /tmp/ guid /dashboard-proxy.yml -p -p

AnsibleTask shell oc new-app -f /tmp/ guid /dashboard.yml -p ocp_project -p -p -p ocp_project

AnsibleTask debug msg user.info ESF Virtual Gateway http //esf- ocp_project ocp_apps_domain UserID admin Password admin

AnsibleTask shell oc create clusterquota clusterquota- admin_username lab_name project-annotation-selector=openshift.io/requester= admin_username hard requests.cpu= quota_requests_cpu hard limits.cpu= quota_limits_cpu hard requests.memory= quota_requests_memory hard limits.memory= quota_limits_memory hard configmaps= quota_configmaps hard pods= quota_pods hard persistentvolumeclaims= quota_persistentvolumeclaims hard services= quota_services hard secrets= quota_secrets hard requests.storage= quota_requests_storage ignore_errors True

AnsibleTask shell oc delete clusterresourcequota clusterquota- admin_username lab_name ignore_errors True

AnsibleTask shell oc delete project istio-system ignore_errors True

AnsibleTask shell oc delete -f /tmp/istio-demo-1.0.0.yaml ignore_errors True

AnsibleTask shell oc adm policy add-scc-to-group anyuid system authenticated -n ocp_project when projects/ ~ istio-system not in oc_projects.stdout_lines

AnsibleTask template src templates/istio-demo-1.0.0.yaml.j2 dest /tmp/istio-demo-1.0.0.yaml when projects/ ~ istio-system not in oc_projects.stdout_lines

AnsibleTask shell oc get deployment istio-sidecar-injector -o jsonpath= .status.availableReplicas -n istio-system register sidecar_injector_replicas until sidecar_injector_replicas.stdout 1 retries 30 delay 30

AnsibleTask template src templates/limitrange.yaml.j2 dest /tmp/ ocp_project _limitrange.yaml

AnsibleTask shell oc policy add-role-to-user admin admin_username -n ocp_project

AnsibleTask shell oc create clusterquota clusterquota- admin_username ocp_project project-annotation-selector=openshift.io/requester= admin_username hard requests.cpu= quota_requests_cpu hard limits.cpu= quota_limits_cpu hard requests.memory= quota_requests_memory hard limits.memory= quota_limits_memory hard configmaps= quota_configmaps hard pods= quota_pods hard persistentvolumeclaims= quota_persistentvolumeclaims hard services= quota_services hard secrets= quota_secrets hard requests.storage= quota_requests_storage ignore_errors True

AnsibleTask debug msg create_realms realm_output_dir realm_output_dir realm_provisioning_log_file and end realms start_realm end_realm

AnsibleTask template src templates/generic-realm.json dest /tmp/generic-realm.json mode,493 when create_realms true

AnsibleTask template src templates/manage_realms.sh dest /tmp/manage_realms.sh mode,493

AnsibleTask debug msg Management of realms complete output files available at realm_output_dir

AnsibleTask command oc label namespace ocp_project AAD= admin_username

AnsibleTask shell oc new-app template= rhsso_template_name param=SSO_ADMIN_USERNAME= SSO_SITE_ADMIN_USERNAME param=SSO_ADMIN_PASSWORD= SSO_SITE_ADMIN_PASSWORD param=MEMORY_LIMIT=2Gi -n ocp_project /tmp/sso_provision.txt

AnsibleTask command oc get rc -o json -n ocp_project register rc_state changed_when False retries deploy_status_retries delay deploy_status_delay until rc_state.stdout |from_json json_query items kind .metadata.annotations.\ openshift.io/deployment-config.name\ |intersect item |length 1 loop pod_to_wait

AnsibleTask command oc get rc -o json -n ocp_project register rc_state changed_when False retries deploy_status_retries delay deploy_status_delay until rc_state.stdout |from_json |json_query items status.readyReplicas || status.readyReplicas ` 0 ` metadata.annotations.\ openshift.io/deployment.cancelled\ .metadata.annotations.\ openshift.io/deployment-config.name\ |intersect pod_to_wait |length 0

AnsibleTask shell oc new-project ocp_project display-name= RHPAM 7 Order IT Hardware Demo description= Red Hat Process Automation Manager 7 Order IT Hardware Demo ignore_errors True

AnsibleTask shell oc create -f openjdk_imagestreams_yml -n ocp_project

AnsibleTask shell oc patch is/rhpam71-kieserver-openshift -p op replace path /spec/tags/0/from/name value registry.access.redhat.com/rhpam-7/rhpam71-kieserver-openshift:1.0

AnsibleTask shell oc process -f pam_secrets_template_yml -p SECRET_NAME=businesscentral-app-secret oc create -f -n ocp_project

AnsibleTask shell oc process -f pam_secrets_template_yml -p SECRET_NAME=kieserver-app-secret oc create -f -n ocp_project

AnsibleTask shell oc create serviceaccount businesscentral-service-account -n ocp_project

AnsibleTask shell oc create serviceaccount kieserver-service-account -n ocp_project

AnsibleTask shell oc secrets link for=mount businesscentral-service-account businesscentral-app-secret -n ocp_project

AnsibleTask shell oc secrets link for=mount kieserver-service-account kieserver-app-secret -n ocp_project

AnsibleTask shell oc create configmap rhpam-bc-setup-config-map from-file=/tmp/ guid /bc-clone-git-repository.sh /tmp/ guid /provision-properties-static.sh -n ocp_project

AnsibleTask shell oc process -f /tmp/ guid /rhpam71-businesscentral-openshift-with-users.yaml -p DOCKERFILE_REPOSITORY= https //github.com/jbossdemocentral/rhpam7-order-it-hw-demo-rhpamcentr -p DOCKERFILE_REF= master -p DOCKERFILE_CONTEXT= -n ocp_project oc create -n ocp_project -f

AnsibleTask shell oc new-app template=rhpam71-authoring -p APPLICATION_NAME= rhpam7-oih -p KIE_ADMIN_USER= adminUser -p KIE_ADMIN_PWD= test1234 -p KIE_SERVER_CONTROLLER_USER= controllerUser -p KIE_SERVER_CONTROLLER_PWD= test1234 -p KIE_SERVER_USER= executionUser -p KIE_SERVER_PWD= test1234 -p BUSINESS_CENTRAL_HTTPS_SECRET= businesscentral-app-secret -p KIE_SERVER_HTTPS_SECRET= kieserver-app-secret -p MAVEN_REPO_URL= http //nexus:8081/content/groups/public/ -p MAVEN_REPO_USERNAME= deployment -p MAVEN_REPO_PASSWORD= deployment123 -p BUSINESS_CENTRAL_MAVEN_USERNAME= mavenUser -p BUSINESS_CENTRAL_MAVEN_PASSWORD= test1234 -p BUSINESS_CENTRAL_MEMORY_LIMIT= 2Gi -p IMAGE_STREAM_NAMESPACE= ocp_project -n ocp_project

AnsibleTask shell oc volume dc/rhpam7-oih-rhpamcentr add name=config-volume configmap-name=rhpam-bc-setup-config-map mount-path=/tmp/config-files

AnsibleTask shell oc set deployment-hook dc/rhpam7-oih-rhpamcentr post -c rhpam7-oih-rhpamcentr -e BC_URL= http //rhpam7-oih-rhpamcentr:8080 -v config-volume failure-policy=abort /bin/bash /tmp/config-files/bc-clone-git-repository.sh

AnsibleTask shell oc patch dc/rhpam7-oih-rhpamcentr -p op replace path /spec/triggers/0/imageChangeParams/from/name value rhpam71-businesscentral-openshift-with-users latest

AnsibleTask shell oc new-app java:8~https //github.com/jbossdemocentral/rhpam7-order-it-hw-demo-springboot-app name rhpam7-oih-order-app -e JAVA_OPTIONS= -Dorg.kie.server.repo=/data -Dorg.jbpm.document.storage=/data/docs -Dorder.service.location=http //rhpam7-oih-order-mgmt-app:8080 -Dorg.kie.server.controller.user=controllerUser -Dorg.kie.server.controller.pwd=test1234 -Dspring.profiles.active=openshift-rhpam -e KIE_MAVEN_REPO_USER=mavenUser -e KIE_MAVEN_REPO_PASSWORD=test1234 -e KIE_MAVEN_REPO=http //rhpam7-oih-rhpamcentr:8080/maven2 -e GC_MAX_METASPACE_SIZE=192 -n ocp_project

AnsibleTask shell oc create configmap rhpam7-oih-order-app-settings-config-map from-file=/tmp/ guid /settings.xml -n ocp_project

AnsibleTask shell oc volume dc/rhpam7-oih-order-app add -m /home/jboss/.m2 -t configmap configmap-name=rhpam7-oih-order-app-settings-config-map -n ocp_project

AnsibleTask shell oc volume dc/rhpam7-oih-order-app add claim-size 100Mi mount-path /data name rhpam7-oih-order-app-data -n ocp_project

AnsibleTask shell oc expose service rhpam7-oih-order-app -n ocp_project

AnsibleTask shell oc get route rhpam7-oih-order-app awk 1 print 2 register oc_get_route_output

AnsibleTask set_fact kie_server_route oc_get_route_output.stdout

AnsibleTask shell oc create configmap rhpam7-oih-order-app-properties-config-map from-file=/tmp/ guid /application-openshift-rhpam.properties -n ocp_project

AnsibleTask shell oc volume dc/rhpam7-oih-order-app add -m /deployments/config -t configmap configmap-name=rhpam7-oih-order-app-properties-config-map -n ocp_project

AnsibleTask shell oc new-app java:8~https //github.com/jbossdemocentral/rhpam7-order-it-hw-demo-vertx-app name rhpam7-oih-order-mgmt-app -e -Dpassword=maciek1 -e JAVA_APP_JAR=order-mgmt-app-1.0.0-fat.jar -n ocp_project

AnsibleTask shell oc expose service rhpam7-oih-order-mgmt-app -n ocp_project

AnsibleTask shell oc policy add-role-to-user admin ocp_username -n item with_items ocp_project_dev ocp_project_tst ocp_project_pipelines ignore_errors True

AnsibleTask shell oc policy add-role-to-user admin system serviceaccount ocp_project_pipelines jenkins -n item with_items ocp_project_dev ocp_project_tst ignore_errors True

AnsibleTask command oc delete project item with_items ocp_project_dev ocp_project_tst ocp_project_pipelines ignore_errors True

AnsibleTask command oc new-project item with_items ocp_project_dev ocp_project_tst ocp_project_pipelines ignore_errors True

AnsibleTask shell oc process openshift//jenkins-ephemeral -n ocp_project_pipelines oc apply -f- -n ocp_project_pipelines ignore_errors True

AnsibleTask shell oc process -f springboot_noun_project_deployment_template_url -p APPLICATION_NAME=springboot-noun-service -p NAMESPACE= ocp_project_dev -p SA_NAMESPACE= ocp_project_pipelines -n ocp_project_dev oc apply -f- -n ocp_project_dev ignore_errors True

AnsibleTask shell oc process -f springboot_noun_project_deployment_template_url -p APPLICATION_NAME=springboot-noun-service -p NAMESPACE= ocp_project_tst -p SA_NAMESPACE= ocp_project_pipelines -n ocp_project_tst oc apply -f- -n ocp_project_tst ignore_errors True

AnsibleTask shell oc process -f springboot_noun_project_build_template_url -p APPLICATION_NAME=springboot-noun-service -p NAMESPACE= ocp_project_pipelines -p SOURCE_REPOSITORY_URL= springboot_src_repo_url -p SOURCE_REPOSITORY_REF=master -n ocp_project_pipelines oc apply -f- -n ocp_project_pipelines ignore_errors True

AnsibleTask shell oc process -f wildflyswarm_adjective_project_deployment_template_url -p APPLICATION_NAME=wildflyswarm-adj -p NAMESPACE= ocp_project_dev -p SA_NAMESPACE= ocp_project_pipelines -n ocp_project_dev oc apply -f- -n ocp_project_dev ignore_errors True

AnsibleTask shell oc process -f wildflyswarm_adjective_project_deployment_template_url -p APPLICATION_NAME=wildflyswarm-adj -p NAMESPACE= ocp_project_tst -p SA_NAMESPACE= ocp_project_pipelines -n ocp_project_tst oc apply -f- -n ocp_project_tst ignore_errors True

AnsibleTask shell oc process -f wildflyswarm_adjective_project_build_template_url -p APPLICATION_NAME=wildflyswarm-adj -p NAMESPACE= ocp_project_pipelines -p SOURCE_REPOSITORY_URL= wildfltswarm_src_repo_url -p SOURCE_REPOSITORY_REF=master -n ocp_project_pipelines oc apply -f- -n ocp_project_pipelines ignore_errors True

AnsibleTask shell oc process -f vertx_adjective_project_deployment_template_url -p APPLICATION_NAME=vertx-adjective-service -p NAMESPACE= ocp_project_dev -p SA_NAMESPACE= ocp_project_pipelines -n ocp_project_dev oc apply -f- -n ocp_project_dev ignore_errors True

AnsibleTask shell oc process -f vertx_adjective_project_deployment_template_url -p APPLICATION_NAME=vertx-adjective-service -p NAMESPACE= ocp_project_tst -p SA_NAMESPACE= ocp_project_pipelines -n ocp_project_tst oc apply -f- -n ocp_project_tst ignore_errors True

AnsibleTask shell oc process -f vertx_adjective_project_build_template_url -p APPLICATION_NAME=vertx-adjective-service -p NAMESPACE= ocp_project_pipelines -p SOURCE_REPOSITORY_URL= vertx_adj_src_repo_url -p SOURCE_REPOSITORY_REF=master -n ocp_project_pipelines oc apply -f- -n ocp_project_pipelines

AnsibleTask shell oc process -f vertx_gateway_project_deployment_template_url -p APPLICATION_NAME=vertx-insult-gateway -p NAMESPACE= ocp_project_dev -p SA_NAMESPACE= ocp_project_pipelines -n ocp_project_dev oc apply -f- -n ocp_project_dev ignore_errors True

AnsibleTask shell oc process -f vertx_gateway_project_deployment_template_url -p APPLICATION_NAME=vertx-insult-gateway -p NAMESPACE= ocp_project_tst -p SA_NAMESPACE= ocp_project_pipelines -n ocp_project_tst oc apply -f- -n ocp_project_tst ignore_errors True

AnsibleTask shell oc process -f vertx_gateway_project_build_template_url -p APPLICATION_NAME=vertx-insult-gateway -p NAMESPACE= ocp_project_pipelines -p SOURCE_REPOSITORY_URL= vertx_gateway_src_repo_url -p SOURCE_REPOSITORY_REF=master -n ocp_project_pipelines oc apply -f- -n ocp_project_pipelines

AnsibleTask template src templates/manage_tenants.sh dest /tmp/manage_tenants.sh mode,493 vars create_tenants false

AnsibleTask debug msg tenant_output_dir tenant_output_dir tenant_provisioning_log_file tenant_output_dir tenant_provisioning_results_file and end tenants start_tenant end_tenant

AnsibleTask template src templates/install-syndesis dest /tmp/install-syndesis mode,493

AnsibleTask shell oc create -f modified_nodejs_template_path -n openshift

AnsibleTask shell oc new-app -f modified_template_path -p APPLICATION_NAME= APPLICATION_NAME -p KIE_ADMIN_USER= KIE_ADMIN_USER -p KIE_ADMIN_PWD= KIE_ADMIN_USER -p KIE_SERVER_USER= KIE_SERVER_USER -p KIE_SERVER_PWD= KIE_SERVER_PWD -p KIE_SERVER_CONTAINER_DEPLOYMENT= KIE_SERVER_CONTAINER_DEPLOYMENT -p SOURCE_REPOSITORY_URL= SOURCE_REPOSITORY_URL -p SOURCE_REPOSITORY_REF= SOURCE_REPOSITORY_REF -p CONTEXT_DIR= CONTEXT_DIR -n ocp_project new_app_output

AnsibleTask debug msg new-app output available at new_app_output

AnsibleTask shell oc create clusterquota cluster_quota_name project-annotation-selector=openshift.io/requester= ocp_username hard requests.cpu= quota_requests_cpu hard limits.cpu= quota_limits_cpu hard requests.memory= quota_requests_memory hard limits.memory= quota_limits_memory hard configmaps= quota_configmaps hard pods= quota_pods hard persistentvolumeclaims= quota_persistentvolumeclaims hard services= quota_services hard secrets= quota_secrets hard requests.storage= quota_requests_storage ignore_errors True

AnsibleTask shell oc delete clusterresourcequota cluster_quota_name ignore_errors True

AnsibleTask shell oc adm policy add-role-to-user view ocp_username -n istio-system

AnsibleTask template src templates/coolstore-catalog-mongodb-persistent.yaml dest /tmp/coolstore-catalog-mongodb-persistent.yaml

AnsibleTask shell oc adm policy add-cluster-role-to-user sudoer ocp_username as=system admin

AnsibleTask template src templates/constraints_limitrange.yaml.j2 dest /tmp/ ocp_constraints_project _limitrange.yaml

AnsibleTask shell oc create clusterquota cluster_quota_name project-annotation-selector=openshift.io/requester= ocp_username hard requests.cpu= quota_requests_cpu hard limits.cpu= quota_limits_cpu hard requests.memory= quota_requests_memory hard limits.memory= quota_limits_memory hard configmaps= quota_configmaps hard pods= quota_pods hard persistentvolumeclaims= quota_persistentvolumeclaims hard services= quota_services hard secrets= quota_secrets hard requests.storage= quota_requests_storage ignore_errors True when ocp_user_needs_quota|d False |bool

AnsibleTask shell oc delete project ocp_username lab_2_name ignore_errors True

AnsibleTask shell oc new-project ocp_1_project display-name= ocp_1_project

AnsibleTask shell oc new-project ocp_2_project display-name= ocp_2_project

AnsibleTask shell oc adm policy add-scc-to-user privileged -z default -n ocp_1_project

AnsibleTask shell oc policy add-role-to-user view -z default -n ocp_1_project

AnsibleTask shell oc create configmap app-config from-file=/tmp/app-config.yaml -n ocp_1_project

AnsibleTask shell oc new-app -f /tmp/coolstore-catalog-mongodb-persistent.yaml -p CATALOG_DB_USERNAME=mongo -p CATALOG_DB_PASSWORD=mongo -n ocp_1_project

AnsibleTask shell oc rollout resume deploy/catalog-service -n ocp_1_project

AnsibleTask shell oc policy add-role-to-user view -z default -n ocp_2_project

AnsibleTask template src templates/coolstore-gateway.yaml dest /tmp/coolstore-gateway.yaml when coolstore_gw_file.stat.exists False

AnsibleTask shell oc new-app -f /tmp/coolstore-gateway.yaml -n ocp_2_project

AnsibleTask shell oc annotate namespace ocp_1_project openshift.io/requester= ocp_username overwrite

AnsibleTask shell oc policy add-role-to-user admin ocp_username -n ocp_1_project

AnsibleTask shell oc create clusterquota clusterquota- ocp_project project-annotation-selector=openshift.io/requester= ocp_username hard requests.cpu= quota_requests_cpu hard limits.cpu= quota_limits_cpu hard requests.memory= quota_requests_memory hard limits.memory= quota_limits_memory hard configmaps= quota_configmaps hard pods= quota_pods hard persistentvolumeclaims= quota_persistentvolumeclaims hard services= quota_services hard secrets= quota_secrets hard requests.storage= quota_requests_storage ignore_errors True when ocp_user_needs_quota|d False |bool

AnsibleTask shell oc delete clusterresourcequota clusterquota- ocp_project ignore_errors True

AnsibleTask shell oc create clusterquota clusterquota- ocp_username lab_name project-annotation-selector=openshift.io/requester= ocp_username hard requests.cpu= quota_requests_cpu hard limits.cpu= quota_limits_cpu hard requests.memory= quota_requests_memory hard limits.memory= quota_limits_memory hard configmaps= quota_configmaps hard pods= quota_pods hard persistentvolumeclaims= quota_persistentvolumeclaims hard services= quota_services hard secrets= quota_secrets hard requests.storage= quota_requests_storage ignore_errors True

AnsibleTask shell oc delete project lab_1_name ignore_errors True

AnsibleTask shell oc delete crd item items kafkaconnects.kafka.strimzi.io kafkaconnects2is.kafka.strimzi.io kafkas.kafka.strimzi.io kafkatopics.kafka.strimzi.io kafkausers.kafka.strimzi.io ignore_errors True

AnsibleTask debug msg Lab 6 Op Intel Installation workload Tasks Start

AnsibleTask command oc label namespace lab_3_name AAD= guid ignore_errors True

AnsibleTask shell oc policy add-role-to-user admin guid -n lab_3_name ignore_errors True

AnsibleTask shell oc create -f spark_yaml -n lab_3_name ignore_errors True

AnsibleTask shell oc new-app spark_app_1 -n lab_3_name ignore_errors True

AnsibleTask shell oc new-app template spark_dc -p APPLICATION_NAME= spark_app_2 -p APP_MAIN_CLASS=com.redhat.gpte.App -p GIT_URI= spark_git -p APP_FILE=spark-drools.jar -p OSHINKO_DEL_CLUSTER=false -n lab_3_name ignore_errors True

AnsibleTask debug msg Simple Spark Lab Installation Tasks Complete

AnsibleTask command oc label namespace lab_4_name AAD= guid ignore_errors True

AnsibleTask shell oc policy add-role-to-user admin guid -n lab_4_name ignore_errors True

AnsibleTask shell oc create -f zeppelin_yaml -n lab_4_name ignore_errors True

AnsibleTask shell oc new-app template= namespace/apache-zeppelin-openshift -p APPLICATION_NAME= spark_app_3 -p GIT_URI= zeppelin_git -p ZEPPELIN_INTERPRETERS=md -n lab_4_name ignore_errors True

AnsibleTask command oc label namespace lab_5_name AAD= guid ignore_errors True

AnsibleTask shell oc policy add-role-to-user admin guid -n lab_5_name ignore_errors True

AnsibleTask shell oc create -f jupyter_yaml -n lab_5_name ignore_errors True

AnsibleTask shell oc new-app template radanalytics-jupyter-notebook -p JUPYTER_NOTEBOOK_PASSWORD=developer -n lab_5_name ignore_errors True

AnsibleTask shell oc create -f nbconf_yaml -n lab_5_name ignore_errors True

AnsibleTask debug msg Medium Spark Lab Installation Tasks Complete

AnsibleTask debug msg Complex Spark Lab Installation Tasks Begin

AnsibleTask command oc label namespace lab_6_name AAD= guid ignore_errors True

AnsibleTask shell oc policy add-role-to-user admin guid -n lab_6_name ignore_errors True

AnsibleTask shell oc create -f zeppelin_yaml -n lab_6_name ignore_errors True

AnsibleTask shell oc new-app template= namespace/apache-zeppelin-openshift -p APPLICATION_NAME= spark_app_3 -p GIT_URI= zeppelin_git -p ZEPPELIN_INTERPRETERS=md -n lab_6_name ignore_errors True

AnsibleTask shell oc create -f spark_yaml -n lab_6_name ignore_errors True

AnsibleTask shell oc new-app spark_app_1 -n lab_6_name ignore_errors True

AnsibleTask debug msg Complex Spark Lab Installation Tasks Complete

AnsibleTask debug msg Lab 6 Op Intel Installation workload Tasks Complete

AnsibleTask template src templates/strimzi_limitrange.yaml.j2 dest /tmp/ lab_1_name _limitrange.yaml

AnsibleTask command oc label namespace lab_1_name AAD= ocp_username

AnsibleTask shell oc policy add-role-to-user admin ocp_username -n lab_1_name

AnsibleTask shell oc apply -f clusteroperator_role_yaml -n lab_1_name

AnsibleTask shell oc apply -f clusteroperator_rolebinding_yaml -n lab_1_name

AnsibleTask shell oc apply -f kafkabroker_role_yaml -n lab_1_name

AnsibleTask shell oc apply -f topicoperator_rolebinding_yaml -n lab_1_name

AnsibleTask shell oc apply -f kafkaconnect_crd_yaml -n lab_1_name

AnsibleTask shell oc apply -f kafkaconnects2i_crd_yaml -n lab_1_name

AnsibleTask shell oc apply -f clusteroperator_deployment_yaml -n lab_1_name

AnsibleTask shell oc apply -f kafkapersistent_yaml -n lab_1_name

AnsibleTask command subscription-manager register org= satellite_org activationkey= satellite_activationkey force

AnsibleTask command subscription-manager repos enable=rhel-7-server-satellite-tools-6.3-rpms

AnsibleTask file path item state absent with_items /var/lib/lxc/ container_name delegate_to physical_host when force_containers_destroy bool

AnsibleTask file path item state absent with_items /openstack/ container_name /openstack/backup/ container_name /openstack/log/ container_name /var/log/lxc/lxc- container_name .log delegate_to physical_host when force_containers_destroy bool force_containers_data_destroy bool

AnsibleTask command btrfs quota rescan -w /var/lib/machines changed_when False

AnsibleTask command machinectl status inventory_hostname register machinectl_status failed_when False delegate_to physical_host

AnsibleTask command machinectl image-status inventory_hostname register machinectl_image_status failed_when False delegate_to physical_host

AnsibleTask command systemd-escape inventory_hostname changed_when False register systemd_escape delegate_to physical_host

AnsibleTask shell hostnamectl machine= inventory_hostname status awk ID/ print 3 register _container_machine_id delegate_to physical_host

AnsibleTask command machinectl poweroff inventory_hostname failed_when False delegate_to physical_host when machinectl_status.rc 0 force_containers_destroy bool

AnsibleTask command machinectl remove inventory_hostname delegate_to physical_host when machinectl_image_status.rc 0 force_containers_destroy bool

AnsibleTask file path item state absent with_items /openstack/ container_name /openstack/backup/ container_name /openstack/log/ container_name delegate_to physical_host when force_containers_destroy bool force_containers_data_destroy bool

AnsibleTask hosts nspawn_hosts gather_facts True tasks be implemented Please help

AnsibleTask command ping -c 2 keepalived_ping_address changed_when False

AnsibleTask command pgrep keepalived changed_when False when groups length 1

AnsibleTask shell echo show info show stat nc -U /var/run/haproxy.stat changed_when False register haproxy_stats

AnsibleTask shell echo stats nc -w 3 hostvars memcached_host memcached_port changed_when False register memcache_stats with_items groups loop_control loop_var memcached_host

AnsibleTask hosts all_containers etcd_all galera_all memcached haproxy rabbitmq_all rsyslog unbound repo_all gather_facts False vars venv_path /tmp/rabbitmqtest post_tasks venv for rabbitmq testing venv_path test script venv_path /rabbitmq-test.py 493 to rabbitmq venv_path /bin/python2 venv_path /rabbitmq-test.py hostvars groups 0 tags healthcheck healthcheck-rabbitmq-install

AnsibleTask gather_facts False hosts localhost vars_files defaults/healthchecks-vars.yml tasks s download item.url item.dest item.checksum default omit glance_images is success 6 5 tempest images to glance keystone_service_internaluri_insecure ternary false true item.name default item.url basename item.dest item.format True glance_images is success 5 15 groups length 0 tags healthchecks healthchecks-glance-install

AnsibleTask gather_facts False hosts localhost vars_files defaults/healthchecks-vars.yml tasks volumes keystone_service_internaluri_insecure ternary false true item.name item.size item.snapshot_id default omit item.timeout default 600 item.volume default omit item.volume_type default omit cinder_volumes groups length 0 tags healthchecks healthchecks-cinder-install

AnsibleTask gather_facts False hosts localhost vars_files defaults/healthchecks-vars.yml tasks networks keystone_service_internaluri_insecure ternary false true item.value.name item.value.pn_type item.value.physical_network default item.value.segmentation_id default omit item.value.external default omit item.value.project default omit neutron_networks network failure _create_net.results is defined in item.msg not in use in item.msg facts to see if everything is ok False networks subnet exists keystone_service_internaluri_insecure ternary false true item 0 .name item 1 .name item 1 .ip_version item 1 .cidr item 1 .gateway_ip default omit item 1 .enable_dhcp default false item 1 .allocation_pool_start default omit item 1 .allocation_pool_end default omit item 1 .dns_nameservers default item 0 .project default omit neutron_networks router keystone_service_internaluri_insecure ternary false true neutron_networks item.name { neutron_networks groups ' length 0 } tags healthchecks healthchecks-neutron-install

AnsibleTask gather_facts False hosts localhost vars_files defaults/healthchecks-vars.yml tasks minimum heat stack heat_stack heat_stack heat stack True keystone_service_internaluri_insecure ternary false true heat_stack heat_stack heat_stack heat_stack groups length 0 tags healthchecks healthchecks-heat-install

AnsibleTask gather_facts False hosts localhost vars_files defaults/healthchecks-vars.yml tasks keypair for nova ssh-keygen -b 2048 -t rsa -f ssh_key -q -N ssh_key keypair keystone_service_internaluri_insecure ternary false true ssh_key .pub flavors of nova VMs keystone_service_internaluri_insecure ternary false true item.name item.ram item.vcpus item.disk item.swap item.ephemeral nova_flavors security group for healthcheck keystone_service_internaluri_insecure ternary false true security_group.name servers security group rules keystone_service_internaluri_insecure ternary false true security_group.name item.protocol item.port_range_min item.port_range_max item.remote_ip_prefix security_group.rules instance in a network keystone_service_internaluri_insecure ternary false true nova_vm.name nova_vm.image nova_vm.flavor nova_vm.network neutron_networks /etc/fstab /root/fstab\n security_group.name volume to instance groups length 0 keystone_service_internaluri_insecure ternary false true nova_vm.name cinder_volumes 0 server facts keystone_service_internaluri_insecure ternary false true nova_vm.name server facts the healthcheck vm floating IP openstack_servers json_query _query name nova_vm.name .addresses nova_vm.network contains .addr connection to node works -o StrictHostKeyChecking=no -i ssh_key cirros { _floating_ip 0 /etc/fstab /tmp/fstab `` groups ' length 0 } tags healthchecks healthchecks-nova-install

AnsibleTask gather_facts False hosts localhost vars_files defaults/healthchecks-vars.yml tasks data in swift keystone_service_internaluri_insecure ternary false true swift_object swift_object swift_object groups length 0 tags healthchecks healthchecks-swift-install

AnsibleTask gather_facts False hosts localhost vars_files defaults/healthchecks-vars.yml tasks glance downloads item.dest glance_images glance image from the cloud keystone_service_internaluri_insecure ternary false true item.name default item.url basename glance_images groups length 0 default True bool volume if attached groups length 0 keystone_service_internaluri_insecure ternary false true nova_vm.name cinder_volumes 0 cinder volumes keystone_service_internaluri_insecure ternary false true item.name cinder_volumes groups length 0 default True bool heat downloads heat_stack heat stack True keystone_service_internaluri_insecure ternary false true heat_stack heat_stack results of heath stack destroy groups length 0 default True bool nova flavor keystone_service_internaluri_insecure ternary false true item.name nova_flavors nova instance keystone_service_internaluri_insecure ternary false true nova_vm SSH key s item ssh_key ssh_key .pub ssh_key dirname /known_hosts uploaded keypair keystone_service_internaluri_insecure ternary false true groups length 0 default True bool swift data keystone_service_internaluri_insecure ternary false true swift_object : { swift_object : groups length 0 default True bool 'tags : ] tags healthchecks healthchecks-teardown

AnsibleTask hosts hosts gather_facts osa_gather_facts default True become True handlers systemd-journald pre_tasks suse from this playbook ansible_pkg_mgr playbook if log_hosts group is empty groups length 0 systemd-journal-remote systemd_journal_remote_distro_package ansible_pkg_mgr package_state systemd-journal-remote socket is enabled on receiving host True ansible_host systemd_journal_remote_target journal directory journal remote directory receiving hosts are tuned item.key item.value True groups length 1.5 groups length // 1 int ansible_host systemd_journal_remote_target ] systemd-journald ] roles True True True True ansible_host systemd_journal_remote_target ternary ansible_host systemd_journal_remote_target ternary systemd_utils_prefix /systemd-journal-remote listen-http=-3 split-mode=host compress seal output=/var/log/journal/remote/ ansible_host systemd_journal_remote_target ternary ansible_host systemd_journal_remote_target ternary systemd_utils_prefix /systemd-journal-upload save-state merge url=http // systemd_journal_remote_target :19532 vars systemd_journal_remote_target hostvars groups 0 systemd_journal_remote_distro_package tags journal-remote

AnsibleTask command netstat -ln inet program register listening_ports

AnsibleTask copy content for host in ansible_play_hosts hostname host listening_ports for port in hostvars host .listening_ports port endfor endfor dest /tmp/listening_port_report.txt delegate_to localhost run_once True

AnsibleTask set_fact cinder_all_software_versions groups map hostvars list delegate_to localhost run_once True

AnsibleTask set_fact cinder_all_software_deployed cinder_all_software_versions select list cinder_all_software_versions delegate_to localhost run_once True

AnsibleTask set_fact cinder_all_software_updated cinder_all_software_versions unique length 1 and cinder_all_software_deployed bool delegate_to localhost run_once True

AnsibleTask command cinder_bin /cinder-manage db online_data_migrations become True become_user cinder_system_user_name when cinder_all_software_updated bool ansible_local bool changed_when False register data_migrations

AnsibleTask set_fact glance_all_software_versions groups map hostvars list delegate_to localhost run_once True

AnsibleTask set_fact glance_all_software_deployed glance_all_software_versions select list glance_all_software_versions delegate_to localhost run_once True

AnsibleTask set_fact glance_all_software_updated glance_all_software_versions unique length 1 and glance_all_software_deployed bool delegate_to localhost run_once True

AnsibleTask hosts openstack_service_setup_host default gather_facts osa_gather_facts default True become True tags openrc roles

AnsibleTask set_fact keystone_all_software_versions groups map hostvars list delegate_to localhost run_once True

AnsibleTask set_fact keystone_all_software_deployed keystone_all_software_versions select list keystone_all_software_versions delegate_to localhost run_once True

AnsibleTask set_fact keystone_all_software_updated keystone_all_software_versions unique length 1 and keystone_all_software_deployed bool delegate_to localhost run_once True

AnsibleTask command keystone_bin /keystone-manage db_sync contract become True become_user keystone_system_user_name when keystone_all_software_updated bool ansible_local bool register dbsync_contract run_once True

AnsibleTask hosts localhost gather_facts False tags neutron tasks neutron_metadata_agent neutron_plugin_type

AnsibleTask set_fact nova_all_software_versions groups map hostvars list delegate_to localhost run_once True

AnsibleTask set_fact nova_all_software_deployed nova_all_software_versions select list nova_all_software_versions delegate_to localhost run_once True

AnsibleTask set_fact nova_all_software_updated nova_all_software_versions unique length 1 and nova_all_software_deployed bool delegate_to localhost run_once True

AnsibleTask command nova_bin /nova-manage db online_data_migrations become True become_user nova_system_user_name when nova_all_software_updated bool ansible_local bool changed_when False run_once True register data_migrations

AnsibleTask service name rabbitmq-server state stopped when rabbitmq_upgrade default false bool

AnsibleTask set_fact network_address hostvars inventory_hostname json_query query vars query is_metal ternary metal_query non_metal_query non_metal_query container_networks network_address .address || ansible_host find_bridge container_networks network_address .bridge metal_query ansible_ hostvars inventory_hostname json_query find_bridge replace _ .ipv4.address || non_metal_query tags common-address always

AnsibleTask file path item.src state directory with_items log_dirs|default when is_metal bool tags common-log

AnsibleTask file src item.src dest item.dest state link force yes with_items log_dirs|default when is_metal bool tags common-log

AnsibleTask set_fact lxc_default_bind_mounts lxc_default_bind_mounts default bind_dir_path /var/log mount_path /openstack/log/ ~ inventory_hostname when default_bind_mount_logs bool tags common-lxc

AnsibleTask file path item state directory with_items lxc_default_bind_mounts default list_of_bind_mounts default delegate_to physical_host tags common-lxc

AnsibleTask command lxc-info -n inventory_hostname state changed_when False delegate_to physical_host register _lxc_container_state until _lxc_container_state is success retries 3 delay 5 when _mc is defined and _mc is changed or _ec is defined and _ec is changed

AnsibleTask command lxc-stop name inventory_hostname logfile lxc_container_log_path /lxc- inventory_hostname .log logpriority debug bool ternary delegate_to physical_host register container_stop until container_stop is success retries 3 failed_when container_stop.rc not in 0 2 when lxc_container_allow_restarts default True bool _mc is defined and _mc is changed or _ec is defined and _ec is changed _lxc_container_state.stdout.find -1 tags common-lxc

AnsibleTask command lxc-start daemon name inventory_hostname logfile lxc_container_log_path /lxc- inventory_hostname .log logpriority debug bool ternary delegate_to physical_host register container_start until container_start is success retries 3 when _mc is defined and _mc is changed or _ec is defined and _ec is changed tags common-lxc

AnsibleTask command systemctl version changed_when False register systemd_version delegate_to physical_host tags skip_ansible_lint always

AnsibleTask set_fact nspawn_systemd_version systemd_version.stdout_lines 0 .split -1 tags always

AnsibleTask command systemd-escape inventory_hostname changed_when False register systemd_escape delegate_to physical_host tags skip_ansible_lint always

AnsibleTask file path item state directory with_items list_of_bind_mounts default delegate_to physical_host tags common-nspawn

AnsibleTask file path item state directory with_items list_of_bind_mounts default tags common-nspawn

AnsibleTask file dest /etc/apt/apt.conf.d/00apt-cacher-proxy state absent register _apt_proxy_removed when ansible_os_family tags common-proxy

AnsibleTask shell sed -i -e http \/\/ internal_lb_vip_address repo_pkg_cache_port default /d /etc/yum.repos.d/* when ansible_os_family tags common-proxy

AnsibleTask file path /var/log/journal/ container_machine_id state absent delegate_to physical_host when not _container_machine_id is failed force_containers_destroy bool

AnsibleTask shell systemctl list-unit-files state=enabled type=service awk service_name enabled print 1 args executable /bin/bash register _enabled_services changed_when False tags skip_ansible_lint

AnsibleTask service name service_file state service_action with_items _enabled_services.stdout_lines difference service_negate default list loop_control loop_var service_file

AnsibleTask set_fact resolver_list set _var for host in groups resolvconf_resolver_group if physical_host is defined and hostvars host is defined and physical_host hostvars host set _prio 100 else set _prio 50 endif set _ _var.append hostvars host _prio endfor _var sort reverse=true map list when physical_host is defined physical_host in hostvars

AnsibleTask set_fact resolvconf_resolver_ips resolver_list resolvconf_options when resolver_list is defined resolver_list length 0

AnsibleTask set_fact resolvconf_options when resolver_list is not defined

AnsibleTask template src crontab.j2 dest /etc/crontab owner root group root mode,0644 when ansible_os_family

AnsibleTask file path item.path default role_path_default item.name default item.src basename state absent when item.scm git or item.scm is undefined item.path default role_path_default ~ ~ item.name default item.src basename ~ is not directory with_items required_roles

AnsibleTask set_fact user_overridden_roles user_roles json_query .name

AnsibleTask set_fact clone_roles clone_roles default item when item.scm git or item.scm is undefined item.name not in user_overridden_roles with_items zuul_roles.results default selectattr rejectattr map list default required_roles True

AnsibleTask shell set -e exit_code=0 if -e openstack_config_dir /env.d then for f in diff brief report-identical-files openstack_config_dir /env.d openstack_clone_root /inventory/env.d awk print 2 2 /dev/null do echo Deleting f because it is identical to the defaults rm -f f exit_code=2 done fi exit exit_code args executable /bin/bash register _envd_dir_cleanup changed_when _envd_dir_cleanup.rc 2 failed_when _envd_dir_cleanup.rc not in 0,2 tags identical-envd-file-cleanup

AnsibleTask fail msg There are files in /etc/openstack_deploy/env.d which override the default inventory layout in repo_root_dir /inventory/env.d The difference between these files should be carefully reviewed to understand whether the changes are still necessary and applicable to the environment If all the user-space env.d files are necessary then please export SKIP_CUSTOM_ENVD_CHECK=true and re-run the playbook or run-upgrade.sh script when _envd_dir_contents.matched 0 not lookup bool tags custom-envd-file-check

AnsibleTask shell grep a-zA-Z repo_root_dir /etc/openstack_deploy/user_secrets.yml register new_secrets tags update-secrets

AnsibleTask shell grep a-zA-Z openstack_config_dir /user_secrets.yml register user_secrets tags update-secrets

AnsibleTask shell repo_root_dir /scripts/pw-token-gen.py file openstack_config_dir /user_secrets.yml tags update-secrets

AnsibleTask file path openstack_config_dir /ansible_facts state absent tags remove-fact-cache

AnsibleTask service name mysql state started retries 5 delay 10 when hostvars inventory_hostname

AnsibleTask shell if df -T tail -n 1 awk print 2 btrfs then btrfs fi usage kbytes awk *Free print 3 sed else df -BK awk /^Filesystem/ print 4 sed fi environment LC_ALL en_US.UTF-8 when bootstrap_host_data_disk_device None changed_when False register root_space_available tags check-disk-size

AnsibleTask set_fact host_root_space_available_bytes root_space_available.stdout int 1024 int when bootstrap_host_data_disk_device None tags check-disk-size

AnsibleTask fail msg Can not find disk bootstrap_host_data_disk_device when bootstrap_host_data_disk_device None ansible_devices.get bootstrap_host_data_disk_device None tags check-disk-size

AnsibleTask set_fact host_data_disk_sectors ansible_devices bootstrap_host_data_disk_device int host_data_disk_sectorsize ansible_devices bootstrap_host_data_disk_device int when bootstrap_host_data_disk_device None tags check-disk-size

AnsibleTask set_fact host_data_disk_size_bytes host_data_disk_sectors int host_data_disk_sectorsize int int when bootstrap_host_data_disk_device None tags check-disk-size

AnsibleTask set_fact host_data_disk_min_size_bytes bootstrap_host_data_disk_min_size int 1024**3 int tags check-disk-size

AnsibleTask set_fact root_gb_available host_root_space_available_bytes int 1024**3 round 2 when bootstrap_host_data_disk_device None tags check-disk-size

AnsibleTask set_fact disk_gb_available host_data_disk_size_bytes int 1024**3 round 2 when bootstrap_host_data_disk_device None tags check-disk-size

AnsibleTask fail msg Not enough space available in Found root_gb_available GB required bootstrap_host_data_disk_min_size GB when bootstrap_host_data_disk_device None host_root_space_available_bytes int host_data_disk_min_size_bytes int tags check-disk-size

AnsibleTask fail msg Not enough disk space available Found disk_gb_available GB required bootstrap_host_data_disk_min_size GB when bootstrap_host_data_disk_device None host_data_disk_size_bytes int host_data_disk_min_size_bytes int tags check-disk-size

AnsibleTask shell lsblk -brndo NAME TYPE RO SIZE awk b-z disk 0/ if 4 m 4 bootstrap_host_data_disk_min_size m= 4 d= 1 END print d changed_when False register _data_disk

AnsibleTask set_fact bootstrap_host_data_disk_device _data_disk.stdout when _data_disk.stdout

AnsibleTask file path item state directory with_items /openstack tags create-directories

AnsibleTask file path item state directory with_items bootstrap_host_target_config_paths tags create-directories

AnsibleTask command /opt/ansible-runtime/bin/python bootstrap_host_aio_script_path /pw-token-gen.py file /etc/openstack_deploy/ bootstrap_host_user_secrets_filename changed_when False tags generate_secrets

AnsibleTask copy src user_variables_proxy.yml dest /etc/openstack_deploy/user_variables_proxy.yml when lookup |length 0

AnsibleTask copy src playbook_dir /../etc/openstack_deploy/env.d/cinder-volume.yml.container.example dest /etc/openstack_deploy/env.d/cinder-volume.yml when in bootstrap_host_scenarios_expanded

AnsibleTask copy src playbook_dir /../etc/openstack_deploy/env.d/calico.yml.example dest /etc/openstack_deploy/env.d/calico.yml when in bootstrap_host_scenarios_expanded

AnsibleTask file path item state directory with_items /etc/openstack_deploy/group_vars /etc/openstack_deploy/host_vars when lookup default false true

AnsibleTask command truncate -s bootstrap_host_loopback_ceph_size G /openstack/ item .img args creates /openstack/ item .img with_items ceph_osd_images register ceph_create tags ceph-file-create

AnsibleTask shell losetup -l awk item .img/ print 1 changed_when False register ceph_create_loopback with_items ceph_osd_images tags skip_ansible_lint

AnsibleTask file path item.stdout mode,0777 with_items ceph_create_loopback.results

AnsibleTask copy content lvm_volumes for d in ceph_create_loopback json_query .stdout data_vg vg- d basename data lv- d basename endfor cinder_backends RBD volume_driver cinder.volume.drivers.rbd.RBDDriver rbd_pool volumes rbd_ceph_conf /etc/ceph/ceph.conf rbd_store_chunk_size 8 volume_backend_name rbddriver rbd_user cinder rbd_secret_uuid raw cinder_ceph_client_uuid endraw report_discard_supported true dest /etc/openstack_deploy/user_ceph_aio.yml force False become False when not ceph_create_loopback is skipped tags skip_ansible_lint

AnsibleTask shell parted script -l -m egrep -q bootstrap_host_data_disk_fs_type openstack-data 12 register data_disk_partitions changed_when False failed_when False tags check-data-disk-partitions

AnsibleTask set_fact bootstrap_host_data_disk_device_force True _bootstrap_host_data_disk_device bootstrap_host_data_disk_device regex_replace .strip when data_disk_partitions.rc 1

AnsibleTask command item when bootstrap_host_data_disk_device_force bool with_items parted script /dev/ _bootstrap_host_data_disk_device mklabel gpt parted align optimal script /dev/ _bootstrap_host_data_disk_device mkpart openstack-data1 bootstrap_host_data_disk_fs_type 0 40 parted align optimal script /dev/ _bootstrap_host_data_disk_device mkpart openstack-data2 bootstrap_host_data_disk2_fs 40 100 tags create-data-disk-partitions

AnsibleTask command zpool create pool /dev/ _bootstrap_host_data_disk_device 2 args creates /pool when bootstrap_host_data_disk_device_force bool lxc_container_backing_store

AnsibleTask shell zfs list grep lxc || zfs create -o mountpoint=/var/lib/lxc pool/lxc when bootstrap_host_data_disk_device_force bool lxc_container_backing_store tags skip_ansible_lint

AnsibleTask shell pvcreate /dev/ _bootstrap_host_data_disk_device 2 touch /openstack/lxc.pvcreate args creates /openstack/lxc.pvcreate when lxc_container_backing_store tags skip_ansible_lint data-config

AnsibleTask command pvscan changed_when False when lxc_container_backing_store tags cinder-lvm-pv

AnsibleTask copy content,127.0.0.1 localhost 172.29.236.100 aio1.openstack.local aio1 The following lines are desirable for IPv6 capable hosts :1 ip6-localhost ip6-loopback fe00 :0 ip6-localnet ff00 :0 ip6-mcastprefix ff02 :1 ip6-allnodes ff02 :2 ip6-allrouters ff02 :3 ip6-allhosts dest /etc/hosts backup True

AnsibleTask command truncate -s bootstrap_host_loopback_btrfs_size G /openstack/lxc-btrfs.img args creates /openstack/lxc-btrfs.img

AnsibleTask command truncate -s bootstrap_host_loopback_cinder_size G /openstack/cinder.img args creates /openstack/cinder.img register cinder_create tags cinder-file-create

AnsibleTask shell losetup -l awk print 1 changed_when False register cinder_losetup tags skip_ansible_lint

AnsibleTask shell pvcreate cinder_losetup.stdout touch /openstack/cinder.pvcreate args creates /openstack/cinder.pvcreate tags skip_ansible_lint cinder-lvm-pv

AnsibleTask command pvscan changed_when False tags cinder-lvm-pv

AnsibleTask command truncate -s bootstrap_host_loopback_machines_size G /openstack/machines.img args creates /openstack/machines.img tags machines-file-create

AnsibleTask command truncate -s bootstrap_host_loopback_manila_size G /openstack/manila.img args creates /openstack/manila.img register manila_create tags manila-file-create

AnsibleTask shell losetup -l awk print 1 changed_when False register manila_losetup tags skip_ansible_lint

AnsibleTask shell pvcreate manila_losetup.stdout touch /openstack/manila.pvcreate args creates /openstack/manila.pvcreate tags skip_ansible_lint manila-lvm-pv

AnsibleTask command pvscan changed_when False tags manila-lvm-pv

AnsibleTask command truncate -s bootstrap_host_loopback_nova_size G /openstack/nova.img args creates /openstack/nova.img tags nova-file-create

AnsibleTask command dd if=/dev/zero of=/openstack/swap.img bs=1M count= bootstrap_host_loopback_swap_size args creates /openstack/swap.img register swap_create tags swap-file-create

AnsibleTask command mkswap /openstack/swap.img when swap_create is changed tags swap-format skip_ansible_lint

AnsibleTask command truncate -s bootstrap_host_loopback_swift_size G /openstack/ item .img args creates /openstack/ item .img with_items swift1 swift2 swift3 tags swift-file-create

AnsibleTask command truncate -s bootstrap_host_loopback_zfs_size G /openstack/lxc-zfs.img args creates /openstack/lxc-zfs.img

AnsibleTask command zpool create osa-test-pool /openstack/lxc-zfs.img args creates /osa-test-pool

AnsibleTask shell zfs list grep lxc || zfs create -o mountpoint=/var/lib/lxc osa-test-pool/lxc tags skip_ansible_lint

AnsibleTask file path /root/.ssh state directory owner root group root mode,448 tags ssh-key-dir

AnsibleTask file path /root/.ssh/ item state absent when not ssh_key_public.stat.exists or not ssh_key_private.stat.exists with_items id_rsa id_rsa.pub tags ssh-key-clean

AnsibleTask command scripts/log-collect.sh become True become_user root args chdir src/opendev.org/openstack/openstack-ansible environment ZUUL_PROJECT zuul.project.short_name TEST_EXIT_CODE zuul_success lower RUN_ARA true ARA_REPORT_TYPE ara_report_type default WORKING_DIR ansible_user_dir /src/opendev.org/openstack/openstack-ansible

AnsibleTask file path /etc/zypp/locks state absent when ansible_pkg_mgr

AnsibleTask set_fact scenario set _scenario Add the scenarios based on the job name ex openstack-ansible-deploy- scenario1_ scenario2- os if zuul.job is match deploy|upgrade ^- set _ _scenario.extend zuul.job regex_replace a-z *- ^- .split _ If testing a role add the role service name to the scenario list if zuul.project.short_name is match set role_service_name zuul.project.short_name regex_replace set _ _scenario.append role_service_name Add special scenarios based on the project name if role_service_name in scenario_map set _ _scenario.append scenario_map role_service_name endif endif endif If running linters we need to provide name of the role as a scenario w/o splitting if zuul.job is match for prefix in if zuul.project.short_name is match ~ prefix ~ ^- set _ _scenario.append zuul.project.short_name regex_replace ~ prefix ^- endif endfor endif _scenario join _ } when scenario is not defined

AnsibleTask set_fact action zuul.job regex_replace ^- when action is not defined

AnsibleTask set_fact install_method scenario.split _ intersect install_methods 0 when install_method is not defined scenario.split _ intersect install_methods length 0

AnsibleTask set_fact install_method source when install_method is not defined

AnsibleTask debug msg Running gate-check-commit with the following arguments Scenario scenario Action action Install Method install_method Zuul project name zuul.project.short_name

AnsibleTask template src osa-gate-scenario.yml.j2 dest zuul.executor.work_root /osa-gate-scenario.yml delegate_to localhost

AnsibleTask become True become_user root shell scripts/bootstrap-ansible.sh args chdir src/opendev.org/openstack/openstack-ansible executable /bin/bash environment ZUUL_SRC_PATH ansible_user_dir /src ANSIBLE_PACKAGE ansible_package default SETUP_ARA true when action

AnsibleTask become True become_user root shell scripts/bootstrap-aio.sh args chdir src/opendev.org/openstack/openstack-ansible executable /bin/bash environment SCENARIO scenario ACTION action INSTALL_METHOD install_method when action

AnsibleTask become True become_user root shell scripts/gate-check-commit.sh scenario quote action quote install_method quote args chdir src/opendev.org/openstack/openstack-ansible executable /bin/bash environment SETUP_ARA False SKIP_OSA_RUNTIME_VENV_BUILD,1 SKIP_OSA_BOOTSTRAP_AIO,1 SKIP_OSA_ROLE_CLONE,1

AnsibleTask shell lxc-info -sn inventory_hostname awk print 2 register current_state delegate_to physical_host

AnsibleTask file path item.path state absent with_items result.files

AnsibleTask shell ansible_env.HOME /openrc openstack compute service delete results.stdout register compute_delete_result changed_when compute_delete_result.rc failed_when compute_delete_result.rc 0

AnsibleTask shell ansible_env.HOME /openrc neutron agent-delete item with_items neutron_agent_list_results.stdout_lines register neutron_delete_results changed_when neutron_delete_results.rc 0 failed_when neutron_delete_results.rc 0

AnsibleTask shell python /opt/openstack-ansible/scripts/inventory-manage.py -r host_to_be_removed register inventory_manage_output delegate_to 127.0.0.1 connection local failed_when inventory_manage_output.rc 0

AnsibleTask file state directory path swift_vars.mount_point default swift.mount_point item.name with_items swift_vars.drives when swift_vars.drives is defined

AnsibleTask file state directory path swift_vars.mount_point default swift.mount_point item.name with_items swift.drives when swift_vars.drives is not defined

AnsibleTask command cat /proc/1/comm changed_when False register _pid1_name tags always

AnsibleTask template src templates/influxdb.conf.j2 dest /etc/influxdb/influxdb.conf

AnsibleTask shell influx -username influxdb_db_root_name -password influxdb_db_root_password -execute item with_items CREATE DATABASE influxdb_db_name CREATE RETENTION POLICY influxdb_db_retention_policy ON influxdb_db_name DURATION influxdb_db_retention REPLICATION influxdb_db_replication CREATE USER influxdb_db_metric_user WITH PASSWORD influxdb_db_metric_password GRANT ALL ON influxdb_db_name TO influxdb_db_metric_user

AnsibleTask template src templates/relay.toml.j2 dest /opt/influxdb-relay/relay.toml

AnsibleTask template src templates/influxdbrelay.conf.j2 dest /etc/init/influxdbrelay.conf when pid1_name init

AnsibleTask template src templates/influxdbrelay.service.j2 dest /etc/systemd/system/influxdbrelay.service when pid1_name systemd

AnsibleTask template src templates/kapacitor.conf.j2 dest /etc/kapacitor/kapacitor.conf

AnsibleTask shell kapacitord config /etc/kapacitor/kapacitor.conf kapacitord -config /etc/kapacitor/kapacitor.conf -log-file /var/log/kapacitor/kapacitor.log

AnsibleTask copy src /opt/openstack-ansible-ops/cluster_metrics/kapacitor_files dest /opt/kapacitor/

AnsibleTask shell chmod 755 /opt/kapacitor/kapacitor_files/* bash /opt/kapacitor/kapacitor_files/run_all.sh

AnsibleTask template src templates/elasticsearch.yml.j2 dest /etc/elasticsearch/elasticsearch.yml

AnsibleTask service name elasticsearch enabled True state restarted

AnsibleTask copy src=templates/rotate-topbeatdata.sh dest=/root/rotate-topbeatdata.sh mode=0755 when node_data bool

AnsibleTask template src templates/kibana.yml.j2 dest /opt/kibana/config/kibana.yml mode u=rw g=rw o=rw

AnsibleTask template src templates/02-beats-input.conf.j2 dest /etc/logstash/conf.d/02-beats-input.conf

AnsibleTask template src templates/10-syslog-filter.conf.j2 dest /etc/logstash/conf.d/10-syslog-filter.conf

AnsibleTask template src templates/30-elasticsearch-output.conf.j2 dest /etc/logstash/conf.d/30-elasticsearch-output.conf

AnsibleTask template src templates/topbeat.yml.j2 dest /etc/topbeat/topbeat.yml

AnsibleTask command unzip -o /root/beats-dashboards-1.1.0.zip -d /root/

AnsibleTask copy src=templates/topbeat.template.json dest=/root mode=0644

AnsibleTask command curl -XPUT //localhost elastic_port /_template/topbeat -d topbeat.template.json args chdir /root/

AnsibleTask template src templates/nginx_default.j2 dest /etc/nginx/sites-available/default

AnsibleTask hosts elastic-logstash become True gather_facts True vars haproxy_ssl False vars_files vars/variables.yml environment deployment_environment_variables default roles tags beat-install

AnsibleTask hosts monitorstack_all become True gather_facts True vars haproxy_ssl False monitorstack_distro_packages monitorstack_config_enabled \n inventory_hostname in groups default \n host monitorstack_memcached_access.stdout_lines 0 default 127.0.0.1:11211 .split 0 port monitorstack_memcached_access.stdout_lines 0 default 127.0.0.1:11211 .split 1 \n inventory_hostname in groups default \n \n clouds_config.stat.exists bool and\n inventory_hostname in groups default and\n inventory_hostname groups default null 0 \n \n clouds_config.stat.exists bool and\n inventory_hostname in groups default and\n inventory_hostname groups default null 0 \n \n clouds_config.stat.exists bool and\n inventory_hostname in groups default and\n inventory_hostname groups default null 0 \n \n clouds_config.stat.exists bool and\n inventory_hostname in groups default and\n inventory_hostname groups default null 0 \n \n clouds_config.stat.exists bool and\n inventory_hostname in groups default and\n inventory_hostname groups default null 0 \n \n clouds_config.stat.exists bool and\n inventory_hostname in groups default and\n inventory_hostname groups default null 0 \n \n clouds_config.stat.exists bool and\n inventory_hostname in groups default and\n inventory_hostname groups default null 0 \n \n clouds_config.stat.exists bool and\n inventory_hostname in groups default and\n inventory_hostname groups default null 0 \n \n clouds_config.stat.exists bool and\n inventory_hostname in groups default and\n inventory_hostname groups default null 0 \n , ' : True vars_files vars/variables.yml environment deployment_environment_variables default roles post_tasks clouds config ansible_env.HOME /.config/openstack/clouds.yaml openstack release osp release block openstack_release.stat.exists bool or rhosp_release.stat.exists bool disto packages are installed monitorstack_distro_packages ansible_distribution lower monitorstack_package_state default ansible_pkg_mgr ternary omit local facts all the system group the monitorstack system user user monitorstack data path item True the clouds config into monitorstack ansible_env.HOME /.config/openstack/clouds.yaml True bool the virtualenv if it does not exist no-setuptools system-site-packages /var/lib/monitorstack/venv venv True monitorstack is installed git+https //github.com/openstack/monitorstack monitorstack_release default monitorstack_package_state default isolated is success 3 2 montiorstack config elasticsearch \nhosts elasticsearch_data_hosts join \nport elastic_port \n memcached port scan ss -ntlp awk print 4 False the systemd service role set services \n for item in monitorstack_config_enabled \n if item.condition bool \n \n set check \n service_name monitorstack- ~ item.check \n execstarts /var/lib/monitorstack/venv/bin/monitorstack format elasticsearch config-file /etc/monitorstack/monitorstack.ini ~ item.check ~ ~ item.options \n timer \n state started \n options \n OnBootSec 5min \n OnUnitActiveSec 10m \n Persistent true\n \n \n \n \n set _ services.append check \n endif \n endfor \n services ' } tags beat-install

AnsibleTask shell curl -sL https //deb.nodesource.com/setup_6.x sudo -E bash when ansible_pkg_mgr ossec_nodejs_repo is not defined

AnsibleTask template src templates/openstack-log-dashboard.json dest /tmp/openstack-log-dashboard.json run_once True

AnsibleTask shell /opt/elasticdump/node_modules/elasticdump/bin/elasticdump input=/tmp/openstack-log-dashboard.json output= kibana_index_on_elasticsearch type=data environment no_proxy hostvars groups 0 run_once True

AnsibleTask service name elasticsearch state restarted enabled True when ansible_service_mgr listen Enable and restart elastic

AnsibleTask command /usr/share/elasticsearch/bin/elasticsearch-plugin remove verbose item failed_when False changed_when remove_plugin.rc 0 register remove_plugin with_items elastic_plugins

AnsibleTask command /usr/share/elasticsearch/bin/elasticsearch-plugin install batch verbose item with_items elastic_plugins

AnsibleTask file path /etc/systemd/system/elasticsearch.service.d state directory group root owner root mode,0755 when ansible_service_mgr

AnsibleTask template src item.src dest item.dest when ansible_service_mgr with_items notify Enable and restart elastic tags config

AnsibleTask set_fact _service_heap_size elastic_heap_size when elastic_heap_size is defined

AnsibleTask template src item.src dest item.dest with_items notify Enable and restart elastic

AnsibleTask template src item.src dest item.dest with_items notify Enable and restart elastic tags config

AnsibleTask file path /var/lib/elasticsearch/ owner elasticsearch group elasticsearch recurse True register e_perms until e_perms is success retries 3 delay 1 tags config

AnsibleTask file path /var/lib/elasticsearch/tmp state directory owner elasticsearch group elasticsearch mode,0750

AnsibleTask service name apm-server state restarted enabled True when ansible_service_mgr listen Enable and restart apm server

AnsibleTask file path /etc/systemd/system/apm-server.service.d state directory group root owner root mode,0755 when ansible_service_mgr

AnsibleTask template src item.src dest /etc/systemd/system/apm-server.service.d/ item.dest mode,0644 when ansible_service_mgr with_items notify Enable and restart apm server

AnsibleTask template src apm-server.yml.j2 dest /etc/apm-server/apm-server.yml notify Enable and restart apm server

AnsibleTask service name auditbeat state auditbeat_service_state enabled True when ansible_service_mgr listen Enable and restart auditbeat

AnsibleTask file path /etc/systemd/system/auditbeat.service.d state directory group root owner root mode,0755 when ansible_service_mgr

AnsibleTask template src item.src dest /etc/systemd/system/auditbeat.service.d/ item.dest mode,0644 when ansible_service_mgr with_items notify Enable and restart auditbeat

AnsibleTask template src templates/auditbeat.yml.j2 dest /etc/auditbeat/auditbeat.yml notify Enable and restart auditbeat

AnsibleTask service name auditbeat state auditbeat_service_state enabled auditbeat_service_state in when ansible_service_mgr auditbeat_service_state in

AnsibleTask fail msg To use this role the variable ` coordination_nodes ` must be defined when coordination_nodes is undefined

AnsibleTask fail msg To use this role the variable ` elastic_beat_name ` must be defined when elastic_beat_name is undefined

AnsibleTask shell if item dashboards sed -i \\\ index\\\ \\\ elastic_beat_name -\*\\\ \\\ index\\\ \\\ elastic_beat_name \\\ g /usr/share/ elastic_beat_name /kibana/6/dashboard/*.json sed -i id elastic_beat_name \-\* id elastic_beat_name g /usr/share/ elastic_beat_name /kibana/6/index-pattern/*.json endif elastic_beat_name setup item elastic_beat_setup_options -e -v with_items elastic_setup_flags register templates environment no_proxy elastic_beat_kibana_host until templates is success retries 5 delay 5 run_once True when ansible_local elastic_beat_name is undefined or not ansible_local elastic_beat_name bool or elk_package_state default latest or elk_beat_setup default false bool tags setup

AnsibleTask command virtualenv never-download no-site-packages /opt/elasticsearch-curator args creates /opt/elasticsearch-curator/bin/activate

AnsibleTask file path item state directory owner curator group curator mode,0755 recurse True with_items /var/lib/curator /var/log/curator /etc/curator

AnsibleTask template src item.src dest item.dest with_items notify Enable and restart curator.timer

AnsibleTask file dest /etc/ansible/facts.d state directory group root owner root mode,0755 recurse False

AnsibleTask fail msg The required variable service_name is undefined when service_name is undefined

AnsibleTask fail msg The required variable service_owner is undefined when service_owner is undefined

AnsibleTask fail msg The required variable service_group is undefined when service_group is undefined

AnsibleTask set_fact elastic_log_rotate_path /var/log/ service_name

AnsibleTask file path /etc/ service_name state directory owner service_owner group service_group

AnsibleTask template src item.src dest item.dest with_items service_name

AnsibleTask service name filebeat state filebeat_service_state enabled True when ansible_service_mgr listen Enable and restart filebeat

AnsibleTask file path /etc/systemd/system/filebeat.service.d state directory group root owner root mode,0755 when ansible_service_mgr

AnsibleTask template src item.src dest /etc/systemd/system/filebeat.service.d/ item.dest mode,0644 when ansible_service_mgr with_items notify Enable and restart filebeat

AnsibleTask template src filebeat.yml.j2 dest /etc/filebeat/filebeat.yml notify Enable and restart filebeat

AnsibleTask service name filebeat state filebeat_service_state enabled filebeat_service_state in when ansible_service_mgr filebeat_service_state in

AnsibleTask service name heartbeat-elastic state heartbeat_service_state enabled True when ansible_service_mgr listen Enable and restart heartbeat

AnsibleTask file path /etc/systemd/system/heartbeat.service.d state directory group root owner root mode,0755 when ansible_service_mgr

AnsibleTask template src item.src dest item.dest mode,0644 when ansible_service_mgr with_items notify Enable and restart heartbeat

AnsibleTask service name heartbeat-elastic state heartbeat_service_state enabled heartbeat_service_state in when ansible_service_mgr heartbeat_service_state in

AnsibleTask file path item state absent with_items /etc/systemd/system/journalbeat.service /usr/local/bin/journalbeat

AnsibleTask file path /etc/systemd/system/journalbeat.service.d state directory group root owner root mode,0755

AnsibleTask template src item.src dest item.dest mode,0644 with_items notify Enable and restart journalbeat

AnsibleTask service name journalbeat state journalbeat_service_state enabled journalbeat_service_state in when ansible_service_mgr journalbeat_service_state in

AnsibleTask service name item state restarted enabled True when ansible_service_mgr with_items nginx kibana listen Enable and restart services

AnsibleTask template src nginx_default.j2 dest kibana_nginx_vhost_path /default notify Enable and restart services

AnsibleTask file path /etc/systemd/system/kibana.service.d state directory group root owner root mode,0755 when ansible_service_mgr

AnsibleTask template src item.src dest item.dest mode,0644 when ansible_service_mgr with_items notify Enable and restart services

AnsibleTask template src kibana.yml.j2 dest /etc/kibana/kibana.yml mode,0666 notify Enable and restart services

AnsibleTask service name logstash state inventory_hostname in logstash_nodes ternary enabled True when ansible_service_mgr listen Enable and restart logstash

AnsibleTask shell /usr/local/bin/logstash modules arcsight ansible_local item.host is defined ternary setup -M arcsight.var.input.smartconnector.bootstrap_servers= item.host item.port -M arcsight.var.elasticsearch.hosts=localhost elastic_port -M arcsight.var.kibana.host= hostvars groups 0 kibana_port with_items logstash_arcsight_smart_connectors run_once True register smart_connector until smart_connector is success retries 5 delay 5

AnsibleTask shell /usr/local/bin/logstash modules arcsight ansible_local item.host is defined ternary setup -M arcsight.var.input.eventbroker.bootstrap_servers= item.host item.port -M arcsight.var.elasticsearch.hosts=localhost elastic_port -M arcsight.var.kibana.host= hostvars groups 0 kibana_port with_items logstash_arcsight_event_brokers run_once True register event_broker until event_broker is success retries 5 delay 5

AnsibleTask copy src logstash_kafka_ssl_keystore_location dest /var/lib/logstash/ logstash_kafka_ssl_keystore_location basename

AnsibleTask copy src logstash_kafka_ssl_truststore_location dest /var/lib/logstash/ logstash_kafka_ssl_truststore_location basename

AnsibleTask file path /etc/systemd/system/logstash.service.d state directory group root owner root mode,0755 when ansible_service_mgr

AnsibleTask template src item.src dest item.dest mode,0644 when ansible_service_mgr with_items notify Enable and restart logstash

AnsibleTask set_fact _service_heap_size logstash_heap_size when logstash_heap_size is defined

AnsibleTask template src item.src dest item.dest with_items notify Enable and restart logstash

AnsibleTask file name /opt/logstash/patterns owner logstash group logstash state directory tags logstash-patterns

AnsibleTask template src extras dest /opt/logstash/patterns/extras owner logstash group logstash when logstash_deploy_filters notify Enable and restart logstash tags logstash-filters config

AnsibleTask template src item.src dest item.dest with_items notify Enable and restart logstash tags config

AnsibleTask file path /var/lib/logstash/ owner logstash group logstash recurse True register l_perms until l_perms is success retries 3 delay 1

AnsibleTask file path /var/lib/logstash/tmp state directory owner logstash group logstash mode,0750

AnsibleTask service name metricbeat state metricbeat_service_state enabled True when ansible_service_mgr listen Enable and restart metricbeat

AnsibleTask set_fact ceph_stats_hosts set ceph_stats if ceph_mons is defined and ceph_mons length 0 for mon in ceph_mons set _ ceph_stats.insert loop.index mon :5000 endfor else set ceph_stats ansible_hostname :5000 endif ceph_stats

AnsibleTask set_fact ceph_restapi_listening True when not item.failed default true with_items ceph_restapi_port_check.results

AnsibleTask set_fact ceph_prometheus_listening True when not item.failed default true with_items ceph_prometheus_port_check.results

AnsibleTask set_fact apache_enabled apache2.stat.exists bool or httpd.stat.exists bool ceph_restapi_enabled set ceph_detect false if ceph_restapi_listening is defined if ceph_mons is defined and ceph_mons length 0 and inventory_hostname in groups ceph_metricbeat_group set ceph_detect true else set ceph_detect ceph.stat.exists bool endif endif ceph_detect ceph_prometheus_enabled set ceph_detect false if ceph_prometheus_listening is defined and inventory_hostname in groups ceph_metricbeat_group set ceph_detect true endif ceph_detect docker_enabled docker.stat.exists bool etcd_enabled etcd.stat.exists bool haproxy_enabled haproxy.stat.exists bool kvm_enabled kvm.stat.exists bool memcached_enabled memcached.stat.exists bool mysql_enabled mysql.stat.exists bool nginx_enabled nginx.stat.exists bool rabbitmq_enabled rabbitmq.stat.exists bool uwsgi_enabled uwsgi.stat.exists bool uwsgi_sockets uwsgi_find_sockets

AnsibleTask template src nginx-status.conf.j2 dest metricbeat_nginx_vhost_path /nginx-status.conf register nginx_status when nginx_enabled

AnsibleTask service name nginx state reloaded when nginx_enabled nginx_status is changed

AnsibleTask file path /etc/systemd/system/metricbeat.service.d state directory group root owner root mode,0755 when ansible_service_mgr

AnsibleTask template src item.src dest item.dest mode,0644 when ansible_service_mgr with_items notify Enable and restart metricbeat

AnsibleTask template src item.src dest item.dest mode,0644 with_items notify Enable and restart metricbeat

AnsibleTask service name metricbeat state metricbeat_service_state enabled metricbeat_service_state in when ansible_service_mgr metricbeat_service_state in

AnsibleTask service name packetbeat state packetbeat_service_state enabled True when ansible_service_mgr listen Enable and restart packetbeat

AnsibleTask file path /etc/systemd/system/packetbeat.service.d state directory group root owner root mode,0755 when ansible_service_mgr

AnsibleTask template src item.src dest item.dest mode,0644 when ansible_service_mgr with_items notify Enable and restart packetbeat

AnsibleTask template src item.src dest item.dest mode,0644 with_items notify Enable and restart packetbeat

AnsibleTask service name packetbeat state packetbeat_service_state enabled packetbeat_service_state in when ansible_service_mgr packetbeat_service_state in

AnsibleTask debug msg An existing rollup job was found for index_name In order to re-create this rollup job the old job will need to be purged If you OK with the old rollup job being purged add the following option ` elastic_allow_rollup_purge=yes ` to the command line and rerun the playbook run_once True when check_rollup length 0 not elastic_allow_rollup_purge bool

AnsibleTask become True become_user root command ./bootstrap-embedded-ansible.sh args chdir src/ current_test_repo /elk_metrics_6x

AnsibleTask become True become_user root command HOME /ansible_venv/bin/ansible-galaxy install force ignore-errors roles-path= HOME /ansible_venv/repositories/roles -r ansible-role-requirements.yml args chdir src/ current_test_repo /elk_metrics_6x/tests

AnsibleTask become True become_user root command HOME /ansible_venv/bin/ansible-galaxy install force ignore-errors roles-path= HOME /ansible_venv/repositories/roles -r ansible-role-requirements.yml args chdir src/ current_test_repo /elk_metrics_6x

AnsibleTask become True become_user root command HOME /ansible_venv/bin/ansible-playbook -i inventory_file -e test-vars.yml _key-setup.yml environment ANSIBLE_LOG_PATH /tmp/elk-metrics-6x-logs/ansible-elk-test-container-setup.log args chdir src/ current_test_repo /elk_metrics_6x/tests when ansible_service_mgr or not container_inventory bool

AnsibleTask become True become_user root command HOME /ansible_venv/bin/ansible-playbook -i inventory_file -e test-vars.yml _container-setup.yml environment ANSIBLE_LOG_PATH /tmp/elk-metrics-6x-logs/ansible-elk-test-container-setup.log args chdir src/ current_test_repo /elk_metrics_6x/tests when ansible_service_mgr container_inventory bool

AnsibleTask command sleep 15 changed_when False when ansible_service_mgr

AnsibleTask become True become_user root command HOME /ansible_venv/bin/ansible-playbook -i tests/ inventory_file -e tests/test-vars.yml site.yml environment ANSIBLE_LOG_PATH /tmp/elk-metrics-6x-logs/ansible-elk-test-deployment.log args chdir src/ current_test_repo /elk_metrics_6x

AnsibleTask become True become_user root command HOME /ansible_venv/bin/ansible-playbook -i tests/ inventory_file -e tests/test-vars.yml showElasticCluster.yml environment ANSIBLE_LOG_PATH /tmp/elk-metrics-6x-logs/ansible-elk-test-show-cluster.log args chdir src/ current_test_repo /elk_metrics_6x

AnsibleTask set_fact zuul ansible_env.HOME /elk-test-logs when zuul is not defined

AnsibleTask set_fact current_test_repo opendev.org/ osa_test_repo when osa_test_repo is defined

AnsibleTask set_fact current_test_repo zuul.project.canonical_name when osa_test_repo is not defined

AnsibleTask set_fact container_inventory test_clustered_elk default false bool

AnsibleTask set_fact master_node_count set masters 0 if item int 3 set masters 1 elif item int 3 set masters 3 else set masters item int // 2 if masters int 2 0 set masters masters int 1 endif endif masters with_items storage_node_count register computed_masters

AnsibleTask set_fact masters masters|default item.item item.ansible_facts.master_node_count|int with_items computed_masters.results

AnsibleTask hosts all_containers gather_facts False become True pre_tasks container facts roles post_tasks quotas quota rescan -w /var/lib/machines physical_host

AnsibleTask set_fact nspawn_container_ssh_key _root_ssh_key b64decode

AnsibleTask shell if item dashboards sed -i \\\ index\\\ \\\ elastic_beat_name -\*\\\ \\\ index\\\ \\\ elastic_beat_name \\\ g /usr/share/ elastic_beat_name /kibana/6/dashboard/*.json sed -i id elastic_beat_name \-\* id elastic_beat_name g /usr/share/ elastic_beat_name /kibana/6/index-pattern/*.json endif elastic_beat_name setup if elastic_beat_name heartbeat and item index-management template else item endif elastic_beat_setup_options -e -v with_items elastic_setup_flags register templates environment no_proxy elastic_beat_no_proxy until templates is success retries 5 delay 5 run_once True when ansible_local elastic_beat_name is undefined or not ansible_local elastic_beat_name bool or elk_package_state default latest or elk_beat_setup default false bool and not elastic_beat_name heartbeat and item pipelines tags setup

AnsibleTask template src ilm-policy.json.j2 dest ilm_policy_file_location ilm_policy_filename mode,488 owner root group root

AnsibleTask set_fact journal_paths journal_log_dirs.files map list

AnsibleTask set_fact apache_enabled apache2.stat.exists bool or httpd.stat.exists bool ceph_restapi_enabled set ceph_detect false if ceph_restapi_listening is defined if ceph_mons is defined and ceph_mons length 0 and inventory_hostname in groups ceph_metricbeat_group set ceph_detect true else set ceph_detect ceph.stat.exists bool endif endif ceph_detect ceph_prometheus_enabled set ceph_detect false if ceph_prometheus_listening is defined and inventory_hostname in groups ceph_metricbeat_group set ceph_detect true endif ceph_detect couchdb_enabled False docker_enabled docker.stat.exists bool envoyproxy_enabled False etcd_enabled etcd.stat.exists bool haproxy_enabled ansible_facts.services default default kvm_enabled kvm.stat.exists bool memcached_enabled memcached.stat.exists bool mysql_enabled mysql.stat.exists bool nats_enabled False nginx_enabled nginx.stat.exists bool rabbitmq_enabled rabbitmq.stat.exists bool uwsgi_enabled uwsgi.stat.exists bool uwsgi_sockets uwsgi_find_sockets traefik_enabled False mdmonitor_enabled ansible_facts.services default default }

AnsibleTask copy src gpg/ item.id dest item.file mode,0644 with_items elastic_gpg_keys selectattr list

AnsibleTask become True become_user root command ./bootstrap-embedded-ansible.sh args chdir src/ current_test_repo /elk_metrics_7x

AnsibleTask become True become_user root command HOME /ansible_venv/bin/ansible-galaxy install force ignore-errors roles-path= HOME /ansible_venv/repositories/roles -r ansible-role-requirements.yml args chdir src/ current_test_repo /elk_metrics_7x/tests

AnsibleTask become True become_user root command HOME /ansible_venv/bin/ansible-galaxy install force ignore-errors roles-path= HOME /ansible_venv/repositories/roles -r ansible-role-requirements.yml args chdir src/ current_test_repo /elk_metrics_7x

AnsibleTask become True become_user root command HOME /ansible_venv/bin/ansible-playbook -i inventory_file -e test-vars.yml _key-setup.yml environment ANSIBLE_LOG_PATH /tmp/elk-metrics-7x-logs/ansible-elk-test-container-setup.log args chdir src/ current_test_repo /elk_metrics_7x/tests when ansible_service_mgr or not container_inventory bool

AnsibleTask become True become_user root command HOME /ansible_venv/bin/ansible-playbook -i inventory_file -e test-vars.yml _container-setup.yml environment ANSIBLE_LOG_PATH /tmp/elk-metrics-7x-logs/ansible-elk-test-container-setup.log args chdir src/ current_test_repo /elk_metrics_7x/tests when ansible_service_mgr container_inventory bool

AnsibleTask become True become_user root command HOME /ansible_venv/bin/ansible-playbook -i tests/ inventory_file -e tests/test-vars.yml site.yml environment ANSIBLE_LOG_PATH /tmp/elk-metrics-7x-logs/ansible-elk-test-deployment.log args chdir src/ current_test_repo /elk_metrics_7x

AnsibleTask become True become_user root command HOME /ansible_venv/bin/ansible-playbook -i tests/ inventory_file -e tests/test-vars.yml showElasticCluster.yml environment ANSIBLE_LOG_PATH /tmp/elk-metrics-7x-logs/ansible-elk-test-show-cluster.log args chdir src/ current_test_repo /elk_metrics_7x

AnsibleTask command scripts/log-collect.sh become True become_user root args chdir src/opendev.org/openstack/openstack-ansible-ops environment ZUUL_PROJECT zuul.project.short_name TEST_EXIT_CODE zuul_success lower RUN_ARA true ARA_REPORT_TYPE ara_report_type default WORKING_DIR ansible_user_dir /src/opendev.org/openstack/openstack-ansible-ops/ LOGGING_DIR /tmp/elk-metrics-7x-logs

AnsibleTask command find /etc/openstack_deploy/ansible_facts/ -type f -exec rm

AnsibleTask set_fact in_container True when is_metal is defined and is_metal true or container_name physical_host

AnsibleTask set_fact uses_lvm True when in item.value lower with_dict cinder_backends

AnsibleTask fail msg In order to continue you must perform a manual migration of the cinder volume container container_name to the physical host physical_host The leap upgrade can NOT continue until this task has been accomplished when uses_lvm default false true and in_container default false true

AnsibleTask copy src playbook_dir /db-backup.sh dest /opt/db-backup.sh

AnsibleTask command mysql -e SELECT T.table_schema T.table_name FROM information_schema. ` TABLES ` T information_schema. ` COLLATION_CHARACTER_SET_APPLICABILITY ` CCSA WHERE CCSA.collation_name T.table_collation AND CCSA.CHARACTER_SET_NAME AND CCSA.COLLATION_NAME register utf8_unicode_ci_tables

AnsibleTask command mysql -e SET GLOBAL FOREIGN_KEY_CHECKS 0 when utf8_unicode_ci_tables.stdout_lines length 0

AnsibleTask command mysql -e ALTER TABLE item.split 1 CONVERT TO CHARACTER SET utf8 COLLATE utf8_general_ci item.split 0 with_items utf8_unicode_ci_tables.stdout_lines when item search table_schema \w+\t\w+

AnsibleTask command mysql -e SET GLOBAL FOREIGN_KEY_CHECKS 1 when utf8_unicode_ci_tables.stdout_lines length 0

AnsibleTask command mysql -e SELECT SCHEMA_NAME FROM information_schema.SCHEMATA WHERE DEFAULT_CHARACTER_SET_NAME AND DEFAULT_COLLATION_NAME register utf8_unicode_ci_databases

AnsibleTask command mysql -e ALTER DATABASE item CHARACTER SET utf8 COLLATE utf8_general_ci with_items utf8_unicode_ci_databases.stdout_lines when item search SCHEMA_NAME \w+

AnsibleTask command venv_path /bin/nova-manage db migrate_flavor_data force

AnsibleTask command venv_path /bin/nova-manage db null_instance_uuid_scan delete

AnsibleTask command venv_path /bin/neutron-db-manage config-file neutron_db_config config-file neutron_db_plugin upgrade neutron_db_revision sudo True sudo_user neutron_system_user_name

AnsibleTask shell venv_path /bin/neutron-db-manage history grep -w ID neutron_db_revision register neutron_dbmanage failed_when False changed_when neutron_dbmanage.rc 0 sudo True sudo_user neutron_system_user_name

AnsibleTask command venv_path /bin/neutron-db-manage config-file neutron_db_config config-file neutron_db_plugin stamp neutron_db_revision when neutron_dbmanage.rc 0 sudo True sudo_user neutron_system_user_name

AnsibleTask command mysql unbuffered -sNL -e database horizon_galera_database default register drop_db failed_when False changed_when drop_db.rc 0

AnsibleTask service name neutron-server state stopped pattern neutron-server

AnsibleTask command venv_path /bin/nova-manage db online_data_migrations

AnsibleTask shell mysql -Be ` binary ` ` host ` from services cinder awk if NR =1 print 1 2 args executable /bin/bash changed_when False delegate_to groups 0 register cinder_service_list

AnsibleTask shell venv_path /bin/cinder-manage service remove item args executable /bin/bash with_items cinder_service_list.stdout_lines

AnsibleTask command lxc-destroy force name container_name delegate_to physical_host register destroy failed_when destroy.rc not in 0 1 changed_when destroy.rc 0

AnsibleTask file path item state absent with_items /var/lib/lxc/ container_name /openstack/ container_name /openstack/backup/ container_name /openstack/log/ container_name /var/log/lxc/lxc- container_name .log delegate_to physical_host

AnsibleTask file path item state absent with_items /var/cache/lxc/download /var/cache/lxc/trusty /var/lib/lxc/LXC_NAME delegate_to physical_host

AnsibleTask command lxc-system-manage dnsmasq-stop failed_when False

AnsibleTask command ifdown lxc_net_bridge default failed_when False

AnsibleTask command mysql verbose unbuffered -e desc image_locations_keystone_v3_mig_pre_liberty glance ignore_errors True register glance_backup_existing

AnsibleTask command mysql verbose unbuffered -e create table image_locations_keystone_v3_mig_pre_liberty select from image_locations glance when glance_backup_existing.rc 1 glance_swift_store_auth_version default 3 3

AnsibleTask command mysql verbose unbuffered -e update image_locations set value=replace value keystone_service_port /v2.0/ keystone_service_port /v3/ where value like internal_lb_vip_address keystone_service_port /v2.0/ and glance when glance_swift_store_auth_version default 3 3

AnsibleTask file path /etc/init.d/haproxy mode,493 owner root group root

AnsibleTask file path item.path state absent with_items old_sources.files default

AnsibleTask shell mysql -sNL unbuffered -e SELECT network_id network_type physical_network FROM ml2_network_segments WHERE network_type IN AND network_id IN select id from networks where mtu=0 neutron_galera_database default tr \t register networks

AnsibleTask copy content for item in networks.stdout_lines set network_mtu for pn in provider_networks if not network_mtu if pn is defined and pn item.split -1 and pn is defined if not network_mtu if network_mtu.append pn endif endif Defined network mtu network_mtu item.split -1 endif endif endfor if neutron_network_device_mtu is defined and not network_mtu if not network_mtu if network_mtu.append neutron_network_device_mtu endif endif Global Defined network mtu network_mtu item.split -1 endif if not network_mtu if item.split 1 or item.split 1 if not network_mtu if network_mtu.append endif endif Using standard fallback MTU of 1500 for item.split 1 type network elif item.split 1 if not network_mtu if network_mtu.append endif endif Using gre fallback MTU of 1476 for item.split 1 type network elif item.split 1 or item.split 1 if not network_mtu if network_mtu.append endif endif Using vxlan fallback MTU of 1450 for item.split 1 type network endif endif if network_mtu mysql -sNL unbuffered -e UPDATE networks SET mtu= network_mtu 0 WHERE id= item.split 0 neutron_galera_database default endif { endfor dest /tmp/neutron-mtu-script.sh

AnsibleTask command cat /etc/openstack_deploy/leapfrog_remove_remaining_old_containers run_once True delegate_to localhost register old_containers

AnsibleTask command lxc-destroy -fn item with_items old_containers.stdout_lines ignore_errors True

AnsibleTask shell /root/openrc /opt/neutron-ha-tool.py l3-agent-migrate now insecure /opt/neutron-ha-tool.py replicate-dhcp now insecure args executable /bin/bash when neutron_legacy_ha_tool_enabled default bool

AnsibleTask file dest nova_libvirt_save_path state directory owner nova group nova when not _nova_save_dir.stat.exists bool

AnsibleTask command ls -1 /var/lib/libvirt/qemu/save changed_when False register _qemu_save_items

AnsibleTask shell mv /var/lib/libvirt/qemu/save/ item nova_libvirt_save_path item with_items _qemu_save_items.stdout_lines when _qemu_save_dir.stat.isdir bool _qemu_save_items.stdout_lines length 0

AnsibleTask file dest /var/lib/libvirt/qemu/save state absent when _qemu_save_dir.stat.isdir bool

AnsibleTask file src nova_libvirt_save_path dest /var/lib/libvirt/qemu/save state link owner nova_qemu_user group nova_qemu_group

AnsibleTask file path ansible_env.HOME /.pip/pip.conf state absent

AnsibleTask file path /etc/apt/apt.conf.d/00apt-cacher-proxy state absent

AnsibleTask copy src /opt/leap42/openstack-ansible- release_version /global-requirement-pins.txt dest /tmp/global-requirement-pins.txt

AnsibleTask copy src playbook_dir /../lib/upgrade-requirements.txt dest /tmp/upgrade-requirements.txt

AnsibleTask shell ansible_env.HOME /openrc item.name openrc_insecure |default false |bool |ternary insecure item.list_command awk item.awk_filter print item.awk_print_column register to_disable with_items services args executable /bin/bash

AnsibleTask debug msg We will delete the following item for item.0.item.name item.1 with_subelements to_disable.results stdout_lines

AnsibleTask shell ansible_env.HOME /openrc item.0.item.name openrc_insecure |default false |bool |ternary insecure item.0.item.delete_command item.1 item.0.item.post_command default with_subelements to_disable.results stdout_lines args executable /bin/bash

AnsibleTask shell /openstack/venvs/cinder- openstack_release /bin/activate cinder-manage openrc_insecure |default false |bool |ternary insecure service list awk *XXX/ print 1 2 while read line do cinder-manage openrc_insecure |default false |bool |ternary insecure service remove line done args executable /bin/bash

AnsibleTask shell /openstack/venvs/cinder- openstack_release /bin/activate cinder-manage openrc_insecure |default false |bool |ternary insecure service list awk *XXX/ print 2 while IFS= read cinderhost cinderbackend do cinder-manage openrc_insecure |default false |bool |ternary insecure volume update_host currenthost cinderhost cinderbackend newhost cinderhost//_/- cinderbackend done args executable /bin/bash

AnsibleTask shell ansible_env.HOME /openrc neutron openrc_insecure |default false |bool |ternary insecure port-list -c id -c device_owner -c binding host_id -c status -c network_id -f value sort -k 5 -k 4 -r awk *BUILD/ net= 5 /dhcp *ACTIVE/ if net== 5 print 1 while read portid do neutron openrc_insecure |default false |bool |ternary insecure port-update admin-state-up False portid sleep 1 neutron openrc_insecure |default false |bool |ternary insecure port-delete portid done args executable /bin/bash

AnsibleTask shell for i in ls /etc/init /etc/init.d grep item do service i .conf stop || true done with_items trove sahara barbican magnum ironic gnocchi designate aodh ceilometer horizon heat neutron nova cinder glance keystone apache failed_when False args executable /bin/bash

AnsibleTask shell for i in ls /etc/init /etc/init.d grep swift do service i .conf stop || true done failed_when False args executable /bin/bash when not lookup bool

AnsibleTask command virtualenv-tools update-path=auto /opt/ file_name.split 0

AnsibleTask command ls -1 /etc/network/interfaces.d/ register interface_files failed_when False

AnsibleTask file path /etc/network/interfaces.d/ item state absent with_items interface_files.stdout_lines failed_when False

AnsibleTask file path item state absent with_items /var/cache/lxc_trusty.tgz /var/cache/lxc/rpc-trusty-container.tgz

AnsibleTask shell if -h /var/log/ item -d /var/log/ item then mv /var/log/ item /openstack/log/ inventory_hostname item ln -s /openstack/log/ inventory_hostname item /var/log/ item else Exit 99 when nothing found to change exit 99 fi failed_when False changed_when log_change.rc 0 register log_change with_items cinder glance heat horizon keystone nova neutron swift

AnsibleTask command find /etc/logrotate.d -type f -name register log_rotate

AnsibleTask file path item state absent with_items log_rotate.stdout_lines

AnsibleTask shell UBUNTU_RELEASE= lsb_release -sc UBUNTU_REPO= awk /^deb .*ubuntu\/ UBUNTU_RELEASE main/ print 2 exit /etc/apt/sources.list UBUNTU_BACKPORTS= deb UBUNTU_REPO UBUNTU_RELEASE -backports main restricted universe multiverse if grep UBUNTU_BACKPORTS /etc/apt/sources.list then echo UBUNTU_BACKPORTS tee -a /etc/apt/sources.list apt-get update else exit 1 fi environment PATH /usr/local/sbin /usr/local/bin /usr/sbin /usr/bin /sbin /bin /usr/games /usr/local/games changed_when repo_updates.rc 0 failed_when False register repo_updates

AnsibleTask file path item owner swift_system_user_name group swift_system_group_name state directory with_items /etc/swift /etc/swift/ring_build_files

AnsibleTask copy src item dest /etc/swift/ring_build_files/ mode,0644 owner swift_system_user_name group swift_system_group_name with_fileglob /etc/swift/rings/*.ring.gz /etc/swift/rings/*.builder when inventory_hostname groups 0

AnsibleTask shell grep a-zA-Z osa_playbook_dir /etc/openstack_deploy/user_secrets.yml register secrets

AnsibleTask shell if grep item /etc/openstack_deploy/user_secrets.yml then echo item tee -a /etc/openstack_deploy/user_secrets.yml fi with_items secrets.stdout_lines

AnsibleTask shell osa_playbook_dir /scripts/pw-token-gen.py file /etc/openstack_deploy/user_secrets.yml

AnsibleTask copy src /etc/openstack_deploy/ dest /etc/openstack_deploy.KILO/ force False

AnsibleTask copy src repo_root_dir /etc/openstack_deploy/env.d/ item .yml dest /etc/openstack_deploy/env.d/ item .yml force False with_items aodh haproxy

AnsibleTask command playbook_dir /../scripts/add_new_neutron_env.py repo_root_dir args creates /etc/openstack_deploy.KILO/NEUTRON_MIGRATED

AnsibleTask command playbook_dir /../scripts/fix_ceilometer_env.py args creates /etc/openstack_deploy.KILO/CEILOMETER_MIGRATED

AnsibleTask command playbook_dir /../scripts/migrate_openstack_vars.py item item basename -4 args creates /etc/openstack_deploy.KILO/VARS_MIGRATED_ item basename -4 with_fileglob /etc/openstack_deploy/user_*.yml

AnsibleTask shell sed -i .*maria */d /etc/apt/sources.list.d/* ignore_errors True

AnsibleTask shell echo nc awk print 2 /etc/memcached.conf awk print 2 /etc/memcached.conf

AnsibleTask copy src /etc/openstack_deploy/ dest /etc/openstack_deploy.LIBERTY/ force False

AnsibleTask copy src repo_root_dir /etc/openstack_deploy/env.d/ item .yml dest /etc/openstack_deploy/env.d/ item .yml force False with_items ironic

AnsibleTask command playbook_dir /../scripts/migrate_openstack_vars.py item item basename -4 args creates /etc/openstack_deploy.LIBERTY/VARS_MIGRATED_ item basename -4 with_fileglob /etc/openstack_deploy/user_*.yml

AnsibleTask command mysql verbose unbuffered -e delete from service where host like \_ heat failed_when False

AnsibleTask file path /etc/init/aodh-api.conf state absent when pid1_name init

AnsibleTask command initctl reload-configuration when pid1_name init

AnsibleTask file path /etc/systemd/system/aodh-api.service when pid1_name systemd

AnsibleTask command systemctl daemon-reload when pid1_name systemd

AnsibleTask service name ceilometer-api state stopped enabled False

AnsibleTask file path /etc/init/ceilometer-api.conf state absent when pid1_name init

AnsibleTask file path /etc/systemd/system/ceilometer-api.service when pid1_name systemd

AnsibleTask copy src /etc/openstack_deploy/ dest /etc/openstack_deploy.NEWTON/ force False

AnsibleTask shell rsync -avun repo_root_dir /playbooks/inventory/env.d/ /etc/openstack_deploy/env.d/ grep yml failed_when False register diff_result

AnsibleTask copy src repo_root_dir /playbooks/inventory/env.d/ item dest /etc/openstack_deploy/env.d/ item force False with_items diff_result.stdout_lines when diff_result.stdout

AnsibleTask debug msg= All new env.d files are placed in the stock repo No new changes when diff_result.stdout

AnsibleTask command playbook_dir /../scripts/migrate_openstack_vars.py item item basename -4 args creates /etc/openstack_deploy.NEWTON/VARS_MIGRATED_ item basename -4 with_fileglob /etc/openstack_deploy/user_*.yml

AnsibleTask fail msg LBaaS v1 has been removed from OpenStack in Newton and there is no migration path for it Please implement LBaaS v2 https //docs.openstack.org/openstack-ansible-os_neutron/latest/configure-network-services.html special-notes-about-lbaas when neutron_lbaas is defined and neutron_lbaas bool

AnsibleTask shell echo nc awk print 2 /etc/memcached.conf awk -F print 1 awk print 2 /etc/memcached.conf

AnsibleTask shell grep a-zA-Z /etc/openstack_deploy/ _osa_secrets_file_name register user_secrets

AnsibleTask shell osa_playbook_dir /scripts/pw-token-gen.py file /etc/openstack_deploy/ _osa_secrets_file_name

AnsibleTask file path /var/www/pkg-cache state directory owner apt-cacher-ng group www-data mode,02775

AnsibleTask file path /var/cache/apt-cacher-ng state absent when acs.stat.isdir is defined and acs.stat.isdir

AnsibleTask file src /var/www/pkg-cache dest /var/cache/apt-cacher-ng state link

AnsibleTask shell curl https //www.centos.org/download/full-mirrorlist.csv sed http /http sed // grep ^http /etc/apt-cacher-ng/centos_mirrors echo http //mirror.centos.org/centos/ /etc/apt-cacher-ng/centos_mirrors

AnsibleTask copy dest /etc/apt-cacher-ng/backends_ubuntu mode,420 owner root group root content http //archive.ubuntu.com/ubuntu/ notify reload acng

AnsibleTask template src pxe/acng.conf.j2 dest /etc/apt-cacher-ng/acng.conf notify reload acng

AnsibleTask service name item enabled True with_items mnaio_dhcp_distro_packages

AnsibleTask template src dhcp/dhcpd.conf.j2 dest /etc/dhcp/dhcpd.conf mode,420 owner root group root notify restart dhcpd

AnsibleTask template src dhcp/isc-dhcp-server dest /etc/default/isc-dhcp-server mode,420 owner root group root notify restart dhcpd

AnsibleTask command item args chdir /opt/openstack-ansible-ops/elk_metrics_6x with_items tmux attach -t build-osa tmux select-pane -t 0 tmux send-keys cd /opt/openstack-ansible-ops/elk_metrics_6x C-m tmux send-keys openstack-ansible site.yml C-m when inventory_hostname groups 0 run_elk default false bool

AnsibleTask debug msg ELK deploy running To check on the state of this deployment login to the groups 0 VM and attach to the build-osa tmux session when run_elk default false bool

AnsibleTask file path /etc/openstack_deploy state directory owner root group root mode,0755 when pre_config_osa default true bool

AnsibleTask file path /etc/openstack_deploy/group_vars state directory owner root group root mode,0755 when pre_config_osa default true bool

AnsibleTask shell rsync -av /opt/openstack-ansible/etc/openstack_deploy/ /etc/openstack_deploy/ args executable /bin/bash chdir /opt/openstack-ansible warn False when pre_config_osa default true bool

AnsibleTask 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

AnsibleTask 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

AnsibleTask template src osa/user_unserial_variables.yml dest /etc/openstack_deploy/user_unserial_variables.yml mode,0644 owner root group root when pre_config_osa default true bool osa_disable_serial default false bool

AnsibleTask template src osa/ovs_network_hosts_group.yml dest /etc/openstack_deploy/group_vars/network_hosts mode,0644 owner root group root when pre_config_osa default true bool osa_enable_networking_ovn default false bool

AnsibleTask template src osa/neutron-ovn-envd.yml dest /etc/openstack_deploy/env.d/neutron.yml mode,0644 owner root group root when pre_config_osa default true bool osa_enable_networking_ovn default false bool

AnsibleTask template src osa/nova-ovn-envd.yml dest /etc/openstack_deploy/env.d/nova.yml mode,0644 owner root group root when pre_config_osa default true bool osa_enable_networking_ovn default false bool

AnsibleTask template src osa/elk-envd.yml dest /etc/openstack_deploy/env.d/elk.yml mode,0644 owner root group root when pre_config_osa default true bool osa_enable_elk_metrics default false bool

AnsibleTask template src osa/elk-confd.yml dest /etc/openstack_deploy/conf.d/elk.yml mode,0644 owner root group root when pre_config_osa default true bool osa_enable_elk_metrics default false bool

AnsibleTask command bash ./scripts/bootstrap-ansible.sh args chdir /opt/openstack-ansible when run_osa default true bool

AnsibleTask command ./scripts/pw-token-gen.py file /etc/openstack_deploy/user_secrets.yml args chdir /opt/openstack-ansible when run_osa default true bool

AnsibleTask 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-hosts.yml setup-infrastructure.yml setup-openstack.yml C-m when inventory_hostname groups 0 run_osa default true bool

AnsibleTask debug msg OSA deploy running To check on the state of this deployment login to the groups 0 VM and attach to the build-osa tmux session when run_osa default true bool

AnsibleTask file path item state directory owner root group root mode,0755 with_items /var/www/pxe /var/www/pxe/configs /var/www/pxe/images /var/www/pxe/networking /var/www/pxe/scripts /var/www/pxe/templates /var/lib/tftpboot /var/lib/tftpboot/ipxe

AnsibleTask command cat /root/.ssh/id_rsa.pub register public_key_get changed_when False when tftp_ssh_key is undefined

AnsibleTask set_fact tftp_ssh_key public_key_get.stdout when tftp_ssh_key is undefined

AnsibleTask copy src pxe/sites-enabled.default dest /etc/nginx/sites-enabled/default mode,0644 owner root group root notify restart nginx

AnsibleTask template src pxe/tftp/tftp-hpa dest /etc/default/tftpd-hpa mode,0644 owner root group root notify restart tftp-hpa

AnsibleTask template src pxe/tftp/boot.ipxe.j2 dest /var/lib/tftpboot/boot.ipxe mode,0644 owner root group root

AnsibleTask template src pxe/configs/eni/vm-bridges.cfg.j2 dest /var/www/pxe/networking/ hostvars item -bridges.cfg mode,0644 owner root group root with_items groups when network_setup lower eni

AnsibleTask template src pxe/configs/eni/ item.src dest /var/www/pxe/ item.dir item.dest mode,0644 owner root group root with_items when network_setup lower eni

AnsibleTask template src pxe/configs/systemd-networkd/systemd-network.sh.j2 dest /var/www/pxe/networking/ hostvars item -systemd-network.sh mode,0644 owner root group root with_items groups when network_setup lower systemd-networkd

AnsibleTask template src pxe/configs/systemd-networkd/systemd-networkd-post-network-script.sh.j2 dest /var/www/pxe/scripts/vm-post-network-script.sh mode,0644 owner root group root with_items groups when network_setup lower systemd-networkd

AnsibleTask template src pxe/configs/debian/vm-post-install-script.sh.j2 dest /var/www/pxe/scripts/vm-post-install-debian-script.sh mode,0644 owner root group root with_items groups when images default_vm_image lower debian

AnsibleTask template src pxe/configs/redhat/vm-post-install-script.sh.j2 dest /var/www/pxe/scripts/vm-post-install-redhat-script.sh mode,0644 owner root group root with_items groups when images default_vm_image lower redhat

AnsibleTask template src pxe/tftp/boot.ipxe.macaddr.j2 dest /var/lib/tftpboot/ipxe/ hostvars item replace lower mode,0644 owner root group root with_items groups

AnsibleTask template src pxe/configs/ images default_vm_image lower /vm.config.j2 dest /var/www/pxe/configs/vm.config mode,0644 owner root group root with_dict images

AnsibleTask template src pxe/configs/ images default_vm_image lower /vm-compute.config.j2 dest /var/www/pxe/configs/vm-compute.config mode,0644 owner root group root with_dict images

AnsibleTask file dest item mode u=rwX g=rX o=rX recurse True with_items /var/lib/tftpboot /var/www/pxe

AnsibleTask file path _virt_pools.pools.default.path default item .img state absent with_items _virt_list.list_vms

AnsibleTask file path item.path state absent with_items _base_images.files when not vm_use_snapshot bool

AnsibleTask command qemu-img create -f qcow2 if hostvars item bool -b hostvars item .pools.default.path default server_hostname -base.img endif hostvars item .pools.default.path default server_hostname .img default_vm_storage m when server_vm default false bool delegate_to item with_items groups

AnsibleTask copy content item.1.get_xml dest /etc/libvirt/qemu/ item.1.item .xml when server_vm default false bool delegate_to item.0 with_nested groups vm_xml.results

AnsibleTask copy src item.src dest item.dest mode,0600 with_items lookup /.ssh/id_rsa lookup /.ssh/id_rsa.pub

AnsibleTask file path /etc/network/interfaces attr when ansible_distribution lower ubuntu ansible_distribution_release lower trusty

AnsibleTask set_fact _force_format_disks _remove_mounts is changed or _remove_lvs is changed

AnsibleTask set_fact _manifest_content _manifest_file.content from_json

AnsibleTask copy content for item in _manifest_content.files manifest_url regex_replace ^/ item.path basename dir= item.path dirname checksum=sha-1= item.checksum endfor dest /tmp/aria2c.input

AnsibleTask command aria2c input-file=/tmp/aria2c.input log= aria2c_log_path /aria2c.log aria2c_parameters register _download_artifacts until _download_artifacts is success retries 3 delay 30

AnsibleTask shell source openrc openstack security group list -f yaml awk print 2 args executable /bin/bash register sec_groups tags create_networks

AnsibleTask command virsh domstate item register _vm_shutdown until _vm_shutdown.stdout.find off -1 retries 5 delay 60 with_items _virt_list.list_vms

AnsibleTask shell if -e item .img then if -e item -base.img then qemu-img commit item .img else qemu-img convert -O qcow2 -c item .img item -base.img qemu-img create -f qcow2 -b item -base.img item .img fi exit 2 fi args executable /bin/bash chdir _virt_pools.pools.default.path default with_items _virt_list.list_vms register _save_disk_image changed_when _save_disk_image.rc 2 failed_when _save_disk_image.rc not in 0 2

AnsibleTask copy src /etc/libvirt/qemu/ item .xml dest _virt_pools.pools.default.path default remote_src True with_items _virt_list.list_vms

AnsibleTask command git rev-parse HEAD args chdir playbook_dir register _repo_sha changed_when False

AnsibleTask shell pip disable-pip-version-check freeze pip-requirements.txt args executable /bin/bash chdir _virt_pools.pools.default.path default changed_when False

AnsibleTask set_fact _manifest_content _repo_sha.stdout _manifest_files.files json_query path path checksum checksum sort

AnsibleTask copy content _manifest_content to_nice_json dest _virt_pools.pools.default.path default /manifest.json

AnsibleTask shell guestfish version awk print 2 changed_when False register _libguestfs_version

AnsibleTask shell set -e if -e TEST_FILE_PATH || grep -q dash TEST_FILE_PATH then echo dash TEST_FILE_PATH rm -rf /var/tmp/.guestfs* exit 2 fi args executable /bin/bash when _libguestfs_version.stdout is version 1.38.1 or _libguestfs_version.stdout is version 1.39.0 and _libguestfs_version.stdout is version 1.39.1 register _libguestfs_fix changed_when _libguestfs_fix.rc 2 failed_when _libguestfs_fix.rc not in 0 2

AnsibleTask shell set -e INTEL_NESTED=/sys/module/kvm_intel/parameters/nested if grep -q kvm_intel /proc/modules then echo Intel CPU found Checking for nested virtualization capabilities if -f INTEL_NESTED then echo Nested virtualization capability found Checking if it is enabled v= cat INTEL_NESTED if x v xY then echo Nested virtualization not enabled Enabling it now rmmod kvm_intel modprobe kvm_intel exit 2 else echo Nested virtualization already enabled fi else echo Nested virtualization capability not found exit 3 fi else echo Intel CPU not found exit 3 fi args executable /bin/bash register _enable_nested_virt changed_when _enable_nested_virt.rc 2 failed_when _enable_nested_virt.rc not in 0 2 3

AnsibleTask file path /root/.ssh state directory owner root group root mode,448

AnsibleTask command cat /root/.ssh/id_rsa.pub register public_key_get changed_when False

AnsibleTask shell if iptables -w -t item.table -C item.rule then iptables -w -t item.table -I item.rule fi with_items -s 10.0.2.0/22 -d 10.0.2.0/22 -j MASQUERADE -s 10.0.2.0/22 -o vm-br-dhcp -p udp -m udp dport 68 -j CHECKSUM checksum-fill -s 10.0.2.0/22 -o vm-br-dhcp -p udp -m udp dport 68 -j CHECKSUM checksum-fill

AnsibleTask shell if iptables -w -t nat -C PREROUTING -p tcp -d ansible_default_ipv4.address dport item.host_port -j DNAT to item.vm_ip item.vm_port then iptables -w -t nat -I PREROUTING -p tcp -d ansible_default_ipv4.address dport item.host_port -j DNAT to item.vm_ip item.vm_port fi with_items mnaio_host_iptables_prerouting_ports when config_prerouting default false bool

AnsibleTask service name mnaio_host_iptables_service state started enabled True when ansible_distribution lower

AnsibleTask template src mnaio_host/systemd-networkd-bridges-netdev.j2 dest /etc/systemd/network/ item.value.iface .netdev mode,0644 owner root group root with_dict mnaio_host_networks register mnaio_bridges

AnsibleTask template src mnaio_host/systemd-networkd-bridges-network.j2 dest /etc/systemd/network/ item.value.iface .network mode,0644 owner root group root with_dict mnaio_host_networks register mnaio_bridges

AnsibleTask file path /data/images owner root group root mode,0755 state directory

AnsibleTask shell for mod in find /lib/modules/ uname -r -type f -name do module= echo basename mod sed modprobe module if grep module /etc/modules then echo module tee -a /etc/modules fi done

AnsibleTask command virsh capabilities register virsh_caps until guest in virsh_caps.stdout retries 6 delay 10

AnsibleTask set_fact networking_system systemd-networkd when ansible_distribution_major_version is version

AnsibleTask set_fact networking_system eni when ansible_distribution_major_version is version

AnsibleTask template src pxe/configs/ ansible_os_family lower /systemd-networkd-bridges-netdev.j2 dest /tmp/ item.value.iface .netdev mode,0644 owner root group root with_dict mnaio_host_networks register mnaio_bridges

AnsibleTask template src pxe/configs/ ansible_os_family lower /systemd-networkd-bridges-network.j2 dest /tmp/ item.value.iface .network mode,0644 owner root group root with_dict mnaio_host_networks register mnaio_bridges

AnsibleTask hosts kolide-fleet_all become True vars_files vars/variables.yml environment deployment_environment_variables default gather_facts osa_gather_facts default True pre_tasks for kolide db password DB password for the Kolide Fleet cluster is not defined To proceed with this installation define the variable ` kolide_fleet_db_password ` in line or within a variable file is undefined for kolide shared key shared token for the Kolide Fleet cluster is not defined To proceed with this installation define the variable ` kolide_fleet_jwt_key ` in line or within a variable file is undefined for kolide admin password admin password for the Kolide Fleet cluster is not defined To proceed with this installation define the variable ` kolide_fleet_admin_password ` in line or within a variable file is undefined roles

AnsibleTask file path item state directory with_items /etc/osquery

AnsibleTask command /usr/local/bin/fleetctl get enroll-secret changed_when False register _enrollment_token

AnsibleTask set_fact kolide_fleet_enroll_secret _enrollment_token.stdout

AnsibleTask copy dest osquery_enroll_secret_file content kolide_fleet_enroll_secret mode,0640

AnsibleTask hosts osquery_all become True vars_files vars/variables.yml environment deployment_environment_variables default gather_facts osa_gather_facts default True pre_tasks osquery dir item certifactes over item.src item.dest kolide_fleet_ssl_cert kolide_fleet_ssl_cert basename kolide_fleet_ssl_key kolide_fleet_ssl_key basename osquery_enroll_secret_file osquery_enroll_secret_file basename post_tasks certifactes item True kolide_fleet_ssl_cert basename kolide_fleet_ssl_key basename osquery_enroll_secret_file basename roles

AnsibleTask set_fact osquery_packs _osquery_packs.files map list

AnsibleTask shell /usr/local/bin/fleetctl convert -f item /tmp/ item basename .yaml with_items osquery_packs

AnsibleTask shell /usr/local/bin/fleetctl apply -f /tmp/ item basename .yaml with_items osquery_packs

AnsibleTask file dest item state absent delegate_to localhost with_items /tmp/ kolide_fleet_ssl_cert basename /tmp/ kolide_fleet_ssl_key basename /tmp/ kolide_fleet_ssl_csr basename

AnsibleTask command /usr/local/bin/fleet prepare db config=/etc/fleet/fleet_config.yml no-prompt changed_when False run_once True register _fleetctl_db_task until _fleetctl_db_task is success retries 3 delay 2

AnsibleTask command /usr/local/bin/fleetctl config set address https //127.0.0.1 kolide_fleet_port tls-skip-verify changed_when False register _fleetctl_set_task until _fleetctl_set_task is success retries 3 delay 2

AnsibleTask command /usr/local/bin/fleetctl setup email kolide_fleet_admin_email password kolide_fleet_admin_password register fleet_register_admin changed_when fleet_register_admin.rc 0 failed_when fleet_register_admin.rc not in 0 1 until fleet_register_admin is success retries 3 delay 2

AnsibleTask command /usr/local/bin/fleetctl login email kolide_fleet_admin_email password kolide_fleet_admin_password changed_when False register _fleetctl_login_task until _fleetctl_login_task is success retries 3 delay 2

AnsibleTask file path item state directory with_items /etc/fleet /etc/fleet/ssl /etc/ssl/private

AnsibleTask template src templates/fleet_config.yml.j2 dest /etc/fleet/fleet_config.yml notify Restart kolide systemd tags fleet_config

AnsibleTask file path /tmp/fleet_ kolide_fleet_version state directory

AnsibleTask copy src /tmp/fleet_ kolide_fleet_version /linux/ item dest /usr/local/bin/ mode,0755 owner root group root remote_src True with_items fleet fleetctl

AnsibleTask template src kolide-fleet-proxy.socket.j2 dest /etc/systemd/system/kolide-fleet-proxy.socket notify Restart kolide systemd

AnsibleTask template src kolide-fleet-proxy.service.j2 dest /etc/systemd/system/kolide-fleet-proxy.service notify Restart kolide systemd

AnsibleTask copy src kolide_fleet_user_ssl_cert dest kolide_fleet_ssl_cert owner root group root mode,0644 when kolide_fleet_user_ssl_cert is defined tags fleet-ssl

AnsibleTask copy src kolide_fleet_user_ssl_key dest kolide_fleet_ssl_key owner root group root mode,0640 when kolide_fleet_user_ssl_key is defined tags fleet-ssl

AnsibleTask copy src kolide_fleet_user_ssl_ca_cert dest kolide_fleet_ssl_ca_cert owner root group root mode,0644 when kolide_fleet_user_ssl_ca_cert is defined tags fleet-ssl

AnsibleTask file dest item state absent when kolide_fleet_ssl_key_purge bool with_items kolide_fleet_ssl_cert kolide_fleet_ssl_key kolide_fleet_ssl_pem kolide_fleet_ssl_ca_cert

AnsibleTask copy src item.src dest item.dest with_items kolide_fleet_ssl_csr kolide_fleet_ssl_csr basename kolide_fleet_ssl_cert kolide_fleet_ssl_cert basename kolide_fleet_ssl_key kolide_fleet_ssl_key basename when inventory_hostname groups 0 groups length 1

AnsibleTask file dest /var/log/osquery state directory mode varlog_mode group varlog_group

AnsibleTask template src item .conf.j2 dest /usr/share/osquery/packs/ item basename .conf backup True with_items osquery_upload_packs notify restart osquery

AnsibleTask template src osquery.conf.j2 dest /etc/osquery/osquery.conf mode,0644 backup True validate osqueryi config_path s config_check verbose notify restart osquery

AnsibleTask template src osquery.flags.j2 dest /etc/osquery/osquery.flags mode,0644 backup True notify restart osquery

AnsibleTask command osqueryi config_path /etc/osquery/osquery.conf config_check verbose changed_when False register confcheck failed_when in confcheck.stdout or in confcheck.stdout

AnsibleTask copy src logrotate-osquery dest /etc/logrotate.d/osquery mode,0644 backup True

AnsibleTask become True become_user root command ./bootstrap-embedded-ansible.sh args chdir src/ current_test_repo /osquery

AnsibleTask become True become_user root command HOME /ansible_venv/bin/ansible-galaxy install force ignore-errors roles-path= HOME /ansible_venv/repositories/roles -r ansible-role-requirements.yml args chdir src/ current_test_repo /osquery/tests

AnsibleTask become True become_user root command HOME /ansible_venv/bin/ansible-galaxy install force ignore-errors roles-path= HOME /ansible_venv/repositories/roles -r ansible-role-requirements.yml args chdir src/ current_test_repo /osquery

AnsibleTask become True become_user root command HOME /ansible_venv/bin/ansible-playbook -i inventory_file -e test-vars.yml _key-setup.yml environment ANSIBLE_LOG_PATH /tmp/osquery-logs/ansible-osquery-test-container-setup.log args chdir src/ current_test_repo /osquery/tests when ansible_service_mgr or not container_inventory bool

AnsibleTask become True become_user root command HOME /ansible_venv/bin/ansible-playbook -i inventory_file -e test-vars.yml _container-setup.yml environment ANSIBLE_LOG_PATH /tmp/osquery-logs/ansible-osquery-test-container-setup.log args chdir src/ current_test_repo /osquery/tests when ansible_service_mgr container_inventory bool

AnsibleTask become True become_user root command HOME /ansible_venv/bin/ansible-playbook -i tests/ inventory_file -e tests/test-vars.yml site.yml environment ANSIBLE_LOG_PATH /tmp/osquery-logs/ansible-osquery-test-deployment.log args chdir src/ current_test_repo /osquery

AnsibleTask set_fact container_inventory test_clustered_kolide default false bool

AnsibleTask template src templates/dhcp/dhcpd.conf.j2 dest /etc/dhcp/dhcpd.conf mode,420 owner root group root notify restart dhcpd

AnsibleTask template src templates/dhcp/isc-dhcp-server.j2 dest /etc/default/isc-dhcp-server mode,420 owner root group root notify restart dhcpd

AnsibleTask copy src templates/pxe/sites-enabled.default.j2 dest /etc/nginx/sites-enabled/default mode,0644 owner root group root notify restart nginx

AnsibleTask copy src templates/pxe/tftp/tftp-hpa.j2 dest /etc/default/tftpd-hpa mode,0644 owner root group root notify restart tftp-hpa

AnsibleTask copy src templates/pxe/tftp/inetd.conf.j2 dest /etc/default/tftpd-hpa mode,0644 owner root group root notify restart tftp-hpa

AnsibleTask file path /var/www/pxe/images/ item.value.image_short_name state absent with_dict default_images

AnsibleTask file path /var/www/pxe/images/ item.value.image_short_name state directory owner root group root mode,0755 with_dict default_images

AnsibleTask command 7z x /var/www/pxe/iso/ item.value.image_name args chdir /var/www/pxe/images/ item.value.image_short_name with_dict default_images

AnsibleTask file path /var/www/pxe/ default_pxelinux_short_name state absent

AnsibleTask command tar -xf /var/www/pxe/ default_pxelinux_name args chdir /var/www/pxe

AnsibleTask copy src templates/pxe/tftp/pxelinux.cfg.default.j2 dest item mode,0644 owner root group root with_items /var/lib/tftpboot/pxelinux.cfg/default /var/lib/tftpboot/boot-screens/syslinux.cfg

AnsibleTask shell ln -f /var/www/pxe/ default_pxelinux_short_name /bios/com32/elflink/ldlinux/ldlinux.c32 /var/lib/tftpboot/ldlinux.c32 ln -f /var/www/pxe/ default_pxelinux_short_name /bios/core/pxelinux.0 /var/lib/tftpboot/pxelinux.0 ln -f /var/www/pxe/ default_pxelinux_short_name /bios/com32/lib/libcom32.c32 /var/lib/tftpboot/boot-screens/libcom32.c32 ln -f /var/www/pxe/ default_pxelinux_short_name /bios/com32/libutil/libutil.c32 /var/lib/tftpboot/boot-screens/libutil.c32 ln -f /var/www/pxe/ default_pxelinux_short_name /bios/com32/menu/vesamenu.c32 /var/lib/tftpboot/boot-screens/vesamenu.c32

AnsibleTask template src templates/pxe/tftp/menu.cfg.j2 dest /var/lib/tftpboot/boot-screens/menu.cfg mode,0644 owner root group root

AnsibleTask template src templates/pxe/tftp/tftp-hpa.j2 dest /etc/default/tftpd-hpa mode,0644 owner root group root notify restart tftp-hpa

AnsibleTask template src templates/pxe/tftp/pxelinux.cfg.macaddr.j2 dest /var/lib/tftpboot/pxelinux.cfg/01- hostvars item replace upper mode,0644 owner root group root with_items groups

AnsibleTask template src templates/pxe/ item.value.image_type item.value.image_preseed -post-install-script.sh.j2 dest /var/www/pxe/scripts/ item.value.image_preseed -post-install-script.sh mode,0644 owner root group root with_dict default_images

AnsibleTask template src templates/pxe/ item.value.image_type item.value.image_preseed .preseed.j2 dest /var/lib/tftpboot/preseed/ item.value.image_preseed .preseed mode,0644 owner root group root with_dict default_images

AnsibleTask file path /var/lib/tftpboot/ item.value.image_short_name state directory owner root group root mode,0755 with_dict default_images

AnsibleTask shell Fix perms if needed find /var/lib/tftpboot -type d -exec chmod 0755 find /var/lib/tftpboot -type f -exec chmod 0644 find /var/www/pxe -type d -exec chmod 0755

AnsibleTask fail msg racadm command is not found when not racadm_command.stat.exists tags always

AnsibleTask command racadm config -g cfgServerInfo -o cfgServerBootOnce 0 register command until command is success retries 2 delay 2 tags cfgServerFirstBootDevice

AnsibleTask command racadm config -g cfgServerInfo -o cfgServerFirstBootDevice HDD register command until command is success retries 2 delay 2 tags cfgServerFirstBootDevice

AnsibleTask command racadm config -g cfgServerInfo -o cfgServerBootOnce 1 register command until command is success retries 2 delay 2 tags cfgServerBootOnce

AnsibleTask command racadm config -g cfgServerInfo -o cfgServerFirstBootDevice PXE register command until command is success retries 2 delay 2 tags cfgServerBootOnce

AnsibleTask command racadm config -g cfgLanNetworking -o cfgNicEnable 1 register command until command is success retries 2 delay 2 tags cfgNicEnable

AnsibleTask command racadm config -g cfgLanNetworking -o cfgNicIPv4Enable 1 register command until command is success retries 2 delay 2 tags cfgNicIPv4Enable

AnsibleTask command racadm config -g cfgLanNetworking -o cfgNicUseDhcp 0 register command until command is success retries 2 delay 2 tags cfgNicUseDhcp

AnsibleTask command racadm config -g cfgLanNetworking -o cfgNicVLanEnable 0 register command until command is success retries 2 delay 2 tags cfgNicVLanEnable

AnsibleTask command racadm config -g cfgLanNetworking -o cfgNicVLanID 1 register command until command is success retries 2 delay 2 tags cfgNicVLanID

AnsibleTask command racadm config -g cfgLanNetworking -o cfgNicVLanPriority 0 register command until command is success retries 2 delay 2 tags cfgNicVLanPriority

AnsibleTask command racadm config -g cfgLanNetworking -o cfgNicSelection 2 register command until command is success retries 2 delay 2 tags cfgNicSelection

AnsibleTask command racadm config -g cfgLanNetworking -o cfgDNSServersFromDHCP 0 register command until command is success retries 2 delay 2 tags cfgDNSServersFromDHCP

AnsibleTask command racadm config -g cfgLanNetworking -o cfgDNSRacName server_hostname register command until command is success retries 2 delay 2 tags cfgDNSRacName

AnsibleTask command racadm config -g cfgLanNetworking -o cfgNicIpAddress server_obm_ip register command until command is success retries 2 delay 2 tags cfgNicIpAddress

AnsibleTask command racadm config -g cfgLanNetworking -o cfgDNSServer1 server_gateway register command until command is success retries 2 delay 2 tags cfgDNSServer1

AnsibleTask command racadm config -g cfgLanNetworking -o cfgDNSServer2 server_dns register command until command is success retries 2 delay 2 tags cfgDNSServer2

AnsibleTask command racadm config -g cfgLanNetworking -o cfgNicNetmask server_netmask register command until command is success retries 2 delay 2 tags cfgNicNetmask

AnsibleTask command racadm config -g cfgLanNetworking -o cfgNicGateway server_gateway register command until command is success retries 2 delay 2 tags cfgNicGateway

AnsibleTask command racadm config -g cfgLanNetworking -o cfgDNSDomainName server_domain_name register command until command is success retries 2 delay 2 tags cfgDNSDomainName

AnsibleTask command racadm config -g cfgLanNetworking -o cfgDNSDomainNameFromDHCP 0 register command until command is success retries 2 delay 2 tags cfgDNSDomainNameFromDHCP

AnsibleTask command racadm config -g cfgLanNetworking -o cfgDNSRegisterRac 0 register command until command is success retries 2 delay 2 tags cfgDNSRegisterRac

AnsibleTask command racadm config -g cfgIpmiLan -o cfgIpmiLanEnable 1 register command until command is success retries 2 delay 2 tags cfgIpmiLanEnable

AnsibleTask command racadm config -g cfgIpmiLan -o cfgIpmiLanPrivilegeLimit 4 register command until command is success retries 2 delay 2 tags cfgIpmiLanPrivilegeLimit

AnsibleTask command racadm config -g cfgIpmiLan -o cfgIpmiLanAlertEnable 0 register command until command is success retries 2 delay 2 tags cfgIpmiLanAlertEnable

AnsibleTask command racadm config -g cfgIpmiLan -o cfgIpmiEncryptionKey 0000000000000000000000000000000000000000 register command until command is success retries 2 delay 2 tags cfgIpmiEncryptionKey

AnsibleTask command racadm config -g cfgIpmiLan -o cfgIpmiPetCommunityName public register command until command is success retries 2 delay 2 tags cfgIpmiPetCommunityName

AnsibleTask command racadm sslresetcfg register command failed_when not command.rc in 0 2 until command is success retries 2 delay 2 tags sslresetcfg

AnsibleTask command racadm serveraction powercycle register command until command is success retries 2 delay 2 when not inventory_hostname in groups tags powercycle

AnsibleTask command racadm racreset register command until command is success retries 2 delay 2 when not inventory_hostname in groups tags racreset

AnsibleTask template src templates/pxe/acng.conf.j2 dest /etc/apt-cacher-ng/acng.conf notify reload acng

AnsibleTask copy content Acquire :http Proxy default_mirror_proxy dest /etc/apt/apt.conf.d/00apt-cacher-proxy

AnsibleTask hosts skydive_all become True gather_facts True tags always

AnsibleTask command skydive client status username skydive_username password skydive_password register skydive_client until skydive_client is success retries 10 delay 10

AnsibleTask file path /opt/go go_download_version state directory

AnsibleTask copy content GOROOT=/opt/go go_download_version /go GOPATH=/usr/local PATH= PATH GOROOT /bin dest /etc/default/go go_download_version

AnsibleTask file src /etc/default/go go_download_version dest /etc/default/go state link

AnsibleTask file path skydive_build_project_path /github.com/skydive-project/skydive state directory

AnsibleTask shell source /etc/default/go export PATH= skydive_build_go_path /bin PATH export GOPATH= skydive_build_go_path make static skydive_build_use_flags args chdir skydive_build_project_path /github.com/skydive-project/skydive executable /bin/bash creates skydive_build_go_path /bin/skydive

AnsibleTask file path traefik_build_project_path /github.com/containous/traefik state directory

AnsibleTask shell source /etc/default/go export PATH= traefik_build_go_path /bin PATH export GOPATH= traefik_build_go_path go get github.com/containous/go-bindata/ ... args chdir traefik_build_project_path /github.com/containous/traefik executable /bin/bash creates traefik_build_project_path /github.com/containous/traefik/traefik

AnsibleTask shell source /etc/default/go export PATH= traefik_build_go_path /bin PATH export GOPATH= traefik_build_go_path go generate args chdir traefik_build_project_path /github.com/containous/traefik executable /bin/bash creates traefik_build_project_path /github.com/containous/traefik/traefik

AnsibleTask shell source /etc/default/go export PATH= traefik_build_go_path /bin PATH export GOPATH= traefik_build_go_path go build ./cmd/traefik args chdir traefik_build_project_path /github.com/containous/traefik executable /bin/bash creates traefik_build_project_path /github.com/containous/traefik/traefik

AnsibleTask service name skydive-agent state ansible_local bool ternary skydive_agent_service_state enabled skydive_agent_service_state in when ansible_service_mgr

AnsibleTask service name skydive-analyzer state ansible_local bool ternary skydive_analyzer_service_state enabled skydive_analyzer_service_state in when ansible_service_mgr

AnsibleTask fail msg The skydive password is undefined Set the ` skydive_password ` option before continuing when skydive_password is undefined tags always

AnsibleTask fail msg The elasticsearch backend for skydive is undefined Set the ` skydive_elasticsearch_servers ` option before continuing when skydive_elasticsearch_servers is undefined tags always

AnsibleTask set_fact skydive_network_device ansible_default_ipv4 when skydive_network_device is undefined

AnsibleTask fail msg The following variable item.default is undefined and no known value was defined in the skydive_os_cloud_file file when hostvars inventory_hostname item.default is undefined clouds_yaml is undefined clouds_yaml skydive_os_cloud is undefined clouds_yaml skydive_os_cloud is undefined clouds_yaml skydive_os_cloud item.cfg is undefined with_items

AnsibleTask debug var skydive_service_setup_host_python_interpreter

AnsibleTask file path item state directory owner skydive group skydive mode,0755 with_items /etc/skydive /var/lib/skydive /var/lib/skydive/etcd

AnsibleTask file path item state directory owner skydive group skydive mode,0700 with_items /var/lib/skydive/ssl

AnsibleTask set_fact skydive_ovs_db_exists stat_ovsdb.stat.exists skydive_docker_exists stat_docker.stat.exists skydive_libvirt_exists stat_libvirt.stat.exists skydive_runc_exists stat_runc.stat.exists

AnsibleTask set_fact skydive_needs_restart skydive_template_create is changed or skydive_basic_auth_create is changed

AnsibleTask file path item.path state absent with_items skydive_ssl_bundle when skydive_ssl_regen bool

AnsibleTask command openssl x509 -req -days 3650 -in skydive_ssl_csr -CA skydive_ssl_ca_cert -CAkey skydive_ssl_ca_key -out skydive_ssl_cert -set_serial 01 -extensions v3_req -extfile skydive_ssl_cnf args creates skydive_ssl_cert delegate_to skydive_service_setup_host

AnsibleTask copy src /tmp/skydive/ssl/ item.path basename dest item.path owner skydive group skydive with_items skydive_ssl_bundle

AnsibleTask file path item state directory owner traefik group traefik mode,0755 with_items /var/lib/traefik /etc/traefik

AnsibleTask set_fact traefik_docker_exists stat_docker.stat.exists

AnsibleTask template src traefik.toml.j2 dest /etc/traefik/traefik.toml mode,0640

AnsibleTask service name traefik state traefik_analyzer_service_state enabled traefik_analyzer_service_state in when ansible_service_mgr

AnsibleTask become True become_user root command ./bootstrap-embedded-ansible.sh args chdir src/ current_test_repo /skydive

AnsibleTask become True become_user root command HOME /ansible_venv/bin/ansible-galaxy install force ignore-errors roles-path= HOME /ansible_venv/repositories/roles -r ansible-role-requirements.yml args chdir src/ current_test_repo /skydive/tests

AnsibleTask become True become_user root command HOME /ansible_venv/bin/ansible-galaxy install force ignore-errors roles-path= HOME /ansible_venv/repositories/roles -r ansible-role-requirements.yml args chdir src/ current_test_repo /skydive

AnsibleTask become True become_user root command HOME /ansible_venv/bin/ansible-playbook -i inventory_file -e test-vars.yml _key-setup.yml environment ANSIBLE_LOG_PATH /tmp/skydive-logs/ansible-skydive-test-deployment.log args chdir src/ current_test_repo /skydive/tests

AnsibleTask become True become_user root command HOME /ansible_venv/bin/ansible-galaxy install force ignore-errors roles-path= HOME /ansible_venv/repositories/roles -r ansible-role-requirements.yml args chdir /opt/openstack-ansible-ops/elk_metrics_6x

AnsibleTask become True become_user root command HOME /ansible_venv/bin/ansible-playbook -i tests/ inventory_file -e tests/test-vars.yml installElastic.yml environment ANSIBLE_LOG_PATH /tmp/skydive-logs/ansible-skydive-test-deployment.log args chdir /opt/openstack-ansible-ops/elk_metrics_6x

AnsibleTask become True become_user root command HOME /ansible_venv/bin/ansible-playbook -i tests/ inventory_file -e tests/test-vars.yml site.yml environment ANSIBLE_LOG_PATH /tmp/skydive-logs/ansible-skydive-test-deployment.log args chdir src/ current_test_repo /skydive

AnsibleTask set_fact zuul ansible_env.HOME /skydive-test-logs when zuul is not defined

AnsibleTask service name item.service_name enabled True state stopped daemon_reload ansible_service_mgr ternary omit with_items filtered_mistral_services register _stop until _stop is success retries 5 delay 2 listen Restart mistral services venv changed

AnsibleTask copy src /etc/mistral/policy.json- mistral_venv_tag dest /etc/mistral/policy.json owner root group mistral_system_group_name mode,0640 remote_src True when mistral_policy_overrides listen Restart mistral services venv changed

AnsibleTask file path /etc/mistral/policy.json state absent when mistral_policy_overrides listen Restart mistral services venv changed

AnsibleTask service name item.service_name enabled True state started daemon_reload ansible_service_mgr ternary omit with_items filtered_mistral_services register _start until _start is success retries 5 delay 2 listen Restart mistral services venv changed

AnsibleTask fail msg Switching installation methods for OpenStack services is not supported when ansible_local is defined ansible_local.openstack_ansible is defined ansible_local.openstack_ansible.mistral is defined ansible_local.openstack_ansible.mistral.install_method is defined ansible_local.openstack_ansible.mistral.install_method mistral_install_method

AnsibleTask command mistral_bin /mistral-db-manage upgrade head become True become_user mistral_system_user_name changed_when False

AnsibleTask command mistral_bin /mistral-db-manage populate become True become_user mistral_system_user_name changed_when False

AnsibleTask file path item.path realpath state directory owner item.owner default mistral_system_user_name group item.group default mistral_system_group_name mode item.mode default omit with_items mistral_system_user_home

AnsibleTask copy content mistral_policy_overrides to_nice_json dest /etc/mistral/policy.json- mistral_venv_tag when mistral_policy_overrides notify Manage LB Restart mistral services

AnsibleTask service name item.service_name enabled True state stopped daemon_reload True with_items filtered_neutron_services register _stop until _stop is success retries 5 delay 2 listen Restart neutron services venv changed

AnsibleTask shell for ns_pid in pgrep neutron-ns-meta do echo readlink -f /proc/ ns_pid/exe grep -qv neutron_venv_tag if -eq 0 then if kill -9 ns_pid then logger -s old metadata proxy pid found and has been cleaned up on ns_pid\ fi fi done when in filtered_neutron_services map list listen Restart neutron services venv changed

AnsibleTask command neutron_bin /neutron-db-manage upgrade contract become True become_user neutron_system_user_name delegate_to groups neutron_services 0 when ansible_local bool neutron_services in group_names inventory_hostname groups neutron_services intersect ansible_play_hosts list 0 listen Restart neutron services venv changed

AnsibleTask service name item.service_name enabled True state started daemon_reload True with_items filtered_neutron_services register _start until _start is success retries 5 delay 2 listen Restart neutron services venv changed

AnsibleTask command cat /proc/cpuinfo register cpuinfo_contents changed_when False failed_when False tags always

AnsibleTask set_fact neutron_provider_networks neutron_provider_networks default pndata tags always

AnsibleTask set_fact neutron_os_type powervm when cpuinfo_contents.stdout.find -1 ansible_architecture tags always

AnsibleTask shell empty line to workaround bug in EnvVarsInCommandRule.py lint test https //github.com/willthames/ansible-lint/issues/275 set -o pipefail exit_code=0 if aa-status grep -q item.process then aa-disable item.profile if 0 then exit_code=2 fi fi exit exit_code register _apparmor_profile_disabled changed_when _apparmor_profile_disabled.rc 2 failed_when _apparmor_profile_disabled.rc not in 0,2 args warn False executable /bin/bash become True delegate_to physical_host default with_items

AnsibleTask fail message FWaaS v1 and v2 can not be enabled at the same time Verify that your neutron_plugin_base variable is correct when neutron_fwaas bool neutron_fwaas_v2 bool

AnsibleTask fail msg Switching installation methods for OpenStack services is not supported when ansible_local is defined ansible_local.openstack_ansible is defined ansible_local.openstack_ansible.neutron is defined ansible_local.openstack_ansible.neutron.install_method is defined ansible_local.openstack_ansible.neutron.install_method neutron_install_method

AnsibleTask command neutron_bin /neutron-db-manage upgrade expand become True become_user neutron_system_user_name when ansible_local bool inventory_hostname groups neutron_services intersect ansible_play_hosts list 0

AnsibleTask command neutron_bin /neutron-db-manage has_offline_migrations become True become_user neutron_system_user_name when inventory_hostname groups neutron_services intersect ansible_play_hosts list 0 changed_when False register _offline_migrations_check failed_when _offline_migrations_check.rc 1 to apply migrations not in _offline_migrations_check.stdout

AnsibleTask service name neutron_ovs_service_name state started enabled True when neutron_needs_openvswitch bool

AnsibleTask delegate_to localhost run_once True set_fact neutron_apparmor_hosts set apparmor_hosts set physical_hosts for host in groups neutron_role_project_group if hostvars host is defined set phost hostvars host if phost not in physical_hosts set _ apparmor_hosts.append host set _ physical_hosts.append phost endif else set _ apparmor_hosts.append endif endfor { apparmor_hosts unique when ansible_pkg_mgr in

AnsibleTask file path item.path default omit state directory owner item.owner|default neutron_system_user_name group item.group|default neutron_system_group_name mode item.mode default omit with_items neutron_conf_dir /plugins neutron_conf_dir /plugins/ neutron_plugin_type.split 0 neutron_conf_dir /rootwrap.d

AnsibleTask copy src item dest neutron_conf_dir /rootwrap.d/ owner root group root with_fileglob rootwrap.d/* notify Restart neutron services

AnsibleTask copy content neutron_policy_overrides to_nice_json dest neutron_conf_dir /policy.json when neutron_policy_overrides

AnsibleTask file src /usr/share/neutron/api-paste.ini dest neutron_conf_dir /api-paste.ini owner root group neutron_system_group_name mode,0640 state link when neutron_install_method and ansible_os_family

AnsibleTask file src neutron_bin /neutron-keepalived-state-change dest /usr/local/bin/neutron-keepalived-state-change state link when neutron_install_method

AnsibleTask command cp item.target_f item.target_f .original args creates item.target_f .original with_items neutron_core_files

AnsibleTask file path item.tmp_f state absent changed_when False delegate_to localhost with_items neutron_core_files

AnsibleTask file path neutron_conf_dir /rootwrap.d owner root group root mode,0640 recurse True

AnsibleTask template src dnsmasq-neutron.conf.j2 dest neutron_conf_dir /dnsmasq-neutron.conf owner root group neutron_system_group_name mode,0640 notify Restart neutron services when neutron_services in group_names

AnsibleTask template src networking_bgpvpn.conf.j2 dest neutron_conf_dir /networking_bgpvpn.conf owner root group neutron_system_group_name mode,0640 notify Restart neutron services when in neutron_plugin_base

AnsibleTask file path item.path default omit src item.src default omit dest item.dest default omit state item.state default owner item.owner default neutron_system_user_name group item.group default neutron_system_group_name mode item.mode default omit force item.force default omit when item.condition default true bool with_items neutron_install_method ternary neutron_conf_dir neutron_bin dirname neutron_conf_dir neutron_bin dirname regex_replace /etc/neutron True neutron_install_method neutron_lock_path neutron_system_home_folder neutron_system_home_folder /ha_confs }

AnsibleTask template src sudoers.j2 dest /etc/sudoers.d/ neutron_system_user_name _sudoers mode,0440 owner root group root

AnsibleTask file path /etc/calico state directory owner root group root mode,0644 when neutron_services in group_names tags calico-config

AnsibleTask template src dpdk_interfaces.j2 dest /etc/dpdk/interfaces owner root group root when neutron_services in group_names nova_compute in group_names

AnsibleTask template src dpdk.conf.j2 dest /etc/dpdk/dpdk.conf owner root group root when neutron_services in group_names nova_compute in group_names

AnsibleTask command ovs-vsctl no-wait set Open_vSwitch other_config dpdk-lcore-mask= ovs_dpdk_lcore_mask when neutron_services in group_names nova_compute in group_names

AnsibleTask command ovs-vsctl no-wait set Open_vSwitch other_config pmd-cpu-mask= ovs_dpdk_pmd_cpu_mask when neutron_services in group_names nova_compute in group_names

AnsibleTask command ovs-vsctl no-wait set Open_vSwitch other_config dpdk-socket-mem= ovs_dpdk_socket_mem when neutron_services in group_names nova_compute in group_names

AnsibleTask command ovs-vsctl no-wait set Open_vSwitch other_config dpdk-init=true when neutron_services in group_names nova_compute in group_names

AnsibleTask file path /var/lib/vhost_socket state directory owner libvirt-qemu group vhost_socket_directory_group mode,0755 when neutron_services in group_names nova_compute in group_names

AnsibleTask command ovs-vsctl get-manager register ovs_manager changed_when False until ovs_manager.rc 0 retries 3 delay 5

AnsibleTask command ovs-vsctl set-manager ovs_manager_list when ovs_manager.stdout

AnsibleTask command neutron_bin /neutron-odl-ovs-hostconfig noovs_dpdk if neutron_provider_networks.network_mappings is defined and in neutron_plugin_base or in neutron_plugin_base datapath_type=system bridge_mappings= neutron_provider_networks.network_mappings endif when ovs_manager.stdout

AnsibleTask command ovs-vsctl get Open_vSwitch other_config local_ip ignore_errors True register ovs_local_ip changed_when False

AnsibleTask command ovs-vsctl set Open_vSwitch other_config local_ip= neutron_local_ip when ovs_local_ip.rc 0

AnsibleTask command ovs-vsctl set Open_vSwitch other_config provider_mappings= neutron_provider_networks.network_mappings when neutron_provider_networks.network_mappings is defined neutron_plugin_base or neutron_plugin_base

AnsibleTask command ovs-vsctl set Open_vSwitch external_ids of-tunnel=true when neutron_plugin_base

AnsibleTask command ovs-vsctl set open_vswitch external-ids hostname= ansible_hostname when neutron_services in group_names or neutron_services in group_names

AnsibleTask command ovs-vsctl set-manager ptcp:6640 when neutron_services in group_names

AnsibleTask command ovn-nbctl set-connection ptcp:6641:0.0.0.0 set connection inactivity_probe=60000 when neutron_services in group_names

AnsibleTask command ovn-sbctl set-connection ptcp:6642:0.0.0.0 set connection inactivity_probe=60000 when neutron_services in group_names

AnsibleTask command ovs-vsctl set open external-ids ovn-cms-options=enable-chassis-as-gw when neutron_services in group_names

AnsibleTask command ovs-vsctl set open external-ids ovn-remote=tcp neutron_ovn_ip :6642 when neutron_services in group_names

AnsibleTask command ovs-vsctl set open external-ids ovn-encap-type=geneve vxlan when neutron_services in group_names

AnsibleTask command ovs-vsctl set open external-ids ovn-encap-ip= neutron_local_ip when neutron_services in group_names

AnsibleTask command ovs-vsctl set open external-ids ovn-bridge-mappings= neutron_provider_networks.network_mappings when neutron_provider_networks.network_mappings is defined neutron_services in group_names

AnsibleTask command pgrep -a item with_items calico-felix calico-dhcp-age tags skip_ansible_lint when neutron_plugin_type

AnsibleTask command openstack os-cloud default network agent list -f json register calico_felix_agent until ansible_nodename in calico_felix_agent.stdout from_json selectattr map list retries 5 delay 10 with_items ansible_play_hosts delegate_to groups 0 run_once True tags skip_ansible_lint when neutron_plugin_type

AnsibleTask service name libvirt_service_name enabled True state restarted daemon_reload True

AnsibleTask service name item.service_name enabled True state stopped daemon_reload True with_items filtered_nova_services register _stop until _stop is success retries 5 delay 2 listen Restart nova services venv changed

AnsibleTask service name item.service_name enabled True state started daemon_reload True with_items filtered_nova_services register _start until _start is success retries 5 delay 2 listen Restart nova services venv changed

AnsibleTask fail msg Unsupported Virt Type Provided nova_supported_virt_types when nova_virt_type is defined nova_virt_type not in nova_supported_virt_types tags always

AnsibleTask fail msg TCP and TLS connectivity are currently enabled for libvirtd This combination prevents libvirtd from starting properly since this role does not generate TLS certificates for libvirtd at this time To enable TCP connectivity without TLS set the following variables nova_libvirtd_listen_tcp 1 nova_libvirtd_listen_tls 0 Please note that this configuration does not encrypt communication with libvirtd when nova_libvirtd_listen_tcp 1 nova_libvirtd_listen_tls 1 tags always

AnsibleTask fail msg Switching installation methods for OpenStack services is not supported when ansible_local is defined ansible_local.openstack_ansible is defined ansible_local.openstack_ansible.nova is defined ansible_local.openstack_ansible.nova.install_method is defined ansible_local.openstack_ansible.nova.install_method nova_install_method

AnsibleTask set_fact first_available_compute groups intersect play_hosts first tags nova-key nova-key-distribute

AnsibleTask template src nova-key-insert.sh.j2 dest /var/tmp/openstack-nova-key.sh mode,0755 delegate_to localhost vars ansible_python_interpreter /usr/bin/python when inventory_hostname first_available_compute tags nova-key nova-key-distribute

AnsibleTask copy src /var/tmp/openstack-nova-key.sh dest /usr/local/bin/openstack-nova-key.sh mode,0755 tags nova-key nova-key-distribute

AnsibleTask command /usr/local/bin/openstack-nova-key.sh register key_create changed_when key_create.rc 3 failed_when key_create.rc 3 key_create.rc 0 tags nova-key nova-key-distribute

AnsibleTask copy src ssh_config dest nova_system_home_folder /.ssh/config owner nova_system_user_name group nova_system_user_name mode,0644 tags nova-key nova-key-create

AnsibleTask set_fact nova_pubkey nova_pub.content tags nova-key nova-key-create

AnsibleTask set_fact _wait_nova_bin hostvars nova_conductor_setup_host default nova_bin

AnsibleTask command _wait_nova_bin /openstack os-cloud default compute service list service nova-compute format value column Host changed_when False register _compute_host_list retries 10 delay 5 until compute_host_to_wait_for in _compute_host_list.stdout_lines

AnsibleTask service name nova_services state restarted delegate_to compute_host_to_wait_for

AnsibleTask set_fact _db_nova_bin hostvars nova_conductor_setup_host default nova_bin _db_nova_system_user_name hostvars nova_conductor_setup_host default nova_system_user_name

AnsibleTask command _db_nova_bin /nova-manage cell_v2 discover_hosts debug bool ternary verbose nova_virt_type ternary by-service become True become_user _db_nova_system_user_name changed_when False

AnsibleTask command _db_nova_bin /nova-status upgrade check become True become_user _db_nova_system_user_name register nova_status_upgrade_check until nova_status_upgrade_check is success retries 3 delay 15 failed_when nova_status_upgrade_check.rc not in 0 1 changed_when False

AnsibleTask command nova_bin /nova-manage api_db sync become True become_user nova_system_user_name changed_when False

AnsibleTask command nova_bin /nova-manage cell_v2 map_cell0 database_connection mysql+pymysql // nova_api_galera_user nova_api_container_mysql_password nova_api_galera_address nova_cell0_database charset=utf8 become True become_user nova_system_user_name changed_when False

AnsibleTask command nova_bin /nova-manage db sync become True become_user nova_system_user_name changed_when False

AnsibleTask command nova_bin /nova-manage db online_data_migrations become True become_user nova_system_user_name when nova_all_software_updated default bool ansible_local bool changed_when False register data_migrations

AnsibleTask command nova_bin /nova-manage cell_v2 create_cell name nova_cell1_name database_connection mysql+pymysql // nova_galera_user nova_container_mysql_password nova_galera_address nova_galera_database charset=utf8 become True become_user nova_system_user_name register nova_cell1_create failed_when nova_cell1_create.rc not in 0 2 changed_when nova_cell1_create.rc 0

AnsibleTask shell nova_bin /nova-manage cell_v2 list_cells grep nova_cell1_name become True become_user nova_system_user_name register cell1_uuid changed_when False when nova_cell1_create.rc 0

AnsibleTask command nova_bin /nova-manage cell_v2 map_instances cell_uuid cell1_uuid .split 3 become True become_user nova_system_user_name changed_when False when nova_cell1_create.rc 0

AnsibleTask set_fact item.key item.value with_dict nova_virt_types nova_virt_type when item.key not in hostvars inventory_hostname or item.key is undefined tags nova-config nova-post-install

AnsibleTask file path item.path default omit state directory owner item.owner|default nova_system_user_name group item.group|default nova_system_group_name mode item.mode default omit with_items

AnsibleTask copy src item dest /etc/nova/rootwrap.d/ owner root group root with_fileglob rootwrap.d/* notify Manage LB Restart nova services tags nova-config nova-post-install

AnsibleTask copy content nova_policy_overrides to_nice_json dest /etc/nova/policy.json when nova_policy_overrides

AnsibleTask command cp item.target_f item.target_f .original args creates item.target_f .original with_items nova_core_files

AnsibleTask file path item.tmp_f state absent changed_when False delegate_to localhost run_once True with_items nova_core_files

AnsibleTask file path /etc/nova/nova-compute.conf state absent notify Manage LB Restart nova services tags nova-config nova-post-install

AnsibleTask template src sudoers.j2 dest /etc/sudoers.d/ nova_system_user_name _sudoers mode,0440 owner root group root tags sudoers nova-sudoers

AnsibleTask file path item state absent with_items nova_system_home_folder /.ssh/authorized_keys nova_system_home_folder /.ssh/id_rsa nova_system_home_folder /.ssh/id_rsa.pub when nova_recreate_keys bool tags nova-key nova-key-create

AnsibleTask file path item.local_path state directory mode,0755 with_items nova_nfs_client tags nova-dirs

AnsibleTask file path item.path src item.src default omit state item.state default owner item.owner|default nova_system_user_name group item.group|default nova_system_group_name mode item.mode default force item.force default omit when item.condition default true bool item.path not in nova_mount_points with_items nova_install_method ternary nova_bin dirname nova_bin dirname regex_replace /etc/nova True nova_install_method nova_system_home_folder nova_system_home_folder /.ssh nova_system_home_folder /cache/api nova_system_home_folder /instances nova_lock_path 'path } tags nova-dirs

AnsibleTask set_fact nova_console_type novnc when ansible_architecture

AnsibleTask command /bin/sh -c -1 /sys/class/mdev_bus/*/mdev_supported_types register mdev when mdev_folder.stat.exists

AnsibleTask set_fact enabled_vgpu_types mdev.stdout_lines unique when mdev.stdout_lines is defined mdev.stdout_lines length 0

AnsibleTask command cat /proc/cpuinfo register cpuinfo_contents changed_when False

AnsibleTask set_fact nova_virt_type kvm when cpuinfo_contents.stdout.find -1 or cpuinfo_contents.stdout.find -1 or cpuinfo_contents.stdout.find -1 or cpuinfo_contents.stdout.find -1 and cpuinfo_contents.stdout.find -1 and ansible_architecture or dev_kvm.stat.ischr is defined and dev_kvm.stat.ischr and ansible_architecture

AnsibleTask set_fact nova_virt_type qemu when nova_virt_type is not defined

AnsibleTask shell EXIT_CODE=0 FOLDER_PATH= /usr/share/novnc if -e FOLDER_PATH then if -d FOLDER_PATH /.git then echo FOLDER_PATH is not a git repo deleting ... EXIT_CODE=2 elif test -n cd FOLDER_PATH git status porcelain then echo FOLDER_PATH is a dirty git repo deleting ... EXIT_CODE=2 fi if EXIT_CODE 2 then rm -rf FOLDER_PATH fi fi exit EXIT_CODE args executable /bin/bash register existing_dir_cleanup changed_when existing_dir_cleanup.rc 2 failed_when existing_dir_cleanup.rc not in 0,2 when nova_install_method tags nova-novnc-git

AnsibleTask file path nova_console_ssl_dir state directory owner nova group nova mode,0755

AnsibleTask copy src item.src default omit content item.content default omit dest item.dest owner nova group nova mode item.mode with_items nova_console_user_ssl_combined.stdout ~ nova_console_ssl_cert nova_console_user_ssl_key nova_console_ssl_key notify Manage LB Restart nova services tags nova-config

AnsibleTask shell EXIT_CODE=0 FOLDER_PATH= /usr/share/spice-html5 if -e FOLDER_PATH then if -d FOLDER_PATH /.git then echo FOLDER_PATH is not a git repo deleting ... EXIT_CODE=2 elif test -n cd FOLDER_PATH git status porcelain then echo FOLDER_PATH is a dirty git repo deleting ... EXIT_CODE=2 fi if EXIT_CODE 2 then rm -rf FOLDER_PATH fi fi exit EXIT_CODE args executable /bin/bash register existing_dir_cleanup changed_when existing_dir_cleanup.rc 2 failed_when existing_dir_cleanup.rc not in 0,2 when nova_install_method tags nova-spice-git

AnsibleTask copy src kvm.conf dest /etc/modprobe.d/kvm.conf owner root group root mode,420 when nova_nested_virt_enabled bool tags nova-config nova-kvm

AnsibleTask command udevadm trigger changed_when False tags nova-config nova-kvm

AnsibleTask template src libvirtd.conf.j2 dest /etc/libvirt/libvirtd.conf owner root group root mode,420 notify Restart libvirt-bin tags nova-config nova-kvm nova-libvirt

AnsibleTask template src qemu.conf.j2 dest /etc/libvirt/qemu.conf owner root group root mode,0600 when qemu_conf_dict is defined or nova_network_type notify Restart libvirt-bin tags nova-config nova-kvm nova-libvirt

AnsibleTask file path /usr/share/OVMF state directory when ansible_os_family tags nova-config nova-kvm nova-libvirt

AnsibleTask file src ansible_os_family ternary dest /usr/share/OVMF/OVMF_CODE.fd state link when ansible_os_family in tags nova-config nova-kvm nova-libvirt

AnsibleTask command ls -1A /var/lib/libvirt/qemu/save changed_when False register _qemu_save_dir_contents when _qemu_save_dir.stat.isdir is defined _qemu_save_dir.stat.isdir bool

AnsibleTask command mv /var/lib/libvirt/qemu/save nova_libvirt_save_path when _qemu_save_dir.stat.isdir is defined _qemu_save_dir.stat.isdir bool _qemu_save_dir_contents.stdout_lines length 0

AnsibleTask shell virsh net-list awk changed_when False register default_net

AnsibleTask command virsh net-autostart default disable failed_when False when default_net.stdout.find -1

AnsibleTask command virsh net-destroy default when default_net.stdout.find -1

AnsibleTask command /usr/sbin/ppc64_cpu smt=off register smt_disable_result changed_when False failed_when False tags kvm-disable-smt

AnsibleTask copy src smt.service dest /etc/systemd/system/smt.service mode,0644 owner root group root when smt_disable_result.rc is defined smt_disable_result.rc 0 register smt_disable_service

AnsibleTask service name smt enabled True when smt_disable_service changed

AnsibleTask service name ksmtuned enabled True state started when ansible_pkg_mgr in

AnsibleTask set_fact latest_kernel kernels.files map sort reverse=True first

AnsibleTask command dpkg-statoverride update add root nova 0640 latest_kernel register dpkg_statoverride_result changed_when override for latest_kernel already exists aborting not in dpkg_statoverride_result.stderr failed_when dpkg_statoverride_result.rc 0 and override for latest_kernel already exists aborting not in dpkg_statoverride_result.stderr

AnsibleTask copy src nova_kernel_permissions dest /etc/kernel/postinst.d/nova_kernel_permissions mode,0755

AnsibleTask fail msg The only supported rabbitmq_install_method for RedHat is when rabbitmq_install_method

AnsibleTask fail msg The only supported rabbitmq_install_method for openSUSE is when rabbitmq_install_method

AnsibleTask shell rabbitmqctl -q cluster_status sed //g grep -oP =Clustername args executable /bin/bash changed_when False register _cluster_name

AnsibleTask command rabbitmqctl set_cluster_name rabbitmq_cluster_name when ansible_hostname rabbitmq_primary_cluster_node _cluster_name.stdout rabbitmq_cluster_name

AnsibleTask shell rabbitmqctl stop_app sleep 5 args executable /bin/bash tags skip_ansible_lint

AnsibleTask command rabbitmqctl join_cluster rabbit rabbitmq_primary_cluster_node.split 0 register rabbit_join_cluster until rabbit_join_cluster is success retries 5 delay 2 tags skip_ansible_lint

AnsibleTask command rabbitmqctl start_app register rabbit_start_app until rabbit_start_app is success retries 5 delay 2 tags skip_ansible_lint

AnsibleTask file path /usr/sbin/policy-rc.d state absent tags rabbitmq-upgrade rabbitmq-policy-file rabbitmq_server-config

AnsibleTask file path /etc/systemd/system/rabbitmq-server.service.d state directory group root owner root mode,0755 tags rabbitmq-config

AnsibleTask register rabbit_config template src item.src dest item.dest with_items tags rabbitmq-config

AnsibleTask template src limits.conf.j2 dest /etc/systemd/system/rabbitmq-server.service.d/limits.conf register rabbit_resource_limit tags rabbitmq-config

AnsibleTask template src systemd-restart-on-failure.conf.j2 dest /etc/systemd/system/rabbitmq-server.service.d/systemd-restart-on-failure.conf register rabbit_restart_on_failure tags rabbitmq-config

AnsibleTask file path /etc/rabbitmq/ state directory group root owner root mode,0755 tags rabbitmq-config

AnsibleTask copy content rabbitmq_cookie_token dest /var/lib/rabbitmq/.erlang.cookie mode,0400 owner rabbitmq group rabbitmq register cookie_set

AnsibleTask file dest rabbitmq_ssl_cert state absent when rabbitmq_ssl_self_signed_regen bool tags rabbitmq-ssl

AnsibleTask command openssl req -new -nodes -sha256 -x509 -subj rabbitmq_ssl_self_signed_subject -days 3650 -keyout rabbitmq_ssl_key -out rabbitmq_ssl_cert -extensions v3_ca creates= rabbitmq_ssl_cert tags rabbitmq-ssl

AnsibleTask file path item owner rabbitmq group rabbitmq with_items rabbitmq_ssl_key rabbitmq_ssl_cert tags rabbitmq-ssl

AnsibleTask copy dest rabbitmq_ssl_key content hostvars groups rabbitmq_host_group 0 b64decode owner rabbitmq group rabbitmq mode,0640 tags rabbitmq-ssl

AnsibleTask copy dest rabbitmq_ssl_cert content hostvars groups rabbitmq_host_group 0 b64decode owner rabbitmq group rabbitmq mode,0640 tags rabbitmq-ssl

AnsibleTask set_fact rabbitmq_ssl_cert_fact _rabbitmq_ssl_cert.content rabbitmq_ssl_key_fact _rabbitmq_ssl_key.content tags rabbitmq-ssl

AnsibleTask copy src rabbitmq_user_ssl_cert dest rabbitmq_ssl_cert owner rabbitmq group rabbitmq mode,0644 when rabbitmq_user_ssl_cert is defined tags rabbitmq-configs rabbitmq-ssl

AnsibleTask copy src rabbitmq_user_ssl_key dest rabbitmq_ssl_key owner rabbitmq group rabbitmq mode,0600 when rabbitmq_user_ssl_key is defined tags rabbitmq-configs rabbitmq-ssl

AnsibleTask copy src rabbitmq_user_ssl_ca_cert dest rabbitmq_ssl_ca_cert owner rabbitmq group rabbitmq mode,0644 when rabbitmq_user_ssl_ca_cert is defined tags keystone-configs keystone-ssl

AnsibleTask service name rabbitmq-server state started enabled True when ansible_hostname rabbitmq_primary_cluster_node tags rabbitmq-server-started rabbitmq-upgrade rabbitmq-start

AnsibleTask service name rabbitmq-server state stopped failed_when False when ansible_hostname rabbitmq_primary_cluster_node tags rabbitmq-server-stopped rabbitmq-upgrade rabbitmq-stop

AnsibleTask shell dpkg -l grep rabbitmq-server changed_when False failed_when False register installed_rabbitmq_deb when not rabbitmq_upgrade bool ansible_pkg_mgr tags rabbitmq-package-deb rabbitmq-apt-packages skip_ansible_lint

AnsibleTask shell rpm -qa grep rabbitmq-server args warn False changed_when False failed_when False register installed_rabbitmq_rpm when not rabbitmq_upgrade bool ansible_pkg_mgr in tags rabbitmq-package-rpm rabbitmq-yum-packages rabbitmq-zypper-packages skip_ansible_lint

AnsibleTask set_fact installed_rabbitmq item when item is not skipped with_items installed_rabbitmq_deb installed_rabbitmq_rpm

AnsibleTask fail msg To install a new major/minor version of RabbitMQ set rabbitmq_upgrade=true when not rabbitmq_upgrade bool installed_rabbitmq.rc 0 not installed_rabbitmq.stdout is search rabbitmq_package_version rabbitmq_install_method tags rabbitmq-package-deb rabbitmq-package-rpm rabbitmq-apt-packages

AnsibleTask copy src policy-rc.d dest /usr/sbin/policy-rc.d mode,0755 backup True tags rabbitmq-policy-file rabbitmq-upgrade

AnsibleTask shell pkill pgrep -lf erlang awk print 2 changed_when False failed_when False tags rabbitmq-upgrade

AnsibleTask command pgrep -f rabbit delegate_to item when ansible_host item with_items 10.1.0.2,10.1.0.3,10.1.0.4

AnsibleTask set_fact enabled_plugins_contents enabled_plugins.content b64decode rabbitmq_config_contents rabbitmq_config.content b64decode rabbitmq_ssl_cert_checksum rabbitmq_ssl_cert_stat.stat.checksum rabbitmq_ssl_key_checksum rabbitmq_ssl_key_stat.stat.checksum

AnsibleTask command rabbitmqctl status register rabbitmqctl_status changed_when False

AnsibleTask command rabbitmqctl -q list_policies register rabbitmq_policies_output changed_when False

AnsibleTask shell cat /tmp/ manifest .yaml /tmp/logs/armada/ manifest .yaml loop_control loop_var manifest with_items armada-cluster-ingress armada-ceph armada-lma updated-armada-cluster-ingress updated-armada-ceph updated-armada-lma updated-password-armada-lma args executable /bin/bash ignore_errors True

AnsibleTask shell set -xe ./tools/deployment/common/000-install-packages.sh ./tools/deployment/common/005-deploy-k8s.sh sudo -H pip install yq bandit environment zuul_site_mirror_fqdn zuul_site_mirror_fqdn args chdir zuul.project.src_dir

AnsibleTask shell set -xe make all mkdir -p python-files ./tools/gate/template-python.sh args chdir zuul.project.src_dir

AnsibleTask shell bandit -r ./python-files args chdir zuul.project.src_dir

AnsibleTask command find -not -path */\ -not -path */doc/build/* -not -name *.tgz -type f -exec egrep -l register result failed_when result.stdout

AnsibleTask shell set -e x type -p helm version client short awk print NF awk -F print 1 x HELM_VERSION || exit 1 environment HELM_VERSION version.helm args executable /bin/bash register need_helm ignore_errors True

AnsibleTask when need_helm is failed become_user root shell TMP_DIR= mktemp -d curl -sSL GOOGLE_HELM_REPO_URL /helm- HELM_VERSION -linux-amd64.tar.gz tar -zxv strip-components=1 -C TMP_DIR sudo mv TMP_DIR /helm /usr/bin/helm rm -rf TMP_DIR environment HELM_VERSION version.helm GOOGLE_HELM_REPO_URL url.google_helm_repo args executable /bin/bash

AnsibleTask shell curl -s 127.0.0.1:8879 grep -q Repository args executable /bin/bash register helm_server_running ignore_errors True

AnsibleTask when helm_server_running is failed shell id -un args executable /bin/bash register helm_server_user

AnsibleTask when helm_server_running is failed become True become_user root template src helm-serve.service.j2 dest /etc/systemd/system/helm-serve.service mode,416

AnsibleTask shell curl -s 127.0.0.1:8879 grep -q Repository args executable /bin/bash register wait_for_helm_server until wait_for_helm_server.rc 0 retries 120 delay 5

AnsibleTask shell helm repo list grep -q ^stable args executable /bin/bash register helm_stable_repo_present ignore_errors True

AnsibleTask when helm_stable_repo_present is succeeded command helm repo remove stable

AnsibleTask command helm repo add local http //localhost:8879/charts

AnsibleTask when zuul_site_mirror_fqdn is not defined ignore_errors True set_fact zuul_site_mirror_fqdn lookup

AnsibleTask become True become_user root file path item state absent with_items /var/lib/openstack-helm

AnsibleTask when ansible_distribution become True become_user root shell set -xe systemctl enable apparmor systemctl start apparmor systemctl status apparmor.service args executable /bin/bash ignore_errors True

AnsibleTask when ansible_distribution or ansible_distribution Hat Enterprise Linux or ansible_distribution become True become_user root command setenforce 0 ignore_errors True

AnsibleTask when ansible_distribution or ansible_distribution Hat Enterprise Linux and need_docker is failed template src centos-docker.service.j2 dest /etc/systemd/system/docker.service mode,416

AnsibleTask when ansible_distribution and need_docker is failed template src fedora-docker.service.j2 dest /etc/systemd/system/docker.service mode,416

AnsibleTask when ansible_distribution or ansible_distribution and need_docker is failed template src ubuntu-docker.service.j2 dest /etc/systemd/system/docker.service mode,416

AnsibleTask when proxy.http file path /etc/systemd/system/docker.service.d state directory

AnsibleTask when proxy.http template src http-proxy.conf.j2 dest /etc/systemd/system/docker.service.d/http-proxy.conf mode,416

AnsibleTask become True become_user root when ansible_distribution or ansible_distribution Hat Enterprise Linux file path item state absent with_items /usr/bin/jq

AnsibleTask vars kubeadm_kubelet_labels_node if nodes.labels.all is defined set comma joiner for item in nodes.labels.all comma item.name item.value endfor else endif set comma joiner for group in group_names if nodes.labels group is defined for item in nodes.labels group comma item.name item.value endfor else endif endfor set_fact kubeadm_kubelet_labels set comma joiner for item in kubeadm_kubelet_labels_node comma item endfor

AnsibleTask set_fact playbook_user_id ansible_user_uid playbook_group_id ansible_user_gid playbook_user_dir ansible_user_dir kubernetes_default_device ansible_default_ipv4.alias kubernetes_default_address None primary_node_default_ip hostvars groups 0

AnsibleTask when kubernetes_network_default_device is defined and kubernetes_network_default_device set_fact kubernetes_default_device kubernetes_network_default_device

AnsibleTask when nodepool is defined and nodepool.private_ipv4 is defined set_fact kubernetes_default_address nodepool.private_ipv4

AnsibleTask set_fact playbook_user_id ansible_user_uid playbook_group_id ansible_user_gid playbook_user_dir ansible_user_dir

AnsibleTask set_fact playbook_user_id ansible_user_uid playbook_group_id ansible_user_gid playbook_user_dir ansible_user_dir kube_master groups 0 kube_worker inventory_hostname kube_node_hostname ansible_fqdn

AnsibleTask delegate_to kube_master become True become_user root shell kubectl get node kube_node_hostname -o jsonpath= .status.conditions || echo Not registered yet environment KUBECONFIG /etc/kubernetes/admin.conf register task_result until task_result.stdout retries 120 delay 5

AnsibleTask command pip version register pip_version_output ignore_errors True changed_when False

AnsibleTask shell set -ex wget -q -O https //dl-ssl.google.com/linux/linux_signing_key.pub apt-key add sh -c deb arch=amd64 http //dl.google.com/linux/chrome/deb/ stable main wget directory-prefix=/tmp/ https //chromedriver.storage.googleapis.com/2.44/chromedriver_linux64.zip args executable /bin/bash

AnsibleTask shell set -e export OBJECT_TYPE=node clusterrole clusterrolebinding storageclass namespace export PARALLELISM_FACTOR=2 function list_objects printf OBJECT_TYPE xargs -d -I -P1 -n1 bash -c _ export -f list_objects function name_objects export OBJECT= 1 kubectl get OBJECT -o name xargs -L1 -I -P1 -n1 bash -c OBJECT 1 */ _ export -f name_objects function get_objects input= 1 export OBJECT= input 0 export NAME= input 1 */ echo OBJECT NAME DIR= logs_dir /objects/cluster/ OBJECT mkdir -p DIR kubectl get OBJECT NAME -o yaml DIR NAME .yaml kubectl describe OBJECT NAME DIR NAME .txt export -f get_objects list_objects xargs -r -n 1 -P PARALLELISM_FACTOR -I bash -c _ xargs -r -n 1 -P PARALLELISM_FACTOR -I bash -c _ args executable /bin/bash ignore_errors True

AnsibleTask file path logs_dir /objects/namespaced state directory

AnsibleTask shell set -e export OBJECT_TYPE=configmaps cronjobs daemonsets deployment endpoints ingresses jobs networkpolicies pods podsecuritypolicies persistentvolumeclaims rolebindings roles secrets serviceaccounts services statefulsets export PARALLELISM_FACTOR=2 function get_namespaces kubectl get namespaces -o name awk -F print NF function list_namespaced_objects export NAMESPACE= 1 printf OBJECT_TYPE xargs -d -I -P1 -n1 bash -c NAMESPACE _ export -f list_namespaced_objects function name_objects input= 1 export NAMESPACE= input 0 export OBJECT= input 1 kubectl get -n NAMESPACE OBJECT -o name xargs -L1 -I -P1 -n1 bash -c NAMESPACE OBJECT _ export -f name_objects function get_objects input= 1 export NAMESPACE= input 0 export OBJECT= input 1 export NAME= input 2 */ echo NAMESPACE OBJECT NAME DIR= logs_dir /objects/namespaced/ NAMESPACE OBJECT mkdir -p DIR kubectl get -n NAMESPACE OBJECT NAME -o yaml DIR NAME .yaml kubectl describe -n NAMESPACE OBJECT NAME DIR NAME .txt export -f get_objects get_namespaces xargs -r -n 1 -P PARALLELISM_FACTOR -I bash -c _ xargs -r -n 1 -P PARALLELISM_FACTOR -I bash -c _ xargs -r -n 1 -P PARALLELISM_FACTOR -I bash -c _ args executable /bin/bash ignore_errors True

AnsibleTask become True shell set -x systemd-cgls full all no-pager logs_dir /system/systemd-cgls.txt ip addr logs_dir /system/ip-addr.txt ip route logs_dir /system/ip-route.txt lsblk logs_dir /system/lsblk.txt mount logs_dir /system/mount.txt docker images logs_dir /system/docker-images.txt brctl show logs_dir /system/brctl-show.txt ps aux sort=- mem logs_dir /system/ps.txt args executable /bin/bash ignore_errors True

AnsibleTask file path logs_dir /pod-logs/failed-pods state directory

AnsibleTask shell set -e PARALLELISM_FACTOR=2 function get_namespaces kubectl get namespaces -o name awk -F print NF function get_pods NAMESPACE= 1 kubectl get pods -n NAMESPACE -o name awk -F print NF xargs -L1 -P 1 -I echo NAMESPACE export -f get_pods function get_pod_logs NAMESPACE= 1 POD= 1 INIT_CONTAINERS= kubectl get pod POD -n NAMESPACE -o json jq -r .name CONTAINERS= kubectl get pod POD -n NAMESPACE -o json jq -r .name for CONTAINER in INIT_CONTAINERS CONTAINERS do echo NAMESPACE POD CONTAINER mkdir -p logs_dir /pod-logs/ NAMESPACE POD mkdir -p logs_dir /pod-logs/failed-pods/ NAMESPACE POD kubectl logs POD -n NAMESPACE -c CONTAINER logs_dir /pod-logs/ NAMESPACE POD CONTAINER .txt kubectl logs previous POD -n NAMESPACE -c CONTAINER logs_dir /pod-logs/failed-pods/ NAMESPACE POD CONTAINER .txt done export -f get_pod_logs get_namespaces xargs -r -n 1 -P PARALLELISM_FACTOR -I bash -c _ xargs -r -n 2 -P PARALLELISM_FACTOR -I bash -c _ args executable /bin/bash ignore_errors True

AnsibleTask shell set -e NAMESPACES= kubectl get namespaces -o json jq -r .metadata.name for NS in NAMESPACES do SERVICES= kubectl get svc -l component=metrics -n NS -o json jq -r .metadata.name for SVC in SERVICES do PORT= kubectl get svc SVC -n NS -o json jq -r .port curl SVC. NS PORT/metrics logs_dir /prometheus/ NS- SVC.txt || true done done args executable /bin/bash ignore_errors True

AnsibleTask shell set -e curl tiller-deploy.kube-system:44135/metrics logs_dir /prometheus/kube-system-tiller-deploy.txt args executable /bin/bash ignore_errors True

AnsibleTask shell set -e mgr_endpoints= kubectl get endpoints -n ceph -l component=manager -o json jq -r .subsets .addresses .ip echo ceph-mgr endpoints mgr_endpoints for endpoint in mgr_endpoints do echo checking ceph-mgr at endpoint metrics_curl= curl endpoint:9283/metrics op= eval metrics_curl if -n op then curl endpoint:9283/metrics logs_dir /prometheus/ceph-ceph-mgr.txt break else echo endpoint is a standby ceph-mgr Trying next endpoint fi done args executable /bin/bash ignore_errors True

AnsibleTask shell set -x cp /tmp/artifacts/* logs_dir /selenium/ args executable /bin/bash ignore_errors True

AnsibleTask file path logs_dir /helm/ directory state directory loop_control loop_var directory with_items values releases

AnsibleTask shell set -e helm ls short args executable /bin/bash register helm_releases ignore_errors True

AnsibleTask shell set -e helm status helm_released logs_dir /helm/releases/ helm_release .txt helm get values helm_released logs_dir /helm/values/ helm_release .yaml args executable /bin/bash ignore_errors True vars helm_release helm_released loop_control loop_var helm_released with_items helm_releases.stdout_lines

AnsibleTask shell set -xe gate_script_path args chdir zuul.project.src_dir environment zuul_site_mirror_fqdn zuul_site_mirror_fqdn OSH_EXTRA_HELM_ARGS zuul_osh_extra_helm_args_relative_path default OSH_PATH zuul_osh_relative_path default OSH_INFRA_PATH zuul_osh_infra_relative_path default OPENSTACK_RELEASE osh_params.openstack_release default CONTAINER_DISTRO_NAME osh_params.container_distro_name default CONTAINER_DISTRO_VERSION osh_params.container_distro_version default FEATURE_GATES osh_params.feature_gates default

AnsibleTask file path item state absent with_items /etc/kubernetes

AnsibleTask ignore_errors True shell MY_CONTAINER_ID= docker inspect format raw .Id endraw my_container_name docker ps all no-trunc quiet awk MY_CONTAINER_ID print 1 xargs -r -l1 -P16 docker rm -f args executable /bin/bash

AnsibleTask ignore_errors True shell for MOUNT in findmnt df output TARGET grep ^/var/lib/kubelet do umount force MOUNT done args executable /bin/bash

AnsibleTask file path item state absent with_items /etc/kubernetes /etc/cni/net.d /etc/systemd/system/kubelet.service /etc/systemd/system/kubelet.service.d /var/lib/kubelet /var/lib/etcd /var/etcd /opt/cni/bin

AnsibleTask set_fact kubeadm_node_hostname if ansible_domain is defined ansible_fqdn else ansible_hostname .node k8s.networking.dnsDomain endif

AnsibleTask delegate_to 127.0.0.1 command kubeadm init phase etcd local config /mnt/rootfs/etc/kubernetes/kubeadm-conf.yaml

AnsibleTask delegate_to 127.0.0.1 command kubeadm init phase addon kube-proxy config /mnt/rootfs/etc/kubernetes/kubeadm-conf.yaml

AnsibleTask delegate_to 127.0.0.1 command kubeadm init phase upload-config kubeadm kubeconfig /mnt/rootfs/etc/kubernetes/admin.conf config /mnt/rootfs/etc/kubernetes/kubeadm-conf.yaml

AnsibleTask delegate_to 127.0.0.1 command kubeadm init phase upload-config kubelet kubeconfig /mnt/rootfs/etc/kubernetes/admin.conf config /mnt/rootfs/etc/kubernetes/kubeadm-conf.yaml

AnsibleTask delegate_to 127.0.0.1 command kubectl kubeconfig=/mnt/rootfs/etc/kubernetes/admin.conf label overwrite namespace item name= item with_items default kube-system kube-public

AnsibleTask when k8s.selfHosted|bool true delegate_to 127.0.0.1 command kubeadm init phase selfhosting convert-from-staticpods kubeconfig /mnt/rootfs/etc/kubernetes/admin.conf config /mnt/rootfs/etc/kubernetes/kubeadm-conf.yaml

AnsibleTask delegate_to 127.0.0.1 shell /usr/bin/test-kube-pods-ready kube-system register task_result until task_result.rc 0 retries 120 delay 5 environment KUBECONFIG /mnt/rootfs/etc/kubernetes/admin.conf args executable /bin/bash

AnsibleTask file path item state directory with_items /etc/kubernetes/ /etc/systemd/system/kubelet.service.d/ /var/lib/kubelet/

AnsibleTask copy src /usr/bin/kubeadm dest /usr/bin/kubeadm owner root group root mode,365

AnsibleTask file path item state absent with_items /usr/bin/kubeadm

AnsibleTask when kubelet.container_runtime set_fact kubelet_cgroup_driver systemd

AnsibleTask set_fact kubelet_node_hostname if ansible_domain is defined ansible_fqdn else ansible_hostname .node k8s.networking.dnsDomain endif

AnsibleTask set_fact network_manager_manage_dns lookup section=main file=/etc/NetworkManager/NetworkManager.conf ignore_errors True

AnsibleTask template unsafe_writes True src resolv.conf.j2 dest /etc/resolv.conf

AnsibleTask when kubelet.pv_support_ceph copy dest /etc/modprobe.d/rbd.conf content install rbd /bin/true

AnsibleTask shell find -path */\ -o -path */doc/build/* -o -name *.tgz -o -name *.png -type f -exec egrep -l register _found_whitespaces failed_when _found_whitespaces.stdout args chdir ansible_user_dir /src/ zuul.project.canonical_name

AnsibleTask set_fact _known_container_hosts set _var for item in groups default if item not in if hostvars item default false item if _var.append hostvars item endif endif endif endfor _var unique

AnsibleTask file path /openstack/backup/control-plane state directory

AnsibleTask shell lxc-info -sn inventory_hostname |awk print 2 register current_state changed_when current_state.rc 0 delegate_to physical_host

AnsibleTask file name item state absent with_items /openstack/backup/control-plane/ openstack_release inventory_hostname _config.tgz /openstack/backup/control-plane/ openstack_release inventory_hostname .tar.tgz ignore_errors True delegate_to physical_host

AnsibleTask command mv -f /openstack/backup/control-plane/ inventory_hostname .tar.tgz /openstack/backup/control-plane/ openstack_release inventory_hostname .tar.tgz args creates /openstack/backup/control-plane/ openstack_release inventory_hostname .tar.tgz delegate_to physical_host

AnsibleTask command tar czf /openstack/backup/control-plane/ openstack_release inventory_hostname _config.tgz container_config.results 0 .stdout |replace args chdir /var/lib/lxc/ item with_items inventory_hostname register tar_command changed_when tar_command.rc 0 delegate_to physical_host

AnsibleTask file path /etc/openstack_completions state directory mode,0755

AnsibleTask copy dest /etc/bash_completion.d/autocompletion_source.sh src files/bash_autocompletion_source.sh.j2

AnsibleTask copy dest /etc/openstack_completions/ item src files/ item .j2 with_items cinder.bash_completion glance.bash_completion heat.bash_completion keystone.bash_completion neutron.bash_completion nova.bash_completion

AnsibleTask template owner root group root mode,493 src templates/histformat.sh.j2 dest /etc/profile.d/histformat.sh

AnsibleTask shell echo |update-alternatives config editor |grep |grep register editor failed_when False when ansible_os_family

AnsibleTask command update-alternatives set editor /usr/bin/vim.basic when editor.rc 0 not editor.stdout|search ansible_os_family

AnsibleTask template owner root group root mode,0755 src templates/20-openstack.j2 dest /etc/update-motd.d/20-openstack

AnsibleTask service name cpufrequtils enabled True state started

AnsibleTask shell ls -1 /sys/devices/system/cpu/cpu*/cpuidle/state 2-4 /disable register cpus_cpuidle when cpuidle_check.stat.exists

AnsibleTask command cat /sys/devices/system/cpu/cpu item /cpufreq/scaling_governor with_sequence start=0 count= ansible_processor_vcpus register check_governor failed_when check_governor.rc 1 changed_when False

AnsibleTask debug msg Checking current governor notify cpufrequtils restart changed_when governor not in item.stdout with_items check_governor.results

AnsibleTask file dest /var/tmp/os_image_ item.name state absent with_items openstack_images

AnsibleTask hosts utility 0 gather_facts gather_facts default true tasks vars synchronize_files vars_files vars/main.yml

AnsibleTask shell /root/openrc neutron openrc_insecure |default false |bool |ternary insecure security-group-list /bin/grep -w rpc-support register rpc_support_sec_group changed_when False failed_when rpc_support_sec_group.rc not in 0 1

AnsibleTask shell /root/openrc neutron openrc_insecure |default false |bool |ternary insecure security-group-create rpc-support register sec_group_create changed_when sec_group_create.rc 0 failed_when sec_group_create.rc 0 when rpc_support_sec_group.rc 0

AnsibleTask shell /root/openrc neutron openrc_insecure |default false |bool |ternary insecure security-group-rule-create direction ingress protocol tcp port-range-min item port-range-max item remote-ip-prefix 0.0.0.0/0 rpc-support register sec_group_rules_ports changed_when sec_group_rules_ports.rc 0 when sec_group_create is changed with_items 22,3389

AnsibleTask shell /root/openrc neutron openrc_insecure |default false |bool |ternary insecure security-group-rule-create direction ingress protocol icmp remote-ip-prefix 0.0.0.0/0 rpc-support register sec_group_rules_icmp changed_when sec_group_rules_icmp.rc 0 when sec_group_create is changed

AnsibleTask hosts utility 0 gather_facts gather_facts default true tasks vars synchronize_files vars_files vars/main.yml tags nova-default-flavor-setup

AnsibleTask shell echo unattended-upgrades unattended-upgrades/enable_auto_updates boolean apt_autoupdate_enabled |default 0 |bool |lower debconf-set-selections when ansible_os_family

AnsibleTask template src templates/apt-unattended-upgrades.j2 dest /etc/apt/apt.conf.d/50unattended-upgrades owner root group root when ansible_os_family

AnsibleTask template src templates/apt-auto-upgrades.j2 dest /etc/apt/apt.conf.d/20auto-upgrades owner root group root when ansible_os_family

AnsibleTask service name unattended-upgrades state restarted enabled True

AnsibleTask template dest /usr/share/spice-html5/spice_auto.html src templates/spice_auto.html.j2 when nova_console_type

AnsibleTask template dest /usr/share/spice-html5/spice.css src templates/spice.css.j2 when nova_console_type

AnsibleTask copy src files/dev-hugepages.mount dest /etc/systemd/system/dev-hugepages.mount when ansible_service_mgr systemd or ansible_service_mgr upstart notify systemd reload

AnsibleTask set_fact lxc_default_bind_mounts lxc_default_bind_mounts default bind_dir_path /var/log mount_path /openstack/log/ inventory_hostname

AnsibleTask file path item state directory with_items lxc_default_bind_mounts default list_of_bind_mounts default delegate_to physical_host when not is_metal bool user_input bool

AnsibleTask command lxc-stop name inventory_hostname logfile lxc_container_log_path /lxc- inventory_hostname .log logpriority debug bool ternary delegate_to physical_host register container_stop until container_stop is success retries 3 when not is_metal bool _mc is defined and _mc changed user_input bool

AnsibleTask command lxc-start daemon name inventory_hostname logfile lxc_container_log_path /lxc- inventory_hostname .log logpriority debug bool ternary delegate_to physical_host register container_start until container_start is success retries 3 when not is_metal bool _mc is defined and _mc changed user_input bool

AnsibleTask hosts hosts all_containers gather_facts True tasks facts gathered

AnsibleTask template src templates/named.conf.j2 dest /etc/bind/named.conf.options owner root group root notify Restart BIND

AnsibleTask file name item group bind mode,509 state directory with_items /var/cache/bind/data /var/cache/bind/dynamic notify Restart BIND

AnsibleTask copy src /tmp/rndc.key dest /etc/bind/rndc.key notify Restart BIND

AnsibleTask hosts designate_all gather_facts gather_facts default true tasks designate folder 509 rndc.key to designate hosts BIND Utils primary method ansible_os_family is success 2 2 handlers vars_files vars/main.yml

AnsibleTask hosts hosts osds mons gather_facts gather_facts default true pre_tasks outdated Dell repo item True ansible_os_family Dell Inc. 2 tasks handlers vars_files vars/main.yml vars/dell-hardware-monitoring.yml

AnsibleTask file state directory path item with_items /var/backup/holland_backups /var/log/holland /etc/holland tags holland_dir holland_all

AnsibleTask file src item.src dest item.dest state link with_items ops_holland_git_dest /config/providers ops_holland_git_dest /config/backupsets tags holland_conf holland_all

AnsibleTask template owner root group root src item.src dest item.dest with_items tags holland_conf holland_all

AnsibleTask command find /var/backup/holland_backups/rpc_support -iregex */ 0-9 +_ 0-9 +/backup.xb -type f -size +3M ignore_errors True changed_when found_holland_backups.rc 0 register found_holland_backups

AnsibleTask command ops_holland_venv_bin /holland bk when found_holland_backups changed tags holland_create_backup holland_all

AnsibleTask hosts hosts osds mons gather_facts gather_facts default true pre_tasks outdated MCP repo item True ansible_os_family HP 2 tasks handlers vars_files vars/main.yml vars/hp-hardware-monitoring.yml vars

AnsibleTask copy src files/rpc-o-support/pccommon.sh dest /root/pccommon.sh mode,384

AnsibleTask template src templates/sos.conf.j2 dest /etc/sos.conf

AnsibleTask debug var= item with_items internal_lb_vip_address external_lb_vip_address global_environment_variables neutron_provider_networks rpc_conn_pool_size rpc_response_timeout rpc_thread_pool_size neutron_api_workers galera_max_connections db_max_overflow db_max_pool_size db_pool_timeout memcached_connections rabbitmq_policies openstack_domain dhcp_domain openstack_service_publicuri_proto when openstack_product RPCO

AnsibleTask command ssh-keyscan -H item item with_items _known_ssh_hosts register _ssh_public_key_hash failed_when _ssh_public_key_hash.rc 0 changed_when _ssh_public_key_hash.rc 0

AnsibleTask file path /root/.ssh state directory mode,0700 owner root group root

AnsibleTask template src templates/known_hosts.j2 dest /root/.ssh/known_hosts mode,0600 backup True

AnsibleTask command ssh-keygen -f /root/.ssh/rpc_support -t rsa -q -N register support_key_create changed_when support_key_create.rc 0 failed_when support_key_create.rc 1 when not support_key_check.stat.exists |bool

AnsibleTask shell ssh-keygen help 2 1 grep -q fingerprint_hash register ssh_keygen_has_hash_opt changed_when ssh_keygen_has_hash_opt.rc 0 ignore_errors True failed_when False

AnsibleTask shell ssh-keygen -lf /root/.ssh/rpc_support.pub |awk RSA|DSA print 2 register support_key_fingerprint changed_when support_key_fingerprint.rc 0 failed_when False when support_key_check.stat.exists |bool or support_key_create|changed ssh_keygen_has_hash_opt is undefined

AnsibleTask shell ssh-keygen -l -E md5 -f /root/.ssh/rpc_support.pub |awk RSA|DSA print substr 2,1,48 register support_key_fingerprint changed_when support_key_fingerprint.rc 0 failed_when False when support_key_check.stat.exists |bool or support_key_create|changed ssh_keygen_has_hash_opt is defined ssh_keygen_has_hash_opt is success

AnsibleTask shell /root/openrc ops_venv /bin/nova keypair-list grep rpc_support register nova_support_key changed_when False failed_when False

AnsibleTask shell /root/openrc ops_venv /bin/nova keypair-delete rpc_support register nova_support_key_delete changed_when nova_support_key_delete.rc 0 failed_when False retries 2 delay 10 when nova_support_key.rc 0 and support_key_fingerprint.stdout not in nova_support_key.stdout

AnsibleTask shell /root/openrc ops_venv /bin/nova keypair-add pub-key /root/.ssh/rpc_support.pub rpc_support retries 2 delay 10 when nova_support_key_delete|changed or nova_support_key.rc 1

AnsibleTask copy dest item.dest content item.content owner root group root mode,0600 with_items hostvars groups 0 .content b64decode hostvars groups 0 .content b64decode when hostvars groups 0 .content |default |length 64 hostvars groups 0 .content |default |length 64 hostvars groups 0 .content |b64decode |hash local_support_key_check.stat.checksum |default

AnsibleTask shell blkid -n xfs /dev/sd* |awk disk/ split 0 blkid \n for n in blkid if substr blkid n ,0,5 /dev/ device= 1 pos=match blkid n LABEL= if pos 0 str=device substr blkid n pos+7,6 gsub |\ str print str register swift_drives changed_when False tags always

AnsibleTask service name item state stopped with_items swift-object-server swift-object-replicator swift-container-reconciler swift-object-expirer swift-object-updater swift-object-auditor swift-container-server swift-container-replicator swift-container-updater swift-container-auditor swift-account-server swift-account-replicator swift-account-reaper swift-account-auditor swift-container-sync rsync when destroy_swift_data |bool tags service-stop service-restart remount

AnsibleTask command umount -f /srv/node/ item.split 1 with_items swift_drives.stdout_lines when swift_drives.stdout_lines length 0 item.split 1 not in exclude_drive_labels default destroy_swift_data |bool tags remount umount

AnsibleTask command mkfs.xfs -L item.split 1 -f -i size= xfs_inode_size |default int xfs_format_options |default item.split 0 with_items swift_drives.stdout_lines register swift_mkfs changed_when Writing inode tables done in swift_mkfs.stdout when swift_drives.stdout_lines length 0 item.split 1 not in exclude_drive_labels default item.split 1 not in exclude_drive_labels_format_option default destroy_swift_data |bool tags format-xfs

AnsibleTask command mkfs.xfs -L item.split 1 -f -i size= xfs_inode_size |default int item.split 0 with_items swift_drives.stdout_lines register swift_mkfs_exclude changed_when Writing inode tables done in swift_mkfs_exclude.stdout when swift_drives.stdout_lines length 0 item.split 1 not in exclude_drive_labels default item.split 1 in exclude_drive_labels_format_option default destroy_swift_data |bool tags format-xfs

AnsibleTask file name /srv/node/ item.split 1 mode,0755 owner swift group swift with_items swift_drives.stdout_lines when swift_drives.stdout_lines length 0 item.split 1 not in exclude_drive_labels default destroy_swift_data |bool tags fix-permissions

AnsibleTask service name item state started with_items swift-object-server swift-object-replicator swift-container-reconciler swift-object-expirer swift-object-updater swift-object-auditor swift-container-server swift-container-replicator swift-container-updater swift-container-auditor swift-account-server swift-account-replicator swift-account-reaper swift-account-auditor swift-container-sync rsync when destroy_swift_data |bool tags service-start service-restart remount

AnsibleTask copy src files/update_hp_firmware.py dest /usr/local/bin/update_hp_firmware.py mode,493 when ansible_os_family ansible_system_vendor HP

AnsibleTask command /usr/bin/which screen register screen_binary changed_when screen in screen_binary.stdout when ansible_os_family ansible_system_vendor HP

AnsibleTask shell ps a |grep update_hp_firmware.py |grep -v grep ignore_errors True changed_when False register update_hp_firmware_running when ansible_os_family ansible_system_vendor HP

AnsibleTask command screen_binary.stdout -d -m -L -t hp_firmware_update bash -c source ops_venv || true /usr/local/bin/update_hp_firmware.py -f firmware_use_meltdown default false bool ternary meltdown changed_when False when screen_binary |changed install_packages is success update_hp_firmware_running.rc 1 ansible_os_family ansible_system_vendor HP

AnsibleTask shell awk -F= print 2 osa_release_file.stat.path tr -d when osa_release_file is defined osa_release_file.stat.exists |bool register osa_release_output

AnsibleTask shell egrep -o 0-9 +\ 0-9 osa_release_file.stat.path when osp_release_file is defined osp_release_file.stat.exists |bool register osp_release_output

AnsibleTask set_fact openstack_release osa_release_output is defined |ternary osa_release_output.stdout osp_release_output.stdout |default 0.0.0 openstack_product osa_release_output is defined |ternary |default

AnsibleTask service name dataeng enabled True ignore_errors True when ansible_os_family ansible_system_vendor Dell Inc retries 2 delay 2

AnsibleTask file dest ops_venv |dirname owner root group root mode,0755 state directory tags always

AnsibleTask shell cmd Allow user to ssh into localhost ssh-keygen -f ~/.ssh/id_rsa -N cat ~/.ssh/id_rsa.pub ~/.ssh/authorized_keys ssh-keyscan localhost ~/.ssh/known_hosts ssh-keyscan 127.0.0.1 ~/.ssh/known_hosts chdir zuul.project.src_dir

AnsibleTask shell chdir zuul.project.src_dir executable /bin/bash cmd set -e set -x make env golang_target

AnsibleTask shell ./tools/apply-test.sh args chdir zuul.projects .src_dir environment PUPPET_VERSION puppet_version default 4 tags skip_ansible_lint

AnsibleTask shell cmd echo sudo tee -a /etc/ssh/sshd_config echo Match address 127.0.0.1 sudo tee -a /etc/ssh/sshd_config echo PermitRootLogin without-password sudo tee -a /etc/ssh/sshd_config echo sudo tee -a /etc/ssh/sshd_config echo Match address :1 sudo tee -a /etc/ssh/sshd_config echo PermitRootLogin without-password sudo tee -a /etc/ssh/sshd_config mkdir -p ~/.ssh ssh-keygen -f ~/.ssh/id_rsa -b 2048 -P sudo mkdir -p /root/.ssh cat ~/.ssh/id_rsa.pub sudo tee -a /root/.ssh/authorized_keys if -f /usr/bin/yum then sudo systemctl reload sshd elif -f /usr/bin/apt-get then sudo service ssh restart fi

AnsibleTask file state directory path ansible_user_dir /.bundled_gems

AnsibleTask become True shell cmd if -f /usr/bin/yum then yum install ruby-devel gcc-c++ -y elif -f /usr/bin/apt-get then apt-get install ruby-dev -y fi

AnsibleTask shell cmd gem install bundler no-ri no-rdoc verbose version GEM_HOME/bin/bundle install retry 3 export BEAKER_set= nodeset export BEAKER_debug=yes export BEAKER_color=no GEM_HOME/bin/bundle exec rspec spec/acceptance chdir project_src_dir environment GEM_HOME ansible_user_dir /.bundled_gems PUPPET_VERSION puppet_version default 4

AnsibleTask copy dest /etc/nodepool/primary_node_private content hostvars when hostvars is defined

AnsibleTask copy dest /etc/nodepool/node_private content nodepool.private_ipv4

AnsibleTask command cp .ssh/ item /etc/nodepool/ item with_items id_rsa id_rsa.pub

AnsibleTask copy dest /etc/sudoers.d/zuul-sudo-grep content zuul ALL NOPASSWD /usr/local/jenkins/slave_scripts/zuul-sudo-grep.sh mode,288 become True

AnsibleTask shell cmd env executable /bin/bash environment zuul zuul_legacy_vars

AnsibleTask file path ansible_user_dir /workspace state directory

AnsibleTask file path zuul.executor.work_root /artifacts state directory delegate_to localhost

AnsibleTask file state directory path zuul.executor.work_root /artifacts/package-afs-centos7 delegate_to localhost

AnsibleTask shell set -eux TODO fedora YUM= YUM -yum VERSION=1.6.22.3 SRC_VERSION= VERSION -1 SRC_RPM=openafs- SRC_VERSION .src.rpm SRC_URL=https //www.openafs.org/dl/openafs/ VERSION SRC_RPM UPSTREAM_BASE=https //tarballs.openstack.org/project-config/package-afs-centos7 UPSTREAM_CHECK= UPSTREAM_BASE /openafs-client- SRC_VERSION .el7.x86_64.rpm if wget -O/dev/null -q UPSTREAM_CHECK then echo Found existing upstream RPM build nothing to do scp should just publish nothing exit 0 fi some common prereqs sudo yum -y groupinstall Development Tools Development Libraries sudo yum -y install rpm-build kernel-devel createrepo wget SRC_URL install the build dependencies for the package sudo yum-builddep -y ./ SRC_RPM install source-rpm this installs to ~/rpmbuild rpm -i ./ SRC_RPM build everything pushd ~/rpmbuild/SPECS/ rpmbuild -ba ./openafs.spec popd create final repo for copying createrepo ~/rpmbuild/RPMS/x86_64 args executable /bin/bash

AnsibleTask file state directory path zuul.executor.work_root /artifacts/package-afs-centos8 delegate_to localhost

AnsibleTask shell set -eux VERSION=1.8.4 SRC_VERSION= VERSION -1 SRC_RPM=openafs- SRC_VERSION .src.rpm SRC_URL=https //www.openafs.org/dl/openafs/ VERSION SRC_RPM UPSTREAM_BASE=https //tarballs.openstack.org/project-config/package-afs-centos8 UPSTREAM_CHECK= UPSTREAM_BASE /openafs-client- SRC_VERSION .el8.x86_64.rpm if wget -O/dev/null -q UPSTREAM_CHECK then echo Found existing upstream RPM build nothing to do scp should just publish nothing exit 0 fi some common prereqs sudo dnf -y group install Development Tools sudo dnf -y install rpm-build kernel-devel createrepo wget SRC_URL install the build dependencies for the package sudo dnf builddep -y ./ SRC_RPM for whatever reason I think because it is in a macro check in the .spec the above builddep misses this dependency sudo dnf install -y elfutils-devel install source-rpm this installs to ~/rpmbuild rpm -i ./ SRC_RPM build everything pushd ~/rpmbuild/SPECS/ rpmbuild -ba ./openafs.spec popd create final repo for copying createrepo ~/rpmbuild/RPMS/x86_64 args executable /bin/bash

AnsibleTask shell mv *.tar.gz zuul.project.short_name zuul.branch replace .tar.gz args chdir zuul.project.src_dir /pkg

AnsibleTask command src/opendev.org/openstack/releases/tools/announce.sh src/ zuul.project.canonical_name zuul.tag

AnsibleTask copy src xstatic_check_version.py dest ansible_user_dir

AnsibleTask args chdir zuul.project.src_dir command ansible_user_dir /.venv/bin/python ansible_user_dir /xstatic_check_version.py

AnsibleTask file path item state absent with_items xstatic_check_version.py .venv

AnsibleTask shell grep testenv tox_pdf_envlist zuul_work_dir /tox.ini register pdfdocs_env ignore_errors True

AnsibleTask set_fact swap_partition ephemeral_device 1 opt_partition ephemeral_device 2

AnsibleTask become True shell mount opt_partition /mnt find /opt/ -mindepth 1 -maxdepth 1 -exec mv /mnt/ umount /mnt tags skip_ansible_lint

AnsibleTask when ansible_devices xvde is defined set_fact ephemeral_device /dev/xvde

AnsibleTask set_fact swap_required configure_swap_size ansible_memory_mb int

AnsibleTask when ext not in root_filesystem become True command dd if=/dev/zero of=/root/swapfile bs=1M count= swap_required args creates /root/swapfile

AnsibleTask when ext in root_filesystem become True command fallocate -l swap_required M /root/swapfile args creates /root/swapfile

AnsibleTask become True file path /root/swapfile owner root group root mode,384

AnsibleTask become True file path /usr/local/jenkins/slave_scripts state directory

AnsibleTask copy dest /usr/local/jenkins/slave_scripts/ src item mode,493 with_items install-distro-packages.sh jenkinsci-upload.sh php-laravel-build.sh version-properties.sh zuul-sudo-grep.sh become True

AnsibleTask when tox_install.stat.exists and constraints_file is not defined fail msg tox_install.sh projects require a constraints file to be set

AnsibleTask when tox_install.stat.exists file path zuul_work_virtualenv /log state directory

AnsibleTask when tox_install.stat.exists shell executable /bin/bash cmd source zuul_work_virtualenv /bin/activate tools/tox_install.sh constraints_file chdir zuul_work_dir

AnsibleTask file path doc_build_dir /html/ zuul.branch dirname state directory

AnsibleTask command mv doc_build_dir /tmp doc_build_dir /html/ zuul.branch

AnsibleTask set_fact doc_build_dir zuul_work_dir sphinx_build_dir

AnsibleTask copy dest doc_build_dir /html/.root-marker content Project zuul.project.name Branch zuul.branch Build zuul.build Revision zuul.ref

AnsibleTask args chdir zuul_work_dir executable /bin/bash shell set -xe DOCBUILD= sphinx_build_dir if zuul.ref ^refs/tags/ then This job should not be configured to run for pre-releases so if we have a tag we want to use it as the publishing location tag= echo zuul.ref cut -d/ -f3- branch_name= else If the ref was not a tag assume it is a branch branch_name= zuul.branch tag= fi Rearrange the build output to reflect the end publishing location so we can use doc/publish as the source for the publisher step mkdir -p doc/publish if -z tag then We will have already moved the content inside a directory named for the tag so we move that directory to the publish location mv DOCBUILD/html/ tag doc/publish/ elif branch_name master then The above tasks does not rename the output directory but we want it to be called latest mv DOCBUILD/html doc/publish/latest elif branch_name stable/ then We will have already moved the content inside a directory named for the branch so move that to the publish location mv DOCBUILD/html/ basename branch_name doc/publish/ elif branch_name feature/ then echo Docs should not be published for feature branches exit 1 elif branch_name driverfixes/ then echo Docs should not be published for feature branches exit 1 else What is this even echo Could not determine publishing location for branch_name branch_name exit 1 fi Move back into doc/build/html for artifact publisher rm -rf DOCBUILD/html mv doc/publish DOCBUILD/html

AnsibleTask command mv doc_build_dir /tmp doc_build_dir /html/ zuul.branch replace

AnsibleTask command cp -a doc_build_dir /html doc_build_dir /tmp

AnsibleTask file path doc_build_dir /html/ zuul.tag dirname state directory

AnsibleTask command mv doc_build_dir /tmp doc_build_dir /html/ zuul.tag

AnsibleTask copy dest doc_build_dir /html/.root-marker content Project zuul.project.name Branch zuul.branch Build zuul.build Revision zuul.ref when zuul.branch is defined

AnsibleTask copy dest doc_build_dir /html/.root-marker content Project zuul.project.name Tag zuul.tag Build zuul.build Revision zuul.ref when zuul.tag is defined

AnsibleTask file path /opt/zanata owner ansible_ssh_user state directory become True

AnsibleTask file path /opt/zanata/zanata-cli- zanata_client_version /bin/zanata-cli mode,493

AnsibleTask file path /usr/local/bin/zanata-cli src /opt/zanata/zanata-cli- zanata_client_version /bin/zanata-cli state link become True

AnsibleTask file path /etc/ssl/certs/java/cacerts mode,420 become True

AnsibleTask copy dest ansible_user_dir /scripts/ src item mode,493 with_items common_translation_update.sh create-zanata-xml.py get-modulename.py propose_translation_update.sh query-zanata-project-version.py upstream_translation_update.sh ZanataUtils.py

AnsibleTask set_fact service_type_data service_types zuul.project.short_name

AnsibleTask fail msg zuul.project.short_name is not mapped in service types

AnsibleTask copy dest root_marker_dir /.root-marker content Project zuul.project.name Branch zuul.branch default Build zuul.build Revision zuul.ref

AnsibleTask service name chrony_service_name state restarted when manage_services|default false

AnsibleTask template src chrony.conf.j2 dest chrony_config_file notify Restart chronyd

AnsibleTask service name chrony_service_name state started enabled True when manage_services|default false

AnsibleTask file path collectd_config_file state absent when collectd_purge_config|default false |bool

AnsibleTask template src collectd.conf.j2 dest collectd_config_file owner collectd_config_owner group collectd_config_group mode collectd_config_file_mode

AnsibleTask file path collectd_config_dir state absent when collectd_purge|default false |bool

AnsibleTask file path collectd_config_dir state directory owner collectd_config_owner group collectd_config_group mode collectd_config_dir_mode

AnsibleTask template src,10-write-graphite.conf.j2 dest collectd_config_dir /10-write_graphite.conf notify restart collectd

AnsibleTask template src,10-network-listen.conf.j2 dest collectd_config_dir /10-network-listen.conf

AnsibleTask copy dest collectd_config_dir item.key .conf content item.value with_dict collectd_plugin_config

AnsibleTask template src collectd.auth.j2 dest collectd_auth_file owner collectd_config_owner group collectd_config_group mode collectd_auth_file_mode

AnsibleTask service name collectd_service_name state started enabled True when manage_services|default false |bool

AnsibleTask service name elasticsearch_service_name state restarted when manage_services|default false

AnsibleTask copy src elasticsearch.repo dest yum_repos_d /elasticsearch.repo when manage_repos|default false

AnsibleTask template src elasticsearch.sysconfig dest elasticsearch_sysconfig_path notify restart elasticsearch

AnsibleTask template src elasticsearch.yml dest elasticsearch_config_yml notify restart elasticsearch

AnsibleTask service name elasticsearch_service_name state started enabled True when manage_services|default false

AnsibleTask command systemctl is-enabled firewalld register firewall_use_firewalld_cmd changed_when False failed_when False

AnsibleTask set_fact firewall_use_firewalld firewall_use_firewalld_cmd.rc 0

AnsibleTask set_fact firewall_use_iptables firewall_use_firewalld_cmd.rc 1

AnsibleTask template src elasticsearch.conf dest fluentd_config_parts_dir /300-elasticsearch.conf owner fluentd_owner group fluentd_group mode fluentd_config_mode notify restart fluentd

AnsibleTask set_fact fluentd_port,24224 when not fluentd_use_ssl and not fluentd_port is defined

AnsibleTask set_fact fluentd_port,24284 when fluentd_use_ssl and not fluentd_port is defined

AnsibleTask template src listen_no_ssl.conf dest fluentd_config_parts_dir /100-source-forward.conf owner fluentd_owner group fluentd_group mode fluentd_config_mode when not fluentd_use_ssl notify restart fluentd

AnsibleTask template src listen_ssl.conf dest fluentd_config_parts_dir /100-source-forward.conf owner fluentd_owner group fluentd_group mode fluentd_config_mode when fluentd_use_ssl notify restart fluentd

AnsibleTask copy content fluentd_private_key dest fluentd_private_key_path owner fluentd_owner group fluentd_group mode,0440 when fluentd_use_ssl

AnsibleTask file path fluentd_config_dir state directory owner fluentd_owner group fluentd_group mode fluentd_config_dir_mode

AnsibleTask file path fluentd_config_parts_dir state directory owner fluentd_owner group fluentd_group mode fluentd_config_dir_mode

AnsibleTask template src fluentd.conf dest fluentd_config_file owner fluentd_owner group fluentd_group mode fluentd_config_mode notify restart fluentd

AnsibleTask copy content fluentd_ca_cert dest fluentd_ca_cert_path owner fluentd_owner group fluentd_group mode fluentd_config_mode when fluentd_use_ssl

AnsibleTask service name fluentd_service_name state started enabled True when manage_services|default false

AnsibleTask template src rsyslog.conf dest rsyslog_config_dir /fluentd.conf notify restart rsyslogd

AnsibleTask template src listen-syslog.conf dest fluentd_config_parts_dir /100-listen-rsyslog.conf notify restart fluentd

AnsibleTask command su gnocchi -s /bin/sh -c python /usr/bin/gnocchi-upgrade changed_when False

AnsibleTask file path /var/www/cgi-bin/gnocchi/ state directory mode,493 owner gnocchi group gnocchi

AnsibleTask copy src /usr/bin/gnocchi-api dest /var/www/cgi-bin/gnocchi/app remote_src True

AnsibleTask service name openstack-gnocchi-statsd state started enabled yes

AnsibleTask service name openstack-gnocchi-metricd state started enabled yes

AnsibleTask template src,10-gnocchi_wsgi.conf dest /etc/httpd/conf.d/10-gnocchi_wsgi.conf

AnsibleTask command /sbin/grafana-cli plugins install gnocchixyz-gnocchi-datasource args creates /var/lib/grafana/plugins/gnocchixyz-gnocchi-datasource/plugin.json

AnsibleTask command su apache -s /bin/bash -c /usr/bin/graphite-manage syncdb noinput args creates /var/lib/graphite-web/graphite.db

AnsibleTask service name carbon-cache state started enabled True when manage_services|default false

AnsibleTask template src grafana.conf.j2 dest grafana_httpd_conf notify restart httpd

AnsibleTask copy content RewriteRule ^/ grafana_path R=302 dest opstools_default_redirect_file force False notify restart httpd

AnsibleTask service name httpd state stopped when httpd_restart.status 404

AnsibleTask service name httpd state started when httpd_restart.status 404

AnsibleTask service name grafana_service_name state started enabled True when manage_services|default false

AnsibleTask service name httpd_service_name state started enabled True

AnsibleTask template src kibana.conf.j2 dest kibana_httpd_conf notify restart httpd

AnsibleTask file path kibana_proxy_htpasswd state touch owner apache group apache mode,416

AnsibleTask tags skip_ansible_lint command htpasswd -b kibana_proxy_htpasswd item item with_items kibana_credentials no_log True

AnsibleTask copy content RewriteRule ^/ kibana_path R=302 dest opstools_default_redirect_file force False notify restart httpd

AnsibleTask copy src kibana.repo dest yum_repos_d /kibana.repo when manage_repos|default false

AnsibleTask template src kibana.yml.j2 dest kibana_config_file owner kibana_owner group kibana_group mode kibana_config_mode notify restart kibana

AnsibleTask service name kibana_service_name state started enabled True when manage_services|default false

AnsibleTask service name database_service state started enabled yes when database_host or database_host

AnsibleTask file path opstools_apache_config_dir state directory mode,0755

AnsibleTask template src opstools.conf.j2 dest opstools_apache_config_file mode,0644 notify restart httpd

AnsibleTask service name database_service state started enabled yes when database_host

AnsibleTask service name rabbitmq_service_name state restarted when manage_services|default false

AnsibleTask template src rabbitmq.config.j2 dest rabbitmq_config_file owner rabbitmq_config_owner group rabbitmq_config_group mode rabbitmq_config_mode notify restart rabbitmq

AnsibleTask file path rabbitmq_ssl_certs_path owner rabbitmq_config_owner group rabbitmq_config_group mode,0700 state directory

AnsibleTask copy content rabbitmq_ssl_key dest rabbitmq_ssl_certs_path /key.pem owner rabbitmq_config_owner group rabbitmq_config_group mode,0400

AnsibleTask copy content rabbitmq_ssl_cert dest rabbitmq_ssl_certs_path /cert.pem owner rabbitmq_config_owner group rabbitmq_config_group mode,0400

AnsibleTask copy content rabbitmq_ssl_cacert dest rabbitmq_ssl_certs_path /cacert.pem owner rabbitmq_config_owner group rabbitmq_config_group mode,0400

AnsibleTask service name rabbitmq_service_name state started enabled True when manage_services|default false

AnsibleTask service name redis_service_name state started enabled True when manage_services|default false

AnsibleTask copy src centos-opstools.repo dest /etc/yum.repos.d/centos-opstools.repo when manage_repos|default false and ansible_distribution

AnsibleTask service name item state restarted with_items sensu_client_service_name when manage_services|default false

AnsibleTask template src templates/ item .json.j2 dest sensu_config_path item .json owner sensu_owner group sensu_group with_items client notify restart sensu client services

AnsibleTask file path item state directory owner sensu_owner group sensu_group recurse True with_items sensu_log_path sensu_runtime_path notify restart sensu client services

AnsibleTask copy src sensu-haproxy-check.py dest sensu_plugin_path /sensu-haproxy-check.py owner sensu_owner group sensu_group mode,480 when sensu_manage_checks_haproxy|default false notify restart sensu client services

AnsibleTask service name item state started enabled True with_items sensu_client_service_name when manage_services|default false

AnsibleTask copy src sensu.repo dest yum_repos_d /sensu.repo when manage_repos|default false

AnsibleTask command repoquery installed whatprovides sensu_package_name sensu_minimum_version changed_when False failed_when False register sensu_version when manage_packages|default false

AnsibleTask template src templates/ item .json.j2 dest sensu_config_path item .json owner sensu_owner group sensu_group with_items rabbitmq

AnsibleTask file path sensu_rabbitmq_ssl_certs_path owner sensu_owner group sensu_group mode,0700 state directory

AnsibleTask copy content sensu_rabbitmq_ssl_key dest sensu_rabbitmq_ssl_certs_path /key.pem owner sensu_owner group sensu_group mode,0400

AnsibleTask copy content sensu_rabbitmq_ssl_cert dest sensu_rabbitmq_ssl_certs_path /cert.pem owner sensu_owner group sensu_group mode,0400

AnsibleTask service name sensu_client_service_name state restarted when manage_services|default false

AnsibleTask delegate_to undercloud_host shell cat HOME/overcloudrc grep item.rc_param sed -e *\ /\1/ sed -e g register rcdata with_items

AnsibleTask set_fact item.item.cfg_param item.stdout with_items rcdata.results

AnsibleTask delegate_to undercloud_host shell source ~/stackrc openstack stack output show -f shell overcloud HostsEntry grep overcloud.ctlplane.localdomain awk print 1 head -n 1 register controllerip

AnsibleTask delegate_to undercloud_host shell ssh -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null heat-admin controllerip.stdout sudo awk PRINT=0 if 2 haproxy.stats\ PRINT=1 else if PRINT==1 if 1 bind\ URI=\ 2 if 1 mode\ MODE=\ 2 if 1 stats\ 2 auth\ USER=\ 3 if 1 listen\ exit END print MODE\ //\ URI\ \n\ USER /etc/haproxy/haproxy.cfg register haproxy_data

AnsibleTask template src templates/client.json.j2 dest sensu_config_path /client.json owner sensu_owner group sensu_group notify restart sensu client service

AnsibleTask service name item state restarted with_items sensu_server_service_name sensu_api_service_name when manage_services|default false

AnsibleTask template src templates/ item .json.j2 dest sensu_config_path item .json owner sensu_owner group sensu_group with_items api redis notify restart sensu server services

AnsibleTask template src templates/sensu-checks.json.j2 dest sensu_config_path /sensu-checks.json owner sensu_owner group sensu_group when sensu_manage_checks notify restart sensu server services

AnsibleTask copy src handle-docker-health.py dest sensu_plugin_path /handle-docker-health.py owner sensu_owner group sensu_group mode,480 when sensu_manage_handlers

AnsibleTask template src templates/ item .json.j2 dest sensu_config_path item .json owner sensu_owner group sensu_group with_items sensu-handler-container when sensu_manage_handlers notify restart sensu server services

AnsibleTask file path item state directory owner sensu_owner group sensu_group recurse True with_items sensu_log_path sensu_runtime_path notify restart sensu server services

AnsibleTask service name item state started enabled True with_items sensu_server_service_name sensu_api_service_name when manage_services|default false

AnsibleTask template src uchiwa.conf.j2 dest uchiwa_httpd_conf notify restart httpd

AnsibleTask file path uchiwa_proxy_htpasswd state touch owner apache group apache mode,416

AnsibleTask command htpasswd -b uchiwa_proxy_htpasswd item item with_items uchiwa_credentials no_log True

AnsibleTask copy content RewriteRule ^/ uchiwa_path R=302 dest opstools_default_redirect_file force False notify restart httpd

AnsibleTask service name uchiwa_service_name state restarted when manage_services|default false

AnsibleTask template src templates/uchiwa.json.j2 dest uchiwa_file_path notify restart uchiwa

AnsibleTask service name uchiwa_service_name state started enabled True when manage_services|default false

AnsibleTask template src templates/etc/activemq/instances-available/main/activemq.xml.j2 dest /etc/activemq/instances-available/main/activemq.xml owner root group root mode,420

AnsibleTask template src templates/usr/share/activemq/activemq-options.j2 dest /usr/share/activemq/activemq-options owner root group root mode,420

AnsibleTask become True become_user root file src /etc/activemq/instances-available/main dest /etc/activemq/instances-enabled/main state link owner activemq_system_user group activemq_system_group mode,416

AnsibleTask become True become_user root service name activemq enabled True state restarted

AnsibleTask become True become_user root template src templates/etc/couchdb/local.ini.j2 dest /etc/couchdb/local.ini owner couchdb_system_user group couchdb_system_group mode,416

AnsibleTask become True become_user root service name couchdb enabled True state restarted

AnsibleTask become True become_user root file path couchdb_backup_install_location state directory owner couchdb_backup_system_user group couchdb_backup_system_group mode,0751

AnsibleTask become True become_user root template src templates/couchdb_backup_install_location/backup-couchdb_backup_database.sh.j2 dest couchdb_backup_install_location /backup- couchdb_backup_database .sh owner couchdb_backup_system_user group couchdb_backup_system_group mode,488

AnsibleTask file state absent path couchdb_lucene_local_checkout_path delegate_to 127.0.0.1

AnsibleTask shell cd couchdb_lucene_local_checkout_path mvn delegate_to 127.0.0.1 changed_when output.stdout|length 0

AnsibleTask file path couchdb_lucene_local_package_directory state directory delegate_to 127.0.0.1

AnsibleTask copy src couchdb_lucene_local_checkout_path /target/couchdb-lucene- couchdb_lucene_version_number -dist.tar.gz dest couchdb_lucene_local_package_directory couchdb_lucene_version_name .tar.gz delegate_to 127.0.0.1

AnsibleTask become True become_user root file path couchdb_lucene_install_path state directory owner root group root mode,0751

AnsibleTask become True become_user root template src templates/couchdb_lucene_install_path/couchdb-lucene-couchdb_lucene_version_number/conf/couchdb-lucene.ini.j2 dest couchdb_lucene_install_path /couchdb-lucene- couchdb_lucene_version_number /conf/couchdb-lucene.ini owner root group root mode,0640

AnsibleTask become True become_user root template src templates/couchdb_lucene_install_path/couchdb-lucene-couchdb_lucene_version_number/bin/run.j2 dest couchdb_lucene_install_path /couchdb-lucene- couchdb_lucene_version_number /bin/run owner root group root mode,0751

AnsibleTask become True become_user root template src templates/etc/init.d/couchdb-lucene.j2 dest /etc/init.d/couchdb-lucene owner root group root mode,0751

AnsibleTask become True become_user root service name couchdb-lucene enabled True

AnsibleTask become True become_user root service name couchdb-lucene state restarted

AnsibleTask become True become_user root file path dhis_user_home /config owner dhis_system_user group dhis_system_group state directory mode,488

AnsibleTask become True become_user root template src templates/dhis_user_home/config/dhis.conf.j2 dest dhis_user_home /config/dhis.conf owner dhis_system_user group dhis_system_group mode,384

AnsibleTask become True become_user root template src templates/dhis_user_home/dhis_tomcat_instance/bin/setenv.sh.j2 dest dhis_user_home dhis_tomcat_instance /bin/setenv.sh owner dhis_system_user group dhis_system_group mode,484 notify restart tomcat7 instance

AnsibleTask become True become_user root template src templates/etc/mysql/mysql.conf.d/mysqld.override.cnf.j2 dest /etc/mysql/mysql.conf.d/mysqld.override.cnf owner root group root mode,484

AnsibleTask become True become_user root service name mysql state started enabled True

AnsibleTask become True become_user root file path mysqlbkup_install_location owner mysql_backup_system_user group mysql_backup_system_group mode,493

AnsibleTask become True become_user root template src item.src dest item.dest owner mysql_backup_system_user group mysql_backup_system_group mode,384 with_items mysqlbkup_install_location /mysqlbkup.cnf

AnsibleTask become True become_user root file path mysql_backup_dir state directory owner mysql_backup_system_user group mysql_backup_system_group mode,488

AnsibleTask become True become_user root template src templates/mysqlbkup_install_location/perform_mysql_backup.sh.j2 dest mysqlbkup_install_location /perform_mysql_backup.sh owner mysql_backup_system_user group mysql_backup_system_group mode,488

AnsibleTask become True become_user root file path mysqlbkup_install_location /mysqlbkup.sh owner mysql_backup_system_user group mysql_backup_system_group mode,488

AnsibleTask when not gzipped become True become_user root copy src dump_directory dump_file dest /tmp/ dump_file owner root group root mode,384

AnsibleTask when gzipped become True become_user root copy src dump_directory dump_file .gz dest /tmp/ dump_file .gz owner root group root mode,384

AnsibleTask when gzipped become True become_user root file path /tmp/ dump_file state absent

AnsibleTask when gzipped become True become_user root command gunzip /tmp/ dump_file .gz

AnsibleTask become True become_user root file path /tmp/ dump_file state absent

AnsibleTask become True become_user root template src templates/etc/nginx/ item .conf.j2 dest /etc/nginx/ item .conf mode,420 owner root group root with_items nginx

AnsibleTask become True become_user root template src site_file dest /etc/nginx/sites-available/ site_name mode,420 owner root group root

AnsibleTask become True become_user root file path /etc/nginx/sites-enabled/ site_name state absent

AnsibleTask become True become_user root file src /etc/nginx/sites-available/ site_name dest /etc/nginx/sites-enabled/ site_name state link

AnsibleTask become True become_user root service name nginx enabled True

AnsibleTask when restart_nginx become True become_user root service name nginx state restarted

AnsibleTask become True become_user root file path ssl_file_dir owner root group root state directory mode,420

AnsibleTask become True become_user root command openssl dhparam -out ssl_file_dir /dhparam.pem 2048 creates= ssl_file_dir /dhparam.pem

AnsibleTask when not certs_from_letsencrypt become True become_user root copy src ssl_playbooks_dir item dest ssl_file_dir item mode,384 owner root group root with_items ssl_key ssl_cert

AnsibleTask become True become_user root template src templates/etc/nginx/ssl-site_name.conf.j2 dest /etc/nginx/ssl- site_name .conf mode,420 owner root group root

AnsibleTask become True become_user root service name openmrs_tomcat_instance state restarted

AnsibleTask debug msg openmrs_home_directory /openmrs-runtime.propeties file does exist on the server failed_when True when not openmrs_properties_file_status2.stat.exists

AnsibleTask become True become_user root file path openmrs_home_directory owner openmrs_system_user group openmrs_system_group state directory mode,509

AnsibleTask become True become_user root file src openmrs_home_directory dest /var/lib/OpenMRS owner openmrs_system_user group openmrs_system_group state link mode,511

AnsibleTask become True become_user root file path openmrs_binary_download_directory state directory owner ansible_ssh_user mode,0755

AnsibleTask become True become_user root file path item state absent with_items openmrs_tomcat_user_home openmrs_tomcat_instance /webapps/ openmrs_install_name .war openmrs_tomcat_user_home openmrs_tomcat_instance /webapps/ openmrs_install_name openmrs_binary_file_path

AnsibleTask become True become_user root copy src openmrs_binary_file_path dest openmrs_tomcat_user_home openmrs_tomcat_instance /webapps/ openmrs_install_name .war owner openmrs_system_user group openmrs_system_group remote_src True

AnsibleTask become True become_user root copy src tmp/openmrs_user_property_trigger.sql dest /tmp/ openmrs_mysql_database_trigger .sql owner root group root mode,448

AnsibleTask debug msg Please make sure openmrs_encryption_vector and openmrs_encryption_key are set Check the openmrs_home_directory /openmrs-runtime.properties file currently in the server if these variables are not yet set in the inventories failed_when True when openmrs_require_encryption and openmrs_encryption_vector|length 0 or openmrs_encryption_key|length 0

AnsibleTask become True become_user root template src templates/openmrs_home_directory/openmrs-runtime.properties.j2 dest openmrs_home_directory /openmrs-runtime.properties owner openmrs_system_user group openmrs_system_group mode,416

AnsibleTask become True become_user root template src templates/openmrs_tomcat_user_home/openmrs_tomcat_instance/conf/logging.properties.j2 dest openmrs_tomcat_user_home openmrs_tomcat_instance /conf/logging.properties owner openmrs_system_user group openmrs_system_group mode,416

AnsibleTask become True become_user root file state absent path openmrs_home_directory /modules

AnsibleTask become True become_user root file path openmrs_home_directory /modules owner openmrs_system_user group openmrs_system_group state directory mode,493

AnsibleTask become True become_user root copy src files/usr/share/tomcat7/.OpenMRS/modules/ item .omod dest openmrs_home_directory /modules/ item .omod mode,420 owner openmrs_system_user group openmrs_system_group with_items openmrs_modules

AnsibleTask become True become_user root file path openmrs_home_directory /owa state absent

AnsibleTask file state absent path opensrp_local_checkout_path delegate_to 127.0.0.1

AnsibleTask template src templates/opensrp_local_checkout_path/configs/assets/config/ item .properties.j2 dest opensrp_local_checkout_path /configs/assets/config/ item .properties delegate_to 127.0.0.1 with_items opensrp couchdb activemq

AnsibleTask template src templates/opensrp_local_checkout_path/opensrp-web/src/main/resources/ item .properties.j2 dest opensrp_local_checkout_path /src/main/resources// item .properties delegate_to 127.0.0.1 with_items quartz

AnsibleTask template src templates/opensrp_local_checkout_path/opensrp-web/src/main/resources/spring/ item .xml.j2 dest opensrp_local_checkout_path /src/main/resources/spring/ item .xml delegate_to 127.0.0.1 with_items oauth_clients

AnsibleTask when opensrp_psql_as_primary_database template src templates/opensrp_local_checkout_path/opensrp-web/src/main/META-INF/ item .xml.j2 dest opensrp_local_checkout_path /src/main/webapp/META-INF/ item .xml delegate_to 127.0.0.1 with_items context

AnsibleTask shell cd opensrp_local_checkout_path mvn package -Dmaven.test.skip=true -P opensrp_maven_package_profiles join delegate_to 127.0.0.1

AnsibleTask file path opensrp_local_package_directory state directory delegate_to 127.0.0.1

AnsibleTask copy src opensrp_local_checkout_path /target/opensrp.war dest opensrp_local_package_directory opensrp_version .war delegate_to 127.0.0.1

AnsibleTask become True become_user root file path opensrp_resource_dir owner opensrp_system_user group tomcat_group state directory mode,493

AnsibleTask become True become_user root file path opensrp_resource_dir item owner opensrp_system_user group tomcat_group state directory mode,493 with_items opensrp_resource_sub_dirs

AnsibleTask become True become_user root file path opensrp_multimedia_parent_directory group tomcat_group state directory mode,509

AnsibleTask become True become_user root file path item state absent with_items opensrp_user_home opensrp_tomcat_instance /webapps/ opensrp_install_name .war opensrp_user_home opensrp_tomcat_instance /webapps/ opensrp_install_name

AnsibleTask become True become_user root copy src opensrp_local_package_directory opensrp_version .war dest opensrp_user_home opensrp_tomcat_instance /webapps/ opensrp_install_name .war owner opensrp_system_user group tomcat_group

AnsibleTask become True become_user root service name opensrp_tomcat_instance state restarted

AnsibleTask become True become_user root copy src tmp/opensrp_motech_database.sql dest /tmp/ opensrp_motech_database .sql owner root group root mode,384

AnsibleTask file state absent path opensrp_local_checkout_path tags postgresql

AnsibleTask template src templates/opensrp_local_checkout_path/configs/assets/migrations/environments/opensrp_mybatis_env.properties.j2 dest opensrp_local_checkout_path /configs/assets/migrations/environments/ opensrp_mybatis_env .properties tags postgresql

AnsibleTask become True become_user root file path opensrp_mybatis_install_dir state directory owner ansible_ssh_user mode,0755 tags postgresql

AnsibleTask command opensrp_mybatis_install_dir /mybatis-migrations- opensrp_mybatis_version /bin/migrate up path= opensrp_local_checkout_path /configs/assets/migrations env= opensrp_mybatis_env opensrp_mybatis_migration_extra_args tags postgresql

AnsibleTask become True become_user root file path current_file.dest owner opensrp_system_user group tomcat_group state directory

AnsibleTask become True become_user root copy src current_file.src dest current_file.dest owner opensrp_system_user group tomcat_group

AnsibleTask become True become_user root template src etc/logrotate.d/tomcat_instance.j2 dest tomcat_logrotate_conf_dest owner root group root mode,420

AnsibleTask become True become_user root template src templates/usr/share/tomcat7/bin/setenv.sh.j2 dest /usr/share/tomcat7/bin/setenv.sh owner root group root mode,509

AnsibleTask become True become_user root service name tomcat7 state started enabled True

AnsibleTask become True become_user root file path /usr/share/tomcat7 state directory recurse True owner tomcat_user group tomcat_group

AnsibleTask become True become_user root command tomcat7-instance-create -p tomcat_http_port -c tomcat_shutdown_port tomcat_instance args chdir tomcat_user_home creates tomcat_user_home tomcat_instance tags tomcat-user-instance

AnsibleTask become True become_user root template src templates/tomcat_user_instance_home/bin/setenv.sh.j2 dest tomcat_user_home tomcat_instance /bin/setenv.sh owner tomcat_system_user group tomcat_system_group mode,484 notify restart tomcat7 instance tags tomcat-user-instance

AnsibleTask become True become_user root template src templates/var/lib/tomcat7/conf/ item .j2 dest tomcat_user_home tomcat_instance /conf/ item owner tomcat_system_user group tomcat_system_group mode,420 with_items server.xml web.xml notify restart tomcat7 instance tags tomcat-user-instance

AnsibleTask become True become_user root file path tomcat_user_home tomcat_instance owner tomcat_system_user group tomcat_system_group state directory mode,484 recurse True tags tomcat-user-instance

AnsibleTask become True become_user root template src etc/systemd/system/tomcat_user_instance.service.j2 dest /etc/systemd/system/ tomcat_instance .service notify restart tomcat7 instance tags openmrs-tomcat-user

AnsibleTask copy src ansible_user_dir /workspace/logs/collect_logs.sh dest ansible_user_dir /collect_logs.sh remote_src True when collect_logs_path.stat.exists

AnsibleTask copy src ansible_user_dir /workspace/logs/zuul-variables.yaml dest ansible_user_dir /zuul-variables.yaml remote_src True when zuul_variables_path.stat.exists

AnsibleTask copy src ansible_user_dir /workspace/logs/hostvars-variables.yaml dest ansible_user_dir /hostvars-variables.yaml remote_src True when hostvars_variables_path.stat.exists

AnsibleTask copy src ansible_user_dir /workspace/logs/role-vars.yaml dest ansible_user_dir /role-vars.yaml remote_src True when role_variables_path.stat.exists

AnsibleTask copy src ansible_user_dir /collect_logs.sh dest ansible_user_dir /workspace/logs/collect_logs.sh remote_src True when collect_logs_path.stat.exists changed_when True

AnsibleTask copy src ansible_user_dir /zuul-variables.yaml dest ansible_user_dir /workspace/logs/zuul-variables.yaml remote_src True when zuul_variables_path.stat.exists changed_when True

AnsibleTask copy src ansible_user_dir /hostvars-variables.yaml dest ansible_user_dir /workspace/logs/hostvars-variables.yaml remote_src True when hostvars_variables_path.stat.exists changed_when True

AnsibleTask copy src ansible_user_dir /role-vars.yaml dest ansible_user_dir /workspace/logs/role-vars.yaml remote_src True when role_variables_path.stat.exists changed_when True

AnsibleTask shell set -euox ansible_python.executable -m pip install user ansible_python.executable -m tox version args warn False register result changed_when installed in result.stdout

AnsibleTask shell cmd This builder when run from a child job of validate-buildsys-tags configures the temporary repositories created by it This allows to install the packages in that repository and test them set +e -x This job requires variable to be defined if -z release|default then echo ERROR in job definition exit 1 fi logs= buildset_artifacts_url|default If we could not find a working repository give up curl -o /dev/null -sIf logs || exit 1 Use the latest repository hash If DLRN built multiple packages there will be multiple repositories We want the latest repository which contains all of the packages that were just built repository= logs /centos/current The rdoinfo-DLRN-check job may create different repos centos-rpm-master centos-pike-rdo when it builds packages for more than one release In that case let us try to find the right one curl -o /dev/null -sIf repository if -ne 0 then releases= rpm-master train-rdo stein-rdo rocky-rdo queens-rdo for release in releases do repository= logs /centos- release /current curl -o /dev/null -sIf repository || continue break done fi If we could not find a working repository give up curl -o /dev/null -sIf repository || exit 1 echo repository chdir ansible_user_dir /workspace environment zuul zuul_legacy_vars register repourl changed_when True

AnsibleTask shell cmd This builder when run from a child job of validate-buildsys-tags configures the temporary repositories created by it This allows to install the packages in that repository and test them set +e -x This job requires variables and to be defined REQUIRED=0 CREPOS_FILE=changed_repos.txt if -z rdoinfo_phase|default -o -z rdoinfo_release|default then echo ERROR in job definition exit 1 fi Set log path if -z buildset_artifacts_url|default then echo buildset_artifacts_url is not defined job needs to be run with parent job validate-buildsys-tags exit 1 fi logs= buildset_artifacts_url If we could not find a working repository give up curl -o CREPOS_FILE -sf logs/repos/changed_repos.txt || exit 1 if grep -q -E rdoinfo_release rdoinfo_phase CREPOS_FILE then echo INFO this test is not required tee not_required exit 0 fi chdir ansible_user_dir /workspace environment zuul zuul_legacy_vars changed_when True

AnsibleTask changed_when True shell cmd This builder when run from a child job of validate-buildsys-tags configures the temporary repositories created by it This allows to install the packages in that repository and test them set +e -x This job requires variables and to be defined CREPOS_FILE=changed_repos.txt if -z rdoinfo_phase|default -o -z rdoinfo_release|default then echo ERROR in job definition exit 1 fi if rdoinfo_release master then RELEASE= master_release else RELEASE= rdoinfo_release fi Re-construct the expected repository URL ZUUL_REF= echo ZUUL_REF |cut -f4 -d job= validate-buildsys-tags LOG_PATH= BASE_LOG_PATH/ ZUUL_PIPELINE/ job/ ZUUL_REF logs= https //logserver.rdoproject.org/ LOG_PATH/ NOTE pabelanger Override logs for zuulv3 jobs if -d /home/zuul then logs= buildset_artifacts_url fi If we could not find a working repository give up curl -o CREPOS_FILE -sf logs/repos/changed_repos.txt || exit 1 if grep -q -E RELEASE- rdoinfo_phase CREPOS_FILE then echo INFO this test is not required tee not_required exit 0 fi chdir ansible_user_dir /workspace environment zuul zuul_legacy_vars

AnsibleTask set_fact role_vars extra_repo_url false if rdoinfo_build_containers|default false |bool else true false if rdoinfo_build_containers|default false |bool else true optional_role_vars push_registry|default if rdoinfo_build_containers|default false |bool else omit when not stop_file.stat.exists

AnsibleTask command sudo -n true failed_when False changed_when False register _worker_is_sudoer

AnsibleTask changed_when True shell cmd set +e Setup virtualenv with tox and use it tox -epy36 notest .tox/py36/bin/activate Use latest pymod2pkg from Git to avoid waiting for new releases pip install upgrade git+https //opendev.org/openstack/pymod2pkg Prepare config if zuul.branch stable/ then stable branch repo_branch= sed s stable/ zuul.branch baseurl= https //centos8-rpm-packaging-ci.rdoproject.org/ repo_branch/repos/ use_version_from_spec= 1 else master baseurl= https //centos8-rpm-packaging-ci.rdoproject.org/repos/ use_version_from_spec= 1 fi repo= http //opendev.org/openstack/rpm-packaging directory= /openstack skip= openstack-macros pkginfo_driver= dlrn.drivers.gitrepo.GitRepoDriver branch= zuul.branch target=centos8 Update the configuration sed -i s repo= repo= repo projects.ini sed -i s directory= directory= directory projects.ini sed -i s skip= skip= skip projects.ini sed -i s use_version_from_spec= use_version_from_spec= use_version_from_spec projects.ini sed -i s keep_tarball= keep_tarball=1 projects.ini sed -i s pkginfo_driver= pkginfo_driver= pkginfo_driver projects.ini sed -i s baseurl= baseurl= baseurl projects.ini sed -i s source= source= branch projects.ini sed -i s distro= distro= branch projects.ini sed -i s target= target= target projects.ini Prepare directories mkdir -p data/repos if -d ansible_user_dir zuul.projects .src_dir then ln -s ansible_user_dir zuul.projects .src_dir data/package_info else We are outside the gate just do a regular git clone pushd data/ rm -rf first for idempotency rm -rf package_info git clone https //opendev.org/openstack/rpm-packaging package_info cd package_info git checkout branch popd fi Find out which packages are being tested pushd data/package_info CHANGED_FILES= git diff name-only diff-filter=ACMTR HEAD~1 PACKAGES_TO_BUILD= for spec in CHANGED_FILES do filename= echo spec awk -F/ print NF extension= echo filename awk -F. print NF if extension j2 then Remove the .spec.j2 extension PACKAGES_TO_BUILD= PACKAGES_TO_BUILD package-name echo filename awk FS=OFS= NF NF print fi done popd if -n PACKAGES_TO_BUILD then exit 0 fi TIMEOUT= zuul.timeout default timeout signal=SIGKILL TIMEOUT dlrn config-file projects.ini head-only PACKAGES_TO_BUILD dev local verbose-build sequential ret= mkdir -p logs rsync -avzr data/repos logs/centos8 Clean up mock cache just in case there is a change for the next run mock -r data/dlrn-1.cfg scrub=all exit ret chdir ansible_user_dir zuul.projects .src_dir environment LANG en_US.UTF-8

AnsibleTask changed_when True shell cmd set +e FIXME jpena some packages are moving to use singlespec which requires an up to date openstack-macros package in the builder and not just in the mock buildroot sudo yum -y install https //rpm-packaging-ci.rdoproject.org/repos/deps/openstack-macros-2019.1.1-0.20190225070246.ce6a105.el7.noarch.rpm Setup virtualenv with tox and use it tox -epy27 notest .tox/py27/bin/activate Use latest pymod2pkg from Git to avoid waiting for new releases pip install upgrade git+https //opendev.org/openstack/pymod2pkg Prepare config if zuul.branch stable/ then stable branch repo_branch= sed s stable/ zuul.branch We only support Ocata and later as stable repos if repo_branch newton then exit 0 fi baseurl= https //rpm-packaging-ci.rdoproject.org// repo_branch/repos/ use_version_from_spec= 1 else master baseurl= https //rpm-packaging-ci.rdoproject.org//repos/ use_version_from_spec= 1 fi repo= http //opendev.org/openstack/rpm-packaging directory= /openstack skip= openstack-macros pkginfo_driver= dlrn.drivers.gitrepo.GitRepoDriver branch= zuul.branch target=centos Update the configuration sed -i s repo= repo= repo projects.ini sed -i s directory= directory= directory projects.ini sed -i s skip= skip= skip projects.ini sed -i s use_version_from_spec= use_version_from_spec= use_version_from_spec projects.ini sed -i s keep_tarball= keep_tarball=1 projects.ini sed -i s pkginfo_driver= pkginfo_driver= pkginfo_driver projects.ini sed -i s baseurl= baseurl= baseurl projects.ini sed -i s source= source= branch projects.ini sed -i s distro= distro= branch projects.ini sed -i s target= target= target projects.ini Prepare directories mkdir -p data/repos if -d ansible_user_dir zuul.projects .src_dir then ln -s ansible_user_dir zuul.projects .src_dir data/package_info else We are outside the gate just do a regular git clone pushd data/ rm -rf first for idempotency rm -rf package_info git clone https //opendev.org/openstack/rpm-packaging package_info cd package_info git checkout branch popd fi Find out which packages are being tested pushd data/package_info CHANGED_FILES= git diff name-only diff-filter=ACMTR HEAD~1 PACKAGES_TO_BUILD= for spec in CHANGED_FILES do filename= echo spec awk -F/ print NF extension= echo filename awk -F. print NF if extension j2 then Remove the .spec.j2 extension PACKAGES_TO_BUILD= PACKAGES_TO_BUILD package-name echo filename awk FS=OFS= NF NF print fi done popd if -n PACKAGES_TO_BUILD then exit 0 fi TIMEOUT= zuul.timeout default timeout signal=SIGKILL TIMEOUT dlrn config-file projects.ini head-only PACKAGES_TO_BUILD dev local verbose-build sequential ret= mkdir -p logs rsync -avzr data/repos logs/centos Clean up mock cache just in case there is a change for the next run mock -r data/dlrn-1.cfg scrub=all exit ret chdir ansible_user_dir zuul.projects .src_dir environment LANG en_US.UTF-8

AnsibleTask changed_when True shell cmd BASE= http // mirror_fqdn default /centos sed -e s|^ baseurl=http //mirror.centos.org/centos|baseurl= BASE| /^mirrorlist=/d -i scripts/centos*.cfg noqa 303 sed -e s|^ baseurl=http //mirror.centos.org/\ contentdir|baseurl= BASE| -i scripts/centos*.cfg noqa 303 chdir ansible_user_dir zuul.projects .src_dir

AnsibleTask changed_when True shell cmd export TAG= tag default export CENTOS_VERS= centos_version default export REPO_SERVER= https //trunk.rdoproject.org export TARGET= centos if CENTOS_VERS centos8 then export PYTHON_VERSION= py36 export TARGET= centos8 fi if -z TAG then ARGS= TARGET REPO_SERVER CENTOS_VERS else ARGS= TARGET REPO_SERVER CENTOS_VERS TAG fi if zuul.pipeline openstack- then ARGS= fi ./scripts/run_tests.sh ansible_user_dir zuul.projects .src_dir ARGS chdir ansible_user_dir zuul.projects .src_dir environment ZUUL_PROJECT zuul.project.name ZUUL_BRANCH zuul.branch ZUUL_PIPELINE zuul.pipeline ZUUL_CHANGES set comma joiner for chg in zuul comma chg.project.name chg.branch chg.change_url endfor LANG en_US.UTF-8

AnsibleTask shell cmd yum-config-manager enable save epel become True when ansible_distribution CentOS and ansible_distribution_major_version|int 8

AnsibleTask shell cmd yum-config-manager enable save epel become True when ansible_distribution CentOS ansible_distribution_major_version 8

AnsibleTask shell cmd yum-config-manager disable save epel become True when ansible_distribution CentOS ansible_distribution_major_version 8

AnsibleTask shell cmd set +e This builder when run from a child job of a DLRN based job will rebuild and test installation of a src.rpm when built using the repository configuration used by Tripleo CI jobs This ensures that we are not breaking the TripleO gates with a packaging change logs= buildset_artifacts_url If we could not find a working repository give up curl -o /dev/null -sIf logs || exit 1 CENTOS_VERS= centos_version default Use the latest repository hash If DLRN built multiple packages there will be multiple repositories We want the latest repository which contains all of the packages that were just built if CENTOS_VERS centos7 then repository= logs /centos/current mock_cfg=centos.cfg else repository= logs /centos8/current mock_cfg=centos8.cfg fi Fetch all src.rpm files we will rebuild them here wget -e robots=off -nd -r accept .src.rpm repository Create mock config file if zuul.branch -rdo then branch= sed s/-rdo// zuul.branch else branch= master fi baseurl= https //trunk.rdoproject.org/ CENTOS_VERS branch Fetch base mock configuration we will update it to match TripleO requirements cp ansible_user_dir zuul.projects .src_dir /scripts/ mock_cfg Remove the last line then add all required repos sed -i d mock_cfg current if CENTOS_VERS centos7 || CENTOS_VERS centos8 -a zuul.branch train-rdo then curl -o /tmp/delorean-current.repo baseurl /current/delorean.repo sed -i */priority=10/ /tmp/delorean-current.repo sed -i delorean\ /\ delorean-current\ /tmp/delorean-current.repo echo /tmp/delorean-current.repo echo includepkgs=ansible-role-container-registry ansible-role-tripleo* ansible-tripleo-ipsec diskimage-builder instack instack-undercloud os-apply-config os-collect-config os-net-config os-refresh-config openstack-tripleo-* python*-tripleo* puppet-* python*-paunch* paunch-services tripleo-ansible ansible-config_template /tmp/delorean-current.repo else curl -o /tmp/delorean-current.repo baseurl /component/tripleo/current/delorean.repo sed -i */priority=10/ /tmp/delorean-current.repo sed -i delorean-component-tripleo\ /\ delorean-current\ /tmp/delorean-current.repo fi cat /tmp/delorean-current.repo mock_cfg echo mock_cfg current-tripleo curl -o /tmp/delorean-current-tripleo.repo baseurl /current-tripleo/delorean.repo sed -i */priority=20/ /tmp/delorean-current-tripleo.repo sed -i delorean\ /\ delorean-current-tripleo\ /tmp/delorean-current-tripleo.repo cat /tmp/delorean-current-tripleo.repo mock_cfg echo mock_cfg deps curl baseurl /delorean-deps.repo mock_cfg echo mock_cfg echo mock_cfg Build package OUTPUT_DIRECTORY= PWD/build mkdir OUTPUT_DIRECTORY MOCKOPTS= -v -r mock_cfg resultdir OUTPUT_DIRECTORY ret=0 /usr/bin/mock MOCKOPTS rebuild *.src.rpm 2 1 RC_BUILD= if RC_BUILD -ne 0 then ret= RC_BUILD else sed -i s/.*chroot_setup_cmd */config_opts basesystem mock_cfg sed -i d mock_cfg /usr/bin/mock MOCKOPTS clean 2 1 /usr/bin/mock MOCKOPTS init 2 1 /usr/bin/mock MOCKOPTS install OUTPUT_DIRECTORY/* src .rpm 2 1 RC_INSTALL= if RC_INSTALL -ne 0 then ret= RC_INSTALL fi fi Retrieve logs/repositories/packages mkdir buildset cp -a OUTPUT_DIRECTORY /* buildset/ exit ret changed_when True

AnsibleTask file path /etc/nodepool state directory mode,511 become True

AnsibleTask copy dest /etc/nodepool/node_private content nodepool.private_ipv4 become True

AnsibleTask become True file group zuul-worker owner zuul-worker path /home/zuul state directory when ansible_user_id zuul-worker

AnsibleTask shell cmd ln -s /home/zuul-worker/workspace /home/zuul/workspace executable /bin/bash environment zuul zuul_legacy_vars when ansible_user_id zuul-worker

AnsibleTask shell cmd echo DEBUG JJB template name template-name If this is called in a periodic job these will not be set echo Use default for ZUUL_BRANCH and ZUUL_REF if needed export ZUUL_BRANCH= ZUUL_BRANCH -master export ZUUL_REF= ZUUL_REF -None In the post pipeline ZUUL_REF is master but does not behave as we want So fall back on None ZUUL_REF master ZUUL_REF=None echo Clean workspace rm -Rf ./* echo Clone ZUUL_PROJECT zuul-cloner is installed as /usr/zuul-env/bin/zuul-cloner in upstream images export PATH= PATH /usr/zuul-env/bin Note dmsimard If we are running for a periodic job there is no incentive in using Zuul cloner because the jobs are not going to potentially depend on things from the zuul context ex depends-on The zuul git namespace where the job was triggered from is also wonky for periodic jobs A periodic pipeline targetted at an upstream project would still end up trying to clone from review.rdo This should be revisited in Zuul v3 which is supposedly not a problem We can receive reviews from review.openstack.org Builds that are run as third party for review.o.o are in the Zuul pipelines prefixed by openstack- GIT_SOURCE= https //review.rdoproject.org/r if ZUUL_PIPELINE openstack- then GIT_SOURCE= https //opendev.org fi git config global http.postBuffer 524288000 git config global https.postBuffer 524288000 if ZUUL_PIPELINE periodic then Note trown we need to make sure we clone this to the same location as zuul-cloner will so that manual and periodic jobs can share builders git clone depth=1 GIT_SOURCE/ ZUUL_PROJECT ZUUL_PROJECT else /usr/zuul-env/bin/zuul-cloner -v GIT_SOURCE ZUUL_PROJECT fi chdir ansible_user_dir /workspace environment zuul zuul_legacy_vars

AnsibleTask shell cmd set +e mkdir WORKSPACE/logs sudo yum -y install rubygems gem install asciidoctor pushd ZUUL_PROJECT ~/bin/asciidoctor -v -b html5 *.txt -D WORKSPACE/logs popd chdir ansible_user_dir /workspace environment zuul zuul_legacy_vars

AnsibleTask shell cmd set -e mkdir WORKSPACE/logs sudo yum -y install rpm-build rpmdevtools centos-release-opstools centos-release-openstack-queens sudo yum -y groupinstall Development Tools cat EOF sudo tee /etc/yum.repos.d/opstools-build.repo centos-opstools-perfmon-testing name=CentOS-7 OpsTools Performance monitoring testing repo baseurl=http //cbs.centos.org/repos/opstools7-perfmon-common-testing/\ basearch/os gpgcheck=0 enabled=1 centos-opstools-sensu-testing name=CentOS-7 OpsTools availability monitoring testing repo baseurl=http //cbs.centos.org/repos/opstools7-sensu-common-testing/\ basearch/os gpgcheck=0 enabled=1 centos-opstools-sensu-027-testing name=CentOS-7 OpsTools availability monitoring sensu 0.27 testing repo baseurl=http //cbs.centos.org/repos/opstools7-sensu-027-testing/\ basearch/os gpgcheck=0 enabled=1 centos-opstools-sensu-110-testing name=CentOS-7 OpsTools availability monitoring sensu 1.1.x testing repo baseurl=http //cbs.centos.org/repos/opstools7-sensu-110-testing/\ basearch/os gpgcheck=0 enabled=1 centos-opstools-common-testing name=CentOS-7 OpsTools common testing baseurl=http //cbs.centos.org/repos/opstools7-common-testing/\ basearch/os gpgcheck=0 enabled=1 centos-opstools-fluent-testing name=CentOS-7 OpsTools fluentd testing baseurl=http //cbs.centos.org/repos/opstools7-fluentd-012-testing/\ basearch/os gpgcheck=0 enabled=1 EOF sudo yum -y update pushd ZUUL_PROJECT base= ` basename ZUUL_PROJECT ` if -f base.spec then specfile= base.spec else num_spec= ` ls -l *.spec wc -l ` if num_spec -eq 1 then specfile= ` ls *.spec ` else echo ** ERROR There are more than one spec file exit 1 fi fi spectool -g specfile sudo yum-builddep -y specfile rpmbuild -D PWD -D PWD -D PWD -ba specfile move built rpms to logs for later use mv SRPMS/* WORKSPACE/logs mv RPMS/* WORKSPACE/logs popd chdir ansible_user_dir /workspace environment zuul zuul_legacy_vars

AnsibleTask shell cmd set -e sudo yum -y install rpmlint pushd ZUUL_PROJECT base= ` basename ZUUL_PROJECT ` if -f base.spec then specfile= base.spec else num_spec= ` ls -l *.spec wc -l ` if num_spec -eq 1 then specfile= ` ls *.spec ` else echo ** ERROR There are more than one spec file exit 1 fi fi rpmlint specfile popd chdir ansible_user_dir /workspace environment zuul zuul_legacy_vars

AnsibleTask shell cmd set -e if grep -c ^CentOS /etc/system-release -eq 0 then sudo dnf remove -y yum-utils sudo dnf install -y createrepo_c dnf-utils fedora-packager else For CentOS we need to use yum4 repo to use dnf libraries sudo yum -y install /usr/bin/yum4 sudo yum4 -y install dnf-plugins-core sudo yum -y install createrepo_c centos-packager fi virtualenv -p PYTHON_VERSION system-site-packages .venv source .venv/bin/activate pushd ZUUL_PROJECT pip install enable debug set -x if -d functional_tests then pushd functional_tests for i in ls -d scenario* do pushd i OUTPUT_DIR= grep output_dir fedora_config cut -d= -f2 tr -d space rm -rf OUTPUT_DIR mkdir -p OUTPUT_DIR if -f comps*xml then cp comps*xml OUTPUT_DIR fi echo INFO Running synchronization using sinkhole sinkhole config fedora_config config_file echo INFO List of synchronized packages sudo repoquery repofrompath=temp file // OUTPUT_DIR enablerepo=temp -q -a if -f expected_packages then cat expected_packages|while read pkg do echo INFO checking if pkg is in the repo sudo repoquery repofrompath=temp file // OUTPUT_DIR enablerepo=temp -q pkg grep -q -w pkg done fi popd done popd fi popd chdir ansible_user_dir /workspace environment zuul zuul_legacy_vars

AnsibleTask shell cmd set -e rm -Rf config build zuul-cloner is installed as /usr/zuul-env/bin/zuul-cloner in nodepool images export PATH= PATH /usr/zuul-env/bin zuul-cloner http //gerrit/r config Prepare a default configuration for zuul and nodepool mkdir -p build/nodepool build/zuul build/repoxplorer cp ~jenkins/defconf/zuul.conf build/zuul/zuul.conf cp ~jenkins/defconf/nodepool.yaml build/nodepool/_nodepool.yaml cp ~jenkins/defconf/repoxplorer.py build/repoxplorer/config.py Prepare a fake jenkins-job config file to force offline jobs check echo -e jenkins \nurl=http //localhost:99 build/jenkins.ini cd config echo Checking jobs jenkins-jobs conf ../build/jenkins.ini test jobs/ /dev/null echo Checking jobs-zuul jenkins-jobs conf ../build/jenkins.ini test jobs-zuul/ /dev/null echo Checking zuul /usr/share/sf-config/scripts/yaml-merger.py zuul tee ../build/zuul/layout.yaml cp zuul/*.py ../build/zuul/ || true zuul-server -c ../build/zuul/zuul.conf -l ../build/zuul/layout.yaml -t echo Checking nodepool v2 /usr/share/sf-config/scripts/sf-nodepool-conf-merger.py nodepool/nodepool.yaml ../build/nodepool/nodepool.yaml v2 nodepool -c ../build/nodepool/nodepool.yaml config-validate if -f /usr/bin/nodepool3 then echo Checking nodepool v3 echo -e -\n ../build/nodepool/_nodepool.yaml /usr/share/sf-config/scripts/sf-nodepool-conf-merger.py nodepoolV3/nodepool.yaml ../build/nodepool/nodepool.yaml v3 nodepool3 -c ../build/nodepool/nodepool.yaml config-validate fi echo Checking gerrit replication git config -f gerrit/replication.config -l /dev/null echo Checking gerrit commentlinks python -c import yaml in yaml.safe_load open echo Check dashboards sf-update-dashboard check input dashboards/ echo Checking syntax errors in policy file python -c import yaml yaml.safe_load open if -f /usr/bin/repoxplorer-config-validate then echo Checking syntax errors in repoxplorer definition files repoxplorer-config-validate config ../build/repoxplorer/config.py fi echo Checking resources changes Managesf validate can now use directly the local clone unset ZUUL_REF unset ZUUL_URL /usr/local/bin/resources.sh validate chdir ansible_user_dir /workspace environment zuul zuul_legacy_vars

AnsibleTask shell cmd set +e cd ZUUL_PROJECT sudo pip install -r test-requirements.txt python sanity-check.py chdir ansible_user_dir /workspace environment zuul zuul_legacy_vars

AnsibleTask shell cmd set -e echo Updating configuration using ZUUL_COMMIT ssh root install-server sf_configrepo_update ZUUL_COMMIT chdir ansible_user_dir /workspace environment zuul zuul_legacy_vars

AnsibleTask shell cmd mkdir -p WORKSPACE/logs cp -a /tmp/kolla WORKSPACE/logs/ Ensure permissions allow artifact uploading sudo chown -R id -u id -g WORKSPACE/logs chdir ansible_user_dir /workspace environment zuul zuul_legacy_vars

AnsibleTask shell cmd set -e set -x cat clonemap.yaml EOF clonemap name openstack-infra/devstack-gate dest devstack-gate EOF /usr/zuul-env/bin/zuul-cloner -m clonemap.yaml cache-dir /opt/git https //opendev.org openstack-infra/devstack-gate executable /bin/bash chdir ansible_user_dir /workspace environment zuul zuul_legacy_vars

AnsibleTask shell cmd git clone https //review.rdoproject.org/r/p/rdo-infra/ci-config.git WORKSPACE/rdo-infra/ci-config chdir ansible_user_dir /workspace environment zuul zuul_legacy_vars

AnsibleTask shell cmd cat EOF sudo tee /etc/nodepool/provider NODEPOOL_PROVIDER= nodepool.provider NODEPOOL_CLOUD= nodepool.cloud NODEPOOL_REGION= nodepool.region NODEPOOL_AZ= nodepool.az EOF chdir ansible_user_dir /workspace environment zuul zuul_legacy_vars

AnsibleTask shell cmd export RELEASE=master export PROMOTE_NAME=tripleo-ci-testing bash -xe WORKSPACE/rdo-infra/ci-config/ci-scripts/tripleo-upstream/get-hash.sh chdir ansible_user_dir /workspace environment zuul zuul_legacy_vars

AnsibleTask shell cmd export RELEASE=master bash -xe WORKSPACE/rdo-infra/ci-config/ci-scripts/tripleo-upstream/build-containers-images.sh chdir ansible_user_dir /workspace environment zuul zuul_legacy_vars

AnsibleTask become True shell dd if=/dev/zero of= ceph_loop_device_file bs=1 count=0 seek=7G losetup ceph_loop_device ceph_loop_device_file lsblk

AnsibleTask changed_when True shell cmd set -e -x if zuul.branch master then export RELEASE=master else export RELEASE= echo zuul.branch cut -d/ -f 2 fi sudo yum -y install libguestfs-tools policycoreutils-python wget sudo wget -O /etc/yum.repos.d/delorean.repo https //trunk.rdoproject.org/centos7- RELEASE /current/delorean.repo sudo wget -O /etc/yum.repos.d/delorean-deps.repo https //trunk.rdoproject.org/centos7- RELEASE /delorean-deps.repo NOTE jpena python36-distro a mock requirement conflicts with python2-distro sudo yum -y remove python36-distro sudo yum -y install openstack-octavia-diskimage-create NOTE cgoncalves Starting from Train release CentOS amphora images are built using the centos-minimal DIB element This element builds the base system in a chroot whereas the centos DIB element used in previous releases uses a pre-existing qcow image if RELEASE queens|rocky|stein then export IMAGE_NAME=CentOS-7-x86_64-GenericCloud.qcow2 wget https //cloud.centos.org/centos/7/images/ IMAGE_NAME sudo systemctl start libvirtd sudo LIBGUESTFS_BACKEND_SETTINGS=force_tcg LIBGUESTFS_BACKEND=direct virt-customize -a IMAGE_NAME selinux-relabel run-command yum-config-manager add-repo https //trunk.rdoproject.org/centos7- RELEASE /delorean-deps.repo sudo LIBGUESTFS_BACKEND_SETTINGS=force_tcg LIBGUESTFS_BACKEND=direct virt-customize -a IMAGE_NAME selinux-relabel run-command yum-config-manager add-repo https //trunk.rdoproject.org/centos7- RELEASE /current-passed-ci/delorean.repo export DIB_LOCAL_IMAGE= PWD/ IMAGE_NAME else mkdir PWD/rdo-repos cp /etc/yum.repos.d/delorean.repo /etc/yum.repos.d/delorean-deps.repo PWD/rdo-repos/ export DIB_YUM_MINIMAL_EXTRA_REPOS= PWD/rdo-repos fi sudo preserve-env=DIB_LOCAL_IMAGE DIB_YUM_MINIMAL_EXTRA_REPOS /usr/bin/octavia-diskimage-create.sh -s 3 -p -i centos -o amphora-x64-haproxy-centos.qcow2 Create output directory mkdir -p images/ RELEASE if -f amphora-x64-haproxy-centos.qcow2 then curdate= date Y m d- H M S mv amphora-x64-haproxy-centos.qcow2 images/ RELEASE /amphora-x64-haproxy-centos- curdate.qcow2 pushd images/ RELEASE ln -s amphora-x64-haproxy-centos- curdate.qcow2 amphora-x64-haproxy-centos.qcow2 popd fi chdir zuul.project.src_dir

AnsibleTask become True when ansible_distribution_major_version 8 ansible_distribution RedHat shell set -o pipefail set -x dnf config-manager enable rhui-* dnf makecache dnf repolist rpm -qa grep rhui changed_when True

AnsibleTask become True file path ansible_user_dir zuul.projects .src_dir /build/buildset state directory recurse True

AnsibleTask become True shell cmd set -euo pipefail make package-install podman version podman info log-level debug chdir ansible_user_dir zuul.projects .src_dir changed_when True register result retries 3 until fatal The remote end hung up unexpectedly not in result.stdout

AnsibleTask changed_when True become True shell cmd set -exuo pipefail mkdir -p build/buildset pushd build/buildset cp -l ~/rpmbuild/RPMS/*/*.rpm createrepo popd chdir ansible_user_dir zuul.projects .src_dir args warn False

AnsibleTask shell cmd if -f Modulefile -o -f metadata.json then if -f Modulefile then MODULE= awk print NF Modulefile |tr -d elif -f metadata.json then MODULE= python -c json print json.load open metadata.json name fi if -z MODULE then echo Module name not defined in Modulefile or metadata.json else mkdir -p MODULE rsync -a exclude= MODULE exclude MODULE cd MODULE fi fi if -f Gemfile then mkdir .bundled_gems export GEM_HOME= ` pwd ` /.bundled_gems gem install bundler version 1.17.3 no-rdoc no-ri verbose gem install rake version GEM_HOME/bin/bundle install without system_tests GEM_HOME/bin/bundle exec rake lint 2 1 else rake lint 2 1 fi chdir ansible_user_dir zuul.project.src_dir changed_when True

AnsibleTask shell cmd export LANG=en_US.UTF-8 export mkdir .bundled_gems export GEM_HOME= ` pwd ` /.bundled_gems gem install bundler version 1.17.3 no-rdoc no-ri verbose gem install rake version GEM_HOME/bin/bundle install retry 3 GEM_HOME/bin/bundle exec rake spec SPEC_OPTS= format chdir ansible_user_dir zuul.project.src_dir changed_when True

AnsibleTask shell cmd find -iname *.pp xargs puppet parser validate modulepath= ` pwd ` /modules for f in ` find -iname *.erb ` do erb -x -T f ruby -c done chdir ansible_user_dir zuul.project.src_dir changed_when True

AnsibleTask file src ansible_user_dir zuul.projects .src_dir dest /tmp/rdoinfo owner ansible_user group ansible_user state link

AnsibleTask copy src rdoinfo-DLRN.sh dest ansible_user_dir /rdoinfo-DLRN.sh owner ansible_user group ansible_user mode,493

AnsibleTask shell cmd set +e -x virtualenv system-site-packages .venv .venv/bin/activate pip install rdopkg export CENTOS_VERS= centos_version default CURRENT_MASTER_TAG= ussuri-uc PACKAGES_UPDATED_MASTER= PACKAGES_UPDATED_QUEENS= PACKAGES_UPDATED_ROCKY= PACKAGES_UPDATED_STEIN= PACKAGES_UPDATED_TRAIN= TAGS_DIFF= rdopkg info-tags-diff while read line do PKGNAME= awk print 1 line if -n echo line grep -w CURRENT_MASTER_TAG then PACKAGES_UPDATED_MASTER= PACKAGES_UPDATED_MASTER PKGNAME fi if -n echo line grep -w train then PACKAGES_UPDATED_TRAIN= PACKAGES_UPDATED_TRAIN PKGNAME fi if CENTOS_VERS centos7 then if -n echo line grep -w stein then PACKAGES_UPDATED_STEIN= PACKAGES_UPDATED_STEIN PKGNAME fi if -n echo line grep -w rocky then PACKAGES_UPDATED_ROCKY= PACKAGES_UPDATED_ROCKY PKGNAME fi if -n echo line grep -w queens then PACKAGES_UPDATED_QUEENS= PACKAGES_UPDATED_QUEENS PKGNAME fi fi done TAGS_DIFF pushd ansible_user_dir zuul.projects .src_dir Create log directory always mkdir -p logs ret=0 TIMEOUT= zuul.timeout default if -n PACKAGES_UPDATED_MASTER then timeout signal=SIGKILL TIMEOUT ansible_user_dir /rdoinfo-DLRN.sh CURRENT_MASTER_TAG PACKAGES_UPDATED_MASTER CENTOS_VERS ret1= if ret1 -ne 0 then ret= ret1 fi The data/ contents have been archived already remove to avoid issues with the next branch rm -rf data sudo rm -rf /var/cache/mock/* fi if -n PACKAGES_UPDATED_TRAIN then timeout signal=SIGKILL TIMEOUT ansible_user_dir /rdoinfo-DLRN.sh train PACKAGES_UPDATED_TRAIN CENTOS_VERS ret1= if ret1 -ne 0 then ret= ret1 fi The data/ contents have been archived already remove to avoid issues with the next branch rm -rf data sudo rm -rf /var/cache/mock/* fi if -n PACKAGES_UPDATED_STEIN then timeout signal=SIGKILL TIMEOUT ansible_user_dir /rdoinfo-DLRN.sh stein PACKAGES_UPDATED_STEIN CENTOS_VERS ret1= if ret1 -ne 0 then ret= ret1 fi The data/ contents have been archived already remove to avoid issues with the next branch rm -rf data sudo rm -rf /var/cache/mock/* fi if -n PACKAGES_UPDATED_ROCKY then timeout signal=SIGKILL TIMEOUT ansible_user_dir /rdoinfo-DLRN.sh rocky PACKAGES_UPDATED_ROCKY CENTOS_VERS ret1= if ret1 -ne 0 then ret= ret1 fi The data/ contents have been archived already remove to avoid issues with the next branch rm -rf data sudo rm -rf /var/cache/mock/* fi if -n PACKAGES_UPDATED_QUEENS then timeout signal=SIGKILL TIMEOUT ansible_user_dir /rdoinfo-DLRN.sh queens PACKAGES_UPDATED_QUEENS CENTOS_VERS ret1= if ret1 -ne 0 then ret= ret1 fi The data/ contents have been archived already remove to avoid issues with the next branch rm -rf data sudo rm -rf /var/cache/mock/* fi popd exit ret chdir ansible_user_dir zuul.projects .src_dir changed_when True environment LANG en_US.UTF-8

AnsibleTask changed_when True shell cmd set -e Need to inherit system-site-packages for python-yum virtualenv system-site-packages ansible_user_dir /.venv source ansible_user_dir /.venv/bin/activate pushd ansible_user_dir zuul.projects .src_dir pip install popd args chdir ansible_user_dir

AnsibleTask changed_when True shell cmd set -e source ansible_user_dir /.venv/bin/activate rdopkg findpkg zuul.project.name sed -n /^upstream/ s/upstream *\ /\1/p register upstream args chdir ansible_user_dir

AnsibleTask changed_when True shell cmd set -e source ansible_user_dir /.venv/bin/activate pushd ansible_user_dir zuul.project.src_dir git remote add upstream upstream.stdout git fetch upstream rdopkg reqcheck strict popd args chdir ansible_user_dir

AnsibleTask changed_when True shell cmd This builder when run from a child job of a DLRN based job configures the DLRN repository that was uploaded as an artifact of the parent DLRN-rpmbuild job This allows to install the packages in that repository and test them set +ex logs= buildset_artifacts_url If we could not find a working repository give up curl -o /dev/null -sIf logs || exit 1 Use the latest repository hash If DLRN built multiple packages there will be multiple repositories We want the latest repository which contains all of the packages that were just built if echo buildset_artifacts_url grep -c centos8 -ne 0 then repository= logs /centos8/current else repository= logs /centos/current fi The rdoinfo-DLRN-check job may create different repos centos-rpm-master centos-pike-rdo when it builds packages for more than one release In that case let us try to find the right one curl -o /dev/null -sIf repository if -ne 0 then releases= rpm-master train-rdo stein-rdo rocky-rdo queens-rdo pike-rdo ocata-rdo for release in releases do repository= logs /centos- release /current curl -o /dev/null -sIf repository || continue break done fi If we could not find a working repository give up curl -o /dev/null -sIf repository || exit 1 Configure the repository name= delorean-zuul sudo bash -c cat EOF /etc/yum.repos.d/ name .repo name name= name baseurl= repository enabled=1 gpgcheck=0 priority=1 EOF

AnsibleTask changed_when True shell cmd This builder when run from a child job of a DLRN based job download the packages built from DLRN and compare rpmlint reports from the previously built packages must be in sync with the previous builder dlrn-gate-repository eval grep baseurl= /etc/yum.repos.d/delorean-zuul.repo download binary packages wget -e robots=off -nd -r accept .rpm reject .src.rpm baseurl unset baseurl get the repo data from the previous repository URL=https //trunk.rdoproject.org/centos7/current eval curl URL/delorean.repo|grep baseurl= wget baseurl/repodata/repomd.xml extract the name of primary db from repomd.xml db= python3 -c import xml.etree.ElementTree as et ns //linux.duke.edu/metadata/repo print et.parse .getroot .find data type=\ primary_db\ /ns0 location ns .attrib download this db to get the name of the rpm files wget baseurl/ db db= basename db .bz2 bunzip2 db.bz2 our rpmlint config cat HOME/.rpmlintrc EOF from Config import addFilter no-changelogname-tag addFilter no-manual-page-for-binary addFilter no-documentation addFilter non-readable vitrage-ui exceptions addFilter openstack-vitrage-ui.noarch W non-conffile-in-etc /etc/openstack-dashboard/enabled/_4140_admin_template_vitrage_panel.py ironic exceptions addFilter openstack-ironic-common.noarch E non-standard-dir-perm /var/log/ironic 0 750L Exceptions for nova addFilter openstack-nova-common.noarch W obsolete-not-provided openstack-nova-cert addFilter python-novajoin.noarch W non-standard-gid addFilter python-novajoin.noarch W non-standard-uid addFilter openstack-nova-compute.noarch E explicit-lib-dependency libvirt-client Exception for tackerclient addFilter python-tackerclient-doc.noarch W file-not-utf8 /usr/share/doc/python-tackerclient-doc- */html/objects.inv Exception for congress addFilter openstack-congress-common.noarch E non-standard-dir-perm /etc/congress/keys 0 750L Exception for mistral addFilter python-mistral.noarch W self-obsoletion python-openstack-mistral 5.0.0-1 obsoletes python-openstack-mistral addFilter openstack-mistral-common.noarch E non-standard-dir-perm /var/lib/mistral 0 750L Exception for cloudkitty addFilter openstack-cloudkitty-common.noarch E non-standard-dir-perm /var/log/cloudkitty 0750L Exception for puppet-tripleo addFilter puppet-tripleo.noarch E explicit-lib-dependency puppet-openstacklib addFilter puppet-tripleo.noarch E explicit-lib-dependency puppet-stdlib addFilter puppet-tripleo.noarch E non-executable-script /usr/share/openstack-puppet/modules/tripleo/templates/redis/redis-notifications.sh.erb 0644L /bin/bash Exceptions for glance addFilter openstack-glance.noarch E non-standard-dir-perm /var/log/glance 0 750L The dangling-symlink exclusions are related to files from python-glance-store and python-os-brick addFilter openstack-glance.noarch W dangling-symlink /etc/glance/rootwrap.d/glance_cinder_store.filters /usr/share/glance_store/glance_cinder_store.filters addFilter openstack-glance.noarch W dangling-symlink /etc/glance/rootwrap.d/os-brick.filters /usr/share/os-brick/rootwrap/os-brick.filters Exceptions for puppet-ceph addFilter puppet-ceph.noarch E explicit-lib-dependency puppet-openstacklib addFilter puppet-ceph.noarch E explicit-lib-dependency puppet-stdlib addFilter puppet-ceph.noarch E non-executable-script /usr/share/openstack-puppet/modules/ceph/setup.py 0644L /usr/bin/env Exceptions for horizon addFilter python-django-horizon.noarch E non-executable-script /usr/lib/python2.7/site-packages/openstack_auth/tests/run_tests.py 0644L /usr/bin/env addFilter python-django-horizon.noarch E zero-length /usr/lib/python2.7/site-packages/openstack_auth/tests/models.py Exceptions for ceilometer addFilter openstack-ceilometer-common.noarch W obsolete-not-provided openstack-ceilometer-api Exceptions for kuryr Following error only-non-binary-in-usr-lib has been fixed in recent rpmlint versions not in CentOS yet addFilter openstack-kuryr-kubernetes-cni.noarch W only-non-binary-in-usr-lib Exceptions for heat addFilter openstack-heat-common.noarch W obsolete-not-provided openstack-heat-api-cloudwatch addFilter openstack-heat-common.noarch E explicit-lib-dependency python2-neutron-lib Exceptions for neutron-tempest-plugin addFilter python2-neutron-tests-tempest.noarch W self-obsoletion python2-networking-bgpvpn-tests-tempest obsoletes python2-networking-bgpvpn-tests-tempest* Exceptions for telemetry-tempest-plugin addFilter python2-telemetry-tests-tempest.noarch E zero-length /usr/lib/python2.7/site-packages/telemetry_tempest_plugin/gnocchi/__init_.py addFilter \w+ *-tests-tempest.noarch W obsolete-not-provided \w+ *-tests Exceptions for os-xenapi addFilter python2-os-xenapi.noarch E non-executable-script /usr/lib/python2.7/site-packages/os_xenapi/utils/himn.py 0644L /usr/bin/env addFilter python2-os-xenapi.noarch E non-executable-script /usr/lib/python2.7/site-packages/os_xenapi/utils/iptables.py 0644L /usr/bin/env addFilter python2-os-xenapi.noarch E non-executable-script /usr/lib/python2.7/site-packages/os_xenapi/utils/shell_tools/install_conntrack.sh 0644L /bin/bash addFilter python2-os-xenapi.noarch E non-executable-script /usr/lib/python2.7/site-packages/os_xenapi/utils/xapi_plugin.py 0644L /usr/bin/env addFilter python2-os-xenapi.noarch E non-executable-script /usr/lib/python2.7/site-packages/os_xenapi/utils/xenapi_facts.py 0644L /usr/bin/env addFilter python2-os-xenapi.noarch E non-executable-script /usr/lib/python2.7/site-packages/os_xenapi/utils/consoles.py 0644L /usr/bin/env Exceptions for openstack-tripleo-heat-templates-compat addFilter openstack-tripleo-heat-templates-compat.noarch E description-line-too-long C building Heat Templates to do deployments of OpenStack These templates provide support for the clouds running the previous upstream version of OpenStack addFilter openstack-tripleo-heat-templates-compat.noarch E non-executable-script /usr/share/openstack-tripleo-heat-templates/compat/ci/scripts/freeipa_setup.sh 0644L /bin/bash addFilter openstack-tripleo-heat-templates-compat.noarch E non-executable-script /usr/share/openstack-tripleo-heat-templates/compat/common/container-puppet.sh 0644L /bin/bash addFilter openstack-tripleo-heat-templates-compat.noarch E non-executable-script /usr/share/openstack-tripleo-heat-templates/compat/deployed-server/deployed-server-bootstrap-centos.sh 0644L /bin/bash addFilter openstack-tripleo-heat-templates-compat.noarch E non-executable-script /usr/share/openstack-tripleo-heat-templates/compat/deployed-server/deployed-server-bootstrap-rhel.sh 0644L /bin/bash addFilter openstack-tripleo-heat-templates-compat.noarch E script-without-shebang /usr/share/openstack-tripleo-heat-templates/compat/deployed-server/deployed-server-bootstrap-centos.sh addFilter openstack-tripleo-heat-templates-compat.noarch E script-without-shebang /usr/share/openstack-tripleo-heat-templates/compat/deployed-server/deployed-server-bootstrap-rhel.sh addFilter openstack-tripleo-heat-templates-compat.noarch E non-executable-script /usr/share/openstack-tripleo-heat-templates/compat/container_config_scripts/nova_statedir_ownership.py 0644L /usr/bin/env addFilter openstack-tripleo-heat-templates-compat.noarch E non-executable-script /usr/share/openstack-tripleo-heat-templates/compat/container_config_scripts/nova_wait_for_api_service.py 0644L /usr/bin/env addFilter openstack-tripleo-heat-templates-compat.noarch E non-executable-script /usr/share/openstack-tripleo-heat-templates/compat/container_config_scripts/nova_wait_for_compute_service.py 0644L /usr/bin/env addFilter openstack-tripleo-heat-templates-compat.noarch E non-executable-script /usr/share/openstack-tripleo-heat-templates/compat/container_config_scripts/pacemaker_restart_bundle.sh 0644L /bin/bash addFilter openstack-tripleo-heat-templates-compat.noarch E non-executable-script /usr/share/openstack-tripleo-heat-templates/compat/container_config_scripts/placement_wait_for_service.sh 0644L /usr/bin/env addFilter openstack-tripleo-heat-templates-compat.noarch E non-executable-script /usr/share/openstack-tripleo-heat-templates/compat/container_config_scripts/pyshim.sh 0644L /bin/bash addFilter openstack-tripleo-heat-templates-compat.noarch E non-executable-script /usr/share/openstack-tripleo-heat-templates/compat/extraconfig/post_deploy/clouds_yaml.py 0644L /usr/bin/env addFilter openstack-tripleo-heat-templates-compat.noarch E non-executable-script /usr/share/openstack-tripleo-heat-templates/compat/extraconfig/post_deploy/undercloud_ctlplane_network.py 0644L /usr/bin/env addFilter openstack-tripleo-heat-templates-compat.noarch E non-executable-script /usr/share/openstack-tripleo-heat-templates/compat/extraconfig/post_deploy/undercloud_post.py 0644L /usr/bin/env addFilter openstack-tripleo-heat-templates-compat.noarch E non-executable-script /usr/share/openstack-tripleo-heat-templates/compat/extraconfig/pre_deploy/rhel-registration/scripts/rhel-registration 0644L /bin/bash addFilter openstack-tripleo-heat-templates-compat.noarch E non-executable-script /usr/share/openstack-tripleo-heat-templates/compat/extraconfig/pre_deploy/rhel-registration/scripts/rhel-unregistration 0644L /bin/bash addFilter openstack-tripleo-heat-templates-compat.noarch E non-executable-script /usr/share/openstack-tripleo-heat-templates/compat/extraconfig/pre_deploy/undercloud_pre.sh 0644L /bin/bash addFilter openstack-tripleo-heat-templates-compat.noarch E non-executable-script /usr/share/openstack-tripleo-heat-templates/compat/puppet/deploy-artifacts.sh 0644L /bin/bash addFilter openstack-tripleo-heat-templates-compat.noarch E non-executable-script /usr/share/openstack-tripleo-heat-templates/compat/validation-scripts/all-nodes.sh 0644L /bin/bash addFilter openstack-tripleo-heat-templates-compat.noarch E script-without-shebang /usr/share/openstack-tripleo-heat-templates/compat/environments/neutron-plumgrid.yaml addFilter openstack-tripleo-heat-templates-compat.noarch E script-without-shebang /usr/share/openstack-tripleo-heat-templates/compat/environments/neutron-sriov.yaml addFilter openstack-tripleo-heat-templates-compat.noarch E description-line-too-long C building Heat Templates to do deployments of OpenStack These templates provide support for the clouds running the previous upstream version of OpenStack addFilter openstack-tripleo-heat-templates-compat.noarch E non-executable-script /usr/share/openstack-tripleo-heat-templates/compat/extraconfig/pre_deploy/rhel-registration/scripts/rhel-registration 0644L /bin/bash addFilter openstack-tripleo-heat-templates-compat.noarch E non-executable-script /usr/share/openstack-tripleo-heat-templates/compat/extraconfig/pre_deploy/rhel-registration/scripts/rhel-unregistration 0644L /bin/bash addFilter openstack-tripleo-heat-templates-compat.noarch E non-executable-script /usr/share/openstack-tripleo-heat-templates/compat/extraconfig/tasks/tripleo_upgrade_node.sh 0644L /bin/bash addFilter openstack-tripleo-heat-templates-compat.noarch E non-executable-script /usr/share/openstack-tripleo-heat-templates/compat/puppet/deploy-artifacts.sh 0644L /bin/bash addFilter openstack-tripleo-heat-templates-compat.noarch E non-executable-script /usr/share/openstack-tripleo-heat-templates/compat/validation-scripts/all-nodes.sh 0644L /bin/bash addFilter openstack-tripleo-heat-templates-compat.noarch E script-without-shebang /usr/share/openstack-tripleo-heat-templates/compat/environments/neutron-plumgrid.yaml addFilter openstack-tripleo-heat-templates-compat.noarch E script-without-shebang /usr/share/openstack-tripleo-heat-templates/compat/environments/neutron-sriov.yaml EOF now download all these packages from the previous repository mkdir -p old for fname in ls *.rpm do name= rpm -qp qf NAME \n fname eval sqlite3 -line db select rpm_sourcerpm as srpm from packages where name name and arch |sed //g sqlite3 -line db select location_href as pkgfile from packages where rpm_sourcerpm srpm and arch |sed //g old_pkgs_list done cat old_pkgs_list |sort -u|grep -v old_packages if there is no previous package it means that is new packages so just run rpmlint on the packages and exit if wc -l old_packages -eq 0 then rpmlint *.rpm tee rpmlint.new.txt exit 0 fi cat old_packages|while read line do eval line curl -o old/ pkgfile baseurl/ pkgfile done run rpmlint on old and new packages rpmlint *.rpm sort tee rpmlint.new.txt rpmlint old/*.rpm sort tee rpmlint.old.txt check that we have the same number of packages else we can not really compare and we just exit gracefully if ls *.rpm|wc -l ls old/*.rpm|wc -l then exit 0 fi compare if we have more reports with the new packages if wc -l rpmlint.new.txt -gt wc -l rpmlint.old.txt then diff -u rpmlint.old.txt rpmlint.new.txt exit 1 fi

AnsibleTask shell echo config_opts True /etc/mock/site-defaults.cfg echo config_opts False /etc/mock/site-defaults.cfg become True changed_when True

AnsibleTask become True shell cmd usermod -a -G mock zuul changed_when True

AnsibleTask shell cmd export DIST= dist default export MOCK_CONFIG= mock_config default make rpm chdir ansible_user_dir zuul.projects .src_dir changed_when True

AnsibleTask changed_when True shell cmd mkdir logs cp *.log logs cp *.rpm logs pushd logs createrepo popd chdir ansible_user_dir zuul.projects .src_dir args warn False

AnsibleTask template src templates/zuul-cloner-shim.py.j2 dest virtualenv /bin/zuul-cloner mode,493 become True

AnsibleTask file path virtualenv state directory mode u=rwX g=rX o=rX recurse True become True

AnsibleTask become True file path /etc/ci state directory owner root group root mode,493

AnsibleTask become True template dest /etc/ci/mirror_info.sh owner root group root mode,420 src mirror_info.sh.j2

AnsibleTask service name= sensu_server_service_name state=restarted when sensu_master and not se_enterprise

AnsibleTask service name= sensu_api_service_name state=restarted when sensu_master and not se_enterprise

AnsibleTask service name= sensu_client_service_name state=restarted

AnsibleTask service name= sensu_enterprise_service_name state=restarted when se_enterprise and sensu_master

AnsibleTask service name= sensu_enterprise_dashboard_service_name state=restarted when se_enterprise and sensu_master

AnsibleTask command /usr/sbin/svccfg import /opt/local/lib/svc/manifest/sensu-server.xml

AnsibleTask command /usr/sbin/svccfg import /opt/local/lib/svc/manifest/sensu-api.xml

AnsibleTask command /usr/sbin/svccfg import /opt/local/lib/svc/manifest/sensu-client.xml

AnsibleTask command /usr/sbin/svccfg import /opt/local/lib/svc/manifest/uchiwa.xml

AnsibleTask shell npm install production args chdir uchiwa_path /go/src/github.com/sensu/uchiwa become True become_user sensu_user_name

AnsibleTask template dest sensu_config_path /conf.d/client.json owner sensu_user_name group sensu_group_name src sensu_client_config mode,0640 notify restart sensu-client service

AnsibleTask service name sensu_client_service_name state started enabled True

AnsibleTask file dest sensu_config_path /conf.d state directory owner sensu_user_name group sensu_group_name mode,0555

AnsibleTask template dest sensu_config_path /conf.d/redis.json owner sensu_user_name group sensu_group_name src sensu_redis_config mode,0640 when sensu_deploy_redis_config notify restart sensu-server service restart sensu-api service restart sensu-enterprise service restart sensu-client service

AnsibleTask template dest sensu_config_path /conf.d/rabbitmq.json owner sensu_user_name group sensu_group_name src sensu_rabbitmq_config mode,0640 when sensu_transport rabbitmq and sensu_deploy_rabbitmq_config notify restart sensu-server service restart sensu-api service restart sensu-enterprise service restart sensu-client service

AnsibleTask template dest sensu_config_path /conf.d/transport.json owner sensu_user_name group sensu_group_name src transport.json.j2 mode,0640 when sensu_deploy_transport_config notify restart sensu-server service restart sensu-api service restart sensu-enterprise service restart sensu-client service

AnsibleTask service name uchiwa_service_name if not se_enterprise else sensu_enterprise_dashboard_service_name state started enabled True

AnsibleTask file dest sensu_config_path /plugins state directory owner sensu_user_name group sensu_group_name

AnsibleTask shell umask 0022 sensu-install -p item with_items sensu_remote_plugins changed_when False when sensu_remote_plugins length 0

AnsibleTask copy src static_data_store /sensu/checks/ item dest sensu_config_path /plugins/ mode,493 owner sensu_user_name group sensu_group_name when sensu_available_checks is defined and item in sensu_available_checks.stdout_lines with_flattened group_names notify restart sensu-client service

AnsibleTask copy src static_data_store /sensu/handlers/ dest sensu_config_path /plugins/ mode,493 owner sensu_user_name group sensu_group_name notify restart sensu-client service

AnsibleTask copy src static_data_store /sensu/filters/ dest sensu_config_path /plugins/ mode,493 owner sensu_user_name group sensu_group_name notify restart sensu-client service

AnsibleTask copy src static_data_store /sensu/mutators/ dest sensu_config_path /plugins/ mode,493 owner sensu_user_name group sensu_group_name notify restart sensu-client service

AnsibleTask template src item dest sensu_config_path /conf.d/ item basename regex_replace owner sensu_user_name group sensu_group_name when sensu_master with_fileglob static_data_store /sensu/definitions/* notify restart sensu-server service restart sensu-api service restart sensu-enterprise service

AnsibleTask copy src static_data_store /sensu/client_definitions/ item dest sensu_config_path /conf.d/ item basename regex_replace owner sensu_user_name group sensu_group_name when sensu_available_client_definitions is defined and item in sensu_available_client_definitions.stdout_lines with_flattened group_names notify restart sensu-client service

AnsibleTask file dest= rabbitmq_config_path /ssl state=directory

AnsibleTask copy src= item.src dest= rabbitmq_config_path /ssl/ item.dest remote_src= sensu_ssl_deploy_remote_src with_items sensu_ssl_server_cacert sensu_ssl_server_cert sensu_ssl_server_key notify restart rabbitmq service restart sensu-api service restart sensu-server service restart sensu-enterprise service when sensu_ssl_manage_certs

AnsibleTask template dest rabbitmq_config_path /rabbitmq.config src rabbitmq_config_template owner root group __root_group mode,420 notify restart rabbitmq service

AnsibleTask service name rabbitmq_service_name state started enabled True register rabbitmq_state

AnsibleTask service name= redis_service_name state=started enabled=true

AnsibleTask template dest sensu_config_path /conf.d/api.json owner sensu_user_name group sensu_group_name src sensu-api.json.j2 notify restart sensu-api service

AnsibleTask service name= sensu_server_service_name if not se_enterprise else sensu_enterprise_service_name state=started enabled=yes

AnsibleTask service name=sensu-api state=started enabled=yes when not se_enterprise

AnsibleTask file dest sensu_config_path /ssl state directory owner sensu_user_name group sensu_group_name when sensu_ssl_manage_certs

AnsibleTask copy src item.src owner sensu_user_name remote_src sensu_ssl_deploy_remote_src group sensu_group_name dest sensu_config_path /ssl/ item.dest mode item.perm with_items sensu_ssl_client_cert sensu_ssl_client_key notify restart sensu-client service when sensu_ssl_manage_certs

AnsibleTask file dest sensu_config_path /ssl_generation state directory owner sensu_user_name group sensu_group_name when sensu_master

AnsibleTask command __bash_path sensu_config_path /ssl_generation/sensu_ssl_tool/ssl_certs.sh generate args chdir sensu_config_path /ssl_generation/sensu_ssl_tool creates sensu_config_path /ssl_generation/sensu_ssl_tool/server

AnsibleTask template src uchiwa_config.json.j2 dest sensu_config_path /uchiwa.json notify restart uchiwa service

AnsibleTask set_fact epel_version,7 when ansible_distribution_version

AnsibleTask template src uchiwa_config.json.j2 dest sensu_config_path /uchiwa.json when not se_enterprise notify restart uchiwa service

AnsibleTask template src sensu_enterprise_dashboard_config.json.j2 dest sensu_config_path /dashboard.json when se_enterprise notify restart sensu-enterprise-dashboard service

AnsibleTask set_fact sensu_pkg_version _sensu_pkg_version when sensu_pkg_version is none

AnsibleTask copy dest /etc/yum.repos.d/sensu-enterprise.repo content sensu-enterprise name=sensu-enterprise baseurl=http // se_user se_pass enterprise.sensuapp.com/yum/noarch/ gpgcheck=0 enabled=1 owner root group root mode,420 when se_enterprise

AnsibleTask copy dest /etc/yum.repos.d/sensu-enterprise-dashboard.repo content sensu-enterprise-dashboard name=sensu-enterprise-dashboard baseurl=http // se_user se_pass enterprise.sensuapp.com/yum/\ basearch/ gpgcheck=0 enabled=1 owner root group root mode,420 when se_enterprise

AnsibleTask file dest uchiwa_path state directory owner sensu_user_name group sensu_group_name recurse True

AnsibleTask file dest uchiwa_path item state directory owner sensu_user_name group sensu_group_name recurse True with_items etc go

AnsibleTask file dest uchiwa_path /go/ item owner sensu_user_name group sensu_group_name state directory recurse True with_items bin pkg src

AnsibleTask command go get github.com/sensu/uchiwa environment GOPATH uchiwa_path /go args creates uchiwa_path /go/src/github.com/sensu/uchiwa notify Build and deploy Uchiwa become True become_user sensu_user_name

AnsibleTask template src uchiwa_config.json.j2 dest uchiwa_path /etc/config.json owner sensu_user_name group sensu_group_name notify restart uchiwa service

AnsibleTask template src uchiwa_freebsd.j2 dest /usr/local/etc/rc.d/uchiwa mode,0755

AnsibleTask template src sensu-freebsd-repo.conf.j2 dest /usr/local/etc/pkg/repos/sensu.conf notify Update pkgng database

AnsibleTask template src uchiwa_openbsd.j2 dest /usr/local/etc/rc.d/uchiwa mode,0755

AnsibleTask shell /usr/local/bin/gem23 version check_mode False register gem23_version changed_when False

AnsibleTask shell /usr/local/bin/gem23 update system when gem23_version.stdout version_compare 2.5.3

AnsibleTask file path /var/log/sensu owner root group wheel state directory

AnsibleTask template src sensuclient_openbsd.j2 dest /etc/rc.d/sensuclient owner root group wheel mode,493

AnsibleTask template dest /opt/local/lib/svc/manifest/sensu-client.xml src sensu-client.smartos_smf_manifest.xml.j2 owner root group root mode,420 notify import sensu-client service restart sensu-client service

AnsibleTask template src uchiwa.sh.j2 dest /opt/local/lib/svc/method/uchiwa owner root group root mode,493 notify restart uchiwa service

AnsibleTask template dest /opt/local/lib/svc/manifest/uchiwa.xml src uchiwa.smartos_smf_manifest.xml.j2 owner root group root mode,644 notify import uchiwa service

AnsibleTask template dest /opt/local/lib/svc/manifest/sensu-server.xml src sensu-server.smartos_smf_manifest.xml.j2 owner root group root mode,420 notify import sensu-server service

AnsibleTask template dest /opt/local/lib/svc/manifest/sensu-api.xml src sensu-api.smartos_smf_manifest.xml.j2 owner root group root mode,420 notify import sensu-api service

AnsibleTask service name solr_service_name state restarted sleep,5 when solr_restart_handler_enabled

AnsibleTask file path solr_home /data/ item /conf state directory owner solr_user group solr_user recurse True when item not in solr_cores_current.content with_items solr_cores

AnsibleTask shell cp -r solr_install_path /example/files/conf/ solr_home /data/ item when item not in solr_cores_current.content with_items solr_cores become True become_user solr_user

AnsibleTask shell solr_install_path /bin/solr create -c item when item not in solr_cores_current.content with_items solr_cores become True become_user solr_user

AnsibleTask command cp -r solr_workspace solr_filename solr_install_path when not solr_war_file.stat.exists

AnsibleTask file path solr_install_path owner solr_user group solr_user recurse True when not solr_war_file.stat.exists

AnsibleTask file path solr_home state directory owner solr_user group solr_user mode,493 when not solr_example.stat.exists

AnsibleTask shell cp -r solr_install_path /example/solr/* solr_home when not solr_example.stat.exists

AnsibleTask file path solr_home owner solr_user group solr_user recurse True when not solr_example.stat.exists

AnsibleTask file path /var/log/solr.log state touch owner solr_user group root mode,436 changed_when False

AnsibleTask template src solr-init- ansible_os_family -pre5.j2 dest /etc/init.d/ solr_service_name mode,493

AnsibleTask template src solr.unit.j2 dest /etc/systemd/system/solr.service owner root group root mode,493 when ansible_distribution and ansible_distribution_version or ansible_distribution and ansible_distribution_version|int 8 or ansible_distribution and ansible_distribution_major_version|int 7 or ansible_distribution

AnsibleTask shell solr_workspace solr_filename /bin/install_solr_service.sh solr_workspace solr_filename .tgz -i solr_install_dir -d solr_home -u solr_user -s solr_service_name -p solr_port creates= solr_install_path /bin/solr register solr_install_script_result

AnsibleTask command service solr_service_name stop when ansible_os_family and ansible_distribution_version.split 0 7 and solr_install_script_result.changed failed_when False

AnsibleTask set_fact solr_filename solr- solr_version when solr_version.split 0 4

AnsibleTask set_fact solr_filename apache-solr- solr_version when solr_version.split 0 3

AnsibleTask service name solr_service_name state solr_service_state enabled True when solr_service_manage

AnsibleTask file path item state absent with_items solr_workspace solr_filename .tgz solr_workspace solr_filename

AnsibleTask file path solr_install_path /docs state absent when solr_remove_cruft

AnsibleTask file path solr_install_path /example state absent when solr_remove_cruft solr_version.split 0 5

AnsibleTask set_fact java_packages when ansible_os_family RedHat

AnsibleTask set_fact java_packages when ansible_distribution Debian or ansible_distribution Ubuntu and ansible_distribution_version 14.04

AnsibleTask hosts localhost gather_facts True strategy free environment ansible_environment default tasks pre-setup playbooks ansible_pre_tasks is defined is not none is match http|https|file // role splunk.role is defined post-setup playbooks ansible_post_tasks is defined is not none is match http|https|file // all instances for required restarts restart handlers True { splunk.user

AnsibleTask command splunk.exec apply cluster-bundle -auth splunk.admin_user splunk.password skip-validation answer-yes become True become_user splunk.user register splunk_cluster_bundle_result failed_when splunk_cluster_bundle_result.stdout is not search Aa pply or bundle not in splunk_cluster_bundle_result.stdout or splunk_cluster_bundle_result.stdout is search Ee rror and already not in splunk_cluster_bundle_result.stderr changed_when splunk_cluster_bundle_result.stdout is search Aa pply and bundle in splunk_cluster_bundle_result.stdout and splunk_cluster_bundle_result.stdout is not search Ee rror and already not in splunk_cluster_bundle_result.stderr no_log hide_password retries retry_num delay retry_delay

AnsibleTask command splunk.exec show cluster-bundle-status -auth splunk.admin_user splunk.password register cluster_bundle_status until cluster_bundle_status.stdout.find cluster_status=None -1 retries retry_num changed_when cluster_bundle_status.rc 0 delay retry_delay ignore_errors True become True become_user splunk.user no_log hide_password

AnsibleTask command cp /opt/ansible/library/es_ta_for_indexers.py /tmp/es_ta_for_indexers.py register copy_script changed_when copy_script.rc 0

AnsibleTask file path /tmp/es_ta_for_indexers.py owner splunk.user group splunk.group mode,511

AnsibleTask command splunk.exec cmd if ess_info.json.entry 0 .content.version is version 6.1 python3 else python endif /tmp/es_ta_for_indexers.py password splunk.password username splunk.admin_user become True become_user splunk.user no_log hide_password register ta_location changed_when ta_location.rc 0

AnsibleTask command tar -zxvf ta_location.stdout_lines 0 replace backslash replace C -C splunk.app_paths.idxc force-local args warn False vars backslash when ta_location is success ansible_system is match CYGWIN*|Win32NT

AnsibleTask set_fact installed_apps installed_apps difference ess_apps unique

AnsibleTask set_fact installed_apps installed_apps difference itsi_apps unique

AnsibleTask file path splunk.app_paths.default item state absent with_items itsi_apps notify Restart the splunkd service

AnsibleTask command splunk.exec edit cluster-config -mode master -replication_factor splunk.idxc.replication_factor -search_factor splunk.idxc.search_factor -secret splunk.idxc.pass4SymmKey -cluster_label splunk.idxc.label -auth splunk.admin_user splunk.password register task_result until task_result.rc 0 changed_when task_result.rc 0 retries retry_num delay retry_delay notify Restart the splunkd service become True become_user splunk.user no_log hide_password

AnsibleTask command cp -R splunk.app_paths.default item splunk.app_paths.idxc become True become_user splunk.user with_items installed_apps register copy_app changed_when copy_app.rc 0

AnsibleTask set_fact multisite_master_uri cert_prefix // splunk.multisite_master splunk.svc_port

AnsibleTask command splunk.exec edit cluster-config -mode master -multisite true -available_sites splunk.all_sites -site splunk.site -site_replication_factor origin splunk.multisite_replication_factor_origin total splunk.multisite_replication_factor_total -site_search_factor origin splunk.multisite_search_factor_origin total splunk.multisite_search_factor_total -auth splunk.admin_user splunk.password -secret splunk.idxc.pass4SymmKey become True become_user splunk.user register set_multisite_master until set_multisite_master.rc 0 changed_when set_multisite_master.rc 0 retries retry_num delay retry_delay ignore_errors True notify Restart the splunkd service no_log hide_password

AnsibleTask command splunk.exec restart -f answer-yes accept-license become True become_user splunk.user register task_result until task_result.rc 0 retries retry_num delay retry_delay when not splunk.enable_service

AnsibleTask service name splunk_service_name state restarted when splunk.enable_service and ansible_system is match Linux become True become_user privileged_user

AnsibleTask command splunk.exec add forward-server item splunk.s2s.port if splunk.s2s.port is defined else splunk.s2s_port -auth splunk.admin_user splunk.password become True become_user splunk.user with_items forward_servers register forward_status when s2s not in splunk and s2s_port in splunk or s2s in splunk and ssl not in splunk.s2s or ssl in splunk.s2s and not splunk.s2s.ssl bool changed_when forwarding to in forward_status.stdout already present not in forward_status.stderr failed_when forward_status.rc 0 already present not in forward_status.stderr notify Restart the splunkd service no_log hide_password

AnsibleTask set_fact licenses licenses item with_items splunk.license_uri.split when splunk.license_uri is defined and splunk.license_uri

AnsibleTask command splunk.exec add item -auth splunk.admin_user splunk.password become True become_user splunk.user with_items splunk.add when splunk.add is defined register task_result until task_result.rc 0 or already exists in task_result.stderr changed_when task_result.rc 0 failed_when task_result.rc 0 exists not in task_result.stderr retries retry_num delay retry_delay ignore_errors True no_log hide_password notify Restart the splunkd service

AnsibleTask file path splunk.home owner splunk.user group splunk.group recurse True become True become_user privileged_user

AnsibleTask file dest splunk.home /etc/system/local/user-seed.conf state absent notify Restart the splunkd service

AnsibleTask command splunk.exec disable app item -auth splunk.admin_user splunk.password become True become_user splunk.user with_items installed_apps when installed_apps

AnsibleTask copy src splunk.home /lib/ item dest /lib64/ item remote_src True mode,493 with_items libssp.so.0 libasan.so libasan.so.2 libasan.so.2.0.0 become True become_user privileged_user

AnsibleTask file path splunk.home /_asanoutput state directory owner splunk.user group splunk.group become True become_user splunk.user

AnsibleTask set_fact dmc_forwarder_assets_url cert_prefix //127.0.0.1 splunk.svc_port /servicesNS/nobody/splunk_monitoring_console/saved/searches/DMC+Forwarder+-+Build+Asset+Table

AnsibleTask command splunk.exec version accept-license answer-yes no-prompt register installed_splunk_version become True become_user splunk.user when ansible_system is match Linux

AnsibleTask set_fact installed_splunk_version installed_splunk_version.stdout regex_search regexp vars regexp Splunk \sUniversal\sForwarder \s \d+ \. \d+ \. \d+ when ansible_system is match Linux

AnsibleTask become True become_user privileged_user command splunk.exec enable boot-start -systemd-managed 1 -user splunk.user accept-license answer-yes no-prompt when ansible_system is match Linux splunk_systemd installed_splunk_version 0 is version 7.2.2

AnsibleTask template src Splunkd.service.j2 dest /etc/systemd/system/ splunk_service_name owner privileged_user group privileged_user mode,420 become True become_user privileged_user register splunkd_unit_file when ansible_system is match Linux splunk_systemd installed_splunk_version 0 is version 7.2.2

AnsibleTask command splunk.exec enable boot-start -user splunk.user accept-license answer-yes no-prompt become True become_user privileged_user when ansible_system is match Linux and not splunk_systemd

AnsibleTask command splunk.exec enable boot-start -user splunk.user accept-license answer-yes no-prompt when ansible_os_family Windows

AnsibleTask set_fact installed_apps installed_apps default item.path basename difference default_apps unique with_items new_apps.files loop_control label item.path basename

AnsibleTask set_fact privileged_user if ansible_system is match Administrator else root endif

AnsibleTask command ps no-headers -o comm 1 register pid1 changed_when False when splunk.enable_service and ansible_system is match Linux

AnsibleTask set_fact splunk_systemd pid1.stdout.find -1 when splunk.enable_service ansible_system is match Linux

AnsibleTask set_fact splunk_install not pre_existing_splunk_exec.stat.exists default True

AnsibleTask set_fact first_run not pre_existing_splunk_secret.stat.exists default True

AnsibleTask set_fact splunk_current_version manifests.files 0 .path regex_search regexp if manifests.matched 1 else 0 vars regexp splunk\D* \d+ \. \d+ \d+

AnsibleTask set_fact splunk_upgrade in splunk and splunk.build_location and not splunk_install and splunk_target_version and splunk_target_version splunk_current_version default False

AnsibleTask set_fact splunk_indexer_cluster True if in splunk and splunk.cluster_master_url else False

AnsibleTask set_fact splunk_search_head_cluster True if in splunk and splunk.search_head_captain_url else False

AnsibleTask set_fact splunk_forward_servers splunk.forward_servers when in splunk

AnsibleTask set_fact splunk_forward_servers groups difference ansible_hostname when splunk_forward_servers is not defined in groups

AnsibleTask set_fact splunk_forward_servers groups difference ansible_hostname when splunk_forward_servers is not defined in groups not in groups

AnsibleTask set_fact splunk_service_name splunk.service_name when in splunk

AnsibleTask set_fact splunk_build_type splunk.build_type when in splunk splunk.build_type is not none

AnsibleTask set_fact splunk_service_name SplunkForwarder.service when splunk_service_name is not defined splunk.enable_service and ansible_system is match Linux splunk_systemd splunk.build_location is search

AnsibleTask set_fact splunk_service_name Splunkd.service when splunk_service_name is not defined splunk.enable_service and ansible_system is match Linux splunk_systemd

AnsibleTask set_fact splunk_service_name splunkd when splunk_service_name is not defined splunk.enable_service and ansible_system is match Linux splunk_systemd is False

AnsibleTask set_fact splunk_service_name splunkd when splunk_service_name is not defined splunk.enable_service and not ansible_system is match Linux

AnsibleTask set_fact splunk_target_version splunk.target_version when in splunk and splunk.target_version is not none

AnsibleTask set_fact splunk_target_version splunk.build_location regex_search regexp default 0 vars regexp splunk\D* \d+ \. \d+ \d+ when splunk_build_type is defined and splunk_build_type is match tgz|msi|rpm|deb

AnsibleTask set_fact splunk_target_version item.version when item.version is version_compare splunk_target_version|default 0.0.0 loop result.results

AnsibleTask command cp app_url /tmp/app.spl when app_source.stat.exists

AnsibleTask shell set -o pipefail tar -tf /tmp/app.spl awk print 1 uniq args executable /bin/bash register app_contents when not in app_url

AnsibleTask file dest /tmp/app.spl state absent ignore_errors True

AnsibleTask file path item.path state absent ignore_errors True become True become_user privileged_user with_items manifests.files when splunk_upgrade bool

AnsibleTask file path item state absent ignore_errors True become True become_user privileged_user with_items splunk.home /bin splunk.home /lib splunk.home /share splunk.home /Python-2.7 when splunk_upgrade bool

AnsibleTask file dest item state absent ignore_errors True become True become_user privileged_user with_items splunk.build_location /tmp/splunk.msi

AnsibleTask command msiexec /I splunk.build_location AGREETOLICENSE=yes LAUNCHSPLUNK=0 INSTALLDIR=C \\opt\\ splunk.tar_dir /passive /qn when ansible_system is match CYGWIN*|Win32NT register install_result until install_result is succeeded retries retry_num delay retry_delay

AnsibleTask command splunk.exec edit cluster-config -mode searchhead -master_uri cert_prefix // splunk.cluster_master_url splunk.svc_port -replication_port splunk.idxc.replication_port -secret splunk.idxc.pass4SymmKey -auth splunk.admin_user splunk.password become True become_user splunk.user register set_cluster_master_as_peer until set_cluster_master_as_peer.rc 0 changed_when set_cluster_master_as_peer.rc 0 retries retry_num delay retry_delay ignore_errors True notify Restart the splunkd service no_log hide_password

AnsibleTask command splunk.exec add search-server cert_prefix // item splunk.svc_port -auth splunk.admin_user splunk.password -remoteUsername splunk.admin_user -remotePassword splunk.password become True become_user splunk.user with_items groups register set_indexer_as_peer until set_indexer_as_peer.rc 0 or set_indexer_as_peer.rc 24 retries retry_num delay retry_delay changed_when set_indexer_as_peer.rc 0 failed_when set_indexer_as_peer.rc 0 and exists not in set_indexer_as_peer.stderr notify Restart the splunkd service no_log hide_password when in groups

AnsibleTask command splunk.exec item -auth splunk.admin_user splunk.password accept-license answer-yes no-prompt become True become_user splunk.user with_items splunk.before_start_cmd when splunk.before_start_cmd is defined register task_result until task_result.rc 0 or already exists in task_result.stderr changed_when task_result.rc 0 failed_when task_result.rc 0 exists not in task_result.stderr retries retry_num delay retry_delay ignore_errors True no_log hide_password notify Restart the splunkd service

AnsibleTask file path splunk.home /etc/.ui_login state touch owner splunk.user group splunk.group mode,432 become True become_user splunk.user

AnsibleTask file mode go-rwx path file_path become True become_user splunk.user when file_stat.stat.exists

AnsibleTask command splunk.exec set deploy-poll splunk.deployment_server splunk.svc_port -auth splunk.admin_user splunk.password become True become_user splunk.user register set_deployment_client until set_deployment_client.rc 0 changed_when set_deployment_client.rc 0 retries retry_num delay retry_delay notify Restart the splunkd service ignore_errors True no_log hide_password

AnsibleTask command splunk.exec edit licenser-localslave -master_uri cert_prefix // splunk.license_master_url splunk.svc_port -auth splunk.admin_user splunk.password become True become_user splunk.user register linux_set_lic_slave until linux_set_lic_slave.rc 0 changed_when linux_set_lic_slave.rc 0 retries retry_num delay retry_delay notify Restart the splunkd service ignore_errors True no_log hide_password

AnsibleTask set_fact cert_prefix if ssl_enabled.status 200 https else http endif

AnsibleTask file path conf_directory state directory when conf_directory is defined become True become_user splunk.user

AnsibleTask file path conf_directory conf_file state touch owner splunk.user group splunk.group mode,432 become True become_user splunk.user

AnsibleTask copy dest splunk.home /etc/auth/splunk.secret owner splunk.user group splunk.group mode,256 content splunk.secret when splunk.secret is defined splunk.secret become True become_user splunk.user

AnsibleTask command splunk.exec hash-passwd splunk.password register hashed_pwd changed_when hashed_pwd.rc 0 become True become_user splunk.user no_log hide_password

AnsibleTask command splunk.exec status accept-license answer-yes no-prompt become True become_user splunk.user register splunk_status changed_when False failed_when False ignore_errors True

AnsibleTask file state absent path item with_items splunk.home /var/run/splunk/splunkd.pid splunk.home /var/lib/splunk/kvstore/mongo/mongod.lock when splunk_status.rc 0 become True become_user splunk.user

AnsibleTask command splunk.exec stop accept-license answer-yes no-prompt become True become_user splunk.user register stop_splunk changed_when stop_splunk.rc 0 when not splunk.enable_service splunk_status.rc 0

AnsibleTask service name splunk_service_name state stopped when splunk.enable_service splunk_status.rc 0 ansible_system is match Linux become True become_user privileged_user

AnsibleTask command /sbin/updateetc.sh register updateetc when updateetc_stat_result.stat.exists changed_when updateetc.rc 0 and in updateetc.stdout become True become_user splunk.user environment SPLUNK_HOME splunk.home

AnsibleTask file path /usr/share/man/man1 state directory when ansible_distribution or ansible_distribution become True become_user privileged_user

AnsibleTask become True become_user privileged_user command cp splunk.home /etc/splunk-launch.conf.default splunk.home /etc/splunk-launch.conf ignore_errors True when ansible_distribution or ansible_distribution

AnsibleTask file src item.src dest item.dest state link with_items java_update_version /bin/java java_update_version /bin/javac become True become_user privileged_user ignore_errors True when ansible_distribution or ansible_distribution

AnsibleTask file path /usr/share/man/man1 state directory when ansible_distribution become True become_user privileged_user

AnsibleTask command microdnf install java-1.8.0-openjdk when ansible_distribution become True become_user privileged_user

AnsibleTask become True become_user privileged_user command cp splunk.home /etc/splunk-launch.conf.default splunk.home /etc/splunk-launch.conf ignore_errors True when ansible_distribution or ansible_distribution or ansible_distribution

AnsibleTask shell readlink -f /usr/bin/java sed s bin/java register java_home become True become_user privileged_user ignore_errors True when ansible_distribution or ansible_distribution or ansible_distribution

AnsibleTask command update-alternatives install /usr/bin/java java /opt/container_artifact/jdk1.8.0_ java_update_version /bin/java 100 when ansible_distribution or ansible_distribution become True become_user privileged_user

AnsibleTask command update-alternatives install /usr/bin/javac javac /opt/container_artifact/jdk1.8.0_ java_update_version /bin/javac 100 when ansible_distribution or ansible_distribution become True become_user privileged_user

AnsibleTask command update-alternatives set java /opt/container_artifact/jdk1.8.0_ java_update_version /bin/java when ansible_distribution or ansible_distribution become True become_user privileged_user

AnsibleTask command update-alternatives set javac /opt/container_artifact/jdk1.8.0_ java_update_version /bin/javac when ansible_distribution or ansible_distribution become True become_user privileged_user

AnsibleTask shell readlink -f /usr/bin/java sed s bin/java register java_home become True become_user privileged_user ignore_errors True when ansible_distribution or ansible_distribution

AnsibleTask command cp lic splunk.license_download_dest when lic_source.stat.exists

AnsibleTask command splunk.exec add licenses splunk.license_download_dest -auth splunk.admin_user splunk.password become True become_user splunk.user no_log hide_password ignore_errors True when lic_dest.stat.exists not splunk.ignore_license bool splunk.role splunk_universal_forwarder notify Restart the splunkd service

AnsibleTask file dest splunk.license_download_dest state absent ignore_errors True

AnsibleTask command splunk.exec search essinstall -auth splunk.admin_user splunk.password no_log hide_password become True become_user splunk.user register essinstall changed_when essinstall.rc 0 failed_when essinstall.rc 0 notify Restart the splunkd service

AnsibleTask command ls changed_when splunk_status.rc 0 and splunktcp_enabled is changed or splunktcp_ssl_disabled is changed or splunktcp_ssl_reset is changed or splunktcp_ssl_ca_reset is changed notify Restart the splunkd service

AnsibleTask command ls changed_when splunk_status.rc 0 and splunktcp_disabled is changed or splunktcp_ssl_cert_configured is changed or splunktcp_ssl_pass_configured is changed or splunktcp_ssl_ca_configured is changed notify Restart the splunkd service

AnsibleTask command cp -R splunk.app_paths.default item splunk.app_paths.shc register copy_apps changed_when copy_apps.rc 0 failed_when copy_apps.rc 0 become True become_user splunk.user with_items installed_apps

AnsibleTask command splunk.exec apply shcluster-bundle -target cert_prefix // splunk.search_head_captain_url splunk.svc_port -auth splunk.admin_user splunk.password answer-yes become True become_user splunk.user no_log hide_password register shcluster_bundle until shcluster_bundle.rc 0 or Found zero deployable apps in shcluster_bundle.stderr changed_when shcluster_bundle.rc 0 failed_when shcluster_bundle.rc 0 and Found zero deployable apps not in shcluster_bundle.stderr retries retry_num delay retry_delay ignore_errors True

AnsibleTask command cp -R splunk.app_paths.default item splunk.app_paths.deployment register copy_apps changed_when copy_apps.rc 0 failed_when copy_apps.rc 0 become True become_user splunk.user with_items installed_apps

AnsibleTask file path splunk.app_paths.default item state absent become True become_user splunk.user with_items installed_apps notify Restart the splunkd service

AnsibleTask command splunk.exec reload deploy-server -auth splunk.admin_user splunk.password become True become_user splunk.user register reload_depserver until reload_depserver.rc 0 changed_when reload_depserver.rc 0 retries retry_num delay retry_delay ignore_errors True no_log hide_password

AnsibleTask command splunk.exec item -auth splunk.admin_user splunk.password become True become_user splunk.user with_items splunk.cmd register task_result until task_result.rc 0 or already exists in task_result.stderr retries retry_num delay retry_delay when splunk.cmd is defined no_log hide_password ignore_errors True notify Restart the splunkd service

AnsibleTask command splunk.exec edit cluster-config -mode slave -master_uri cert_prefix // splunk.cluster_master_url splunk.svc_port -replication_port splunk.idxc.replication_port -secret splunk.idxc.pass4SymmKey -auth splunk.admin_user splunk.password become True become_user splunk.user register task_result changed_when task_result.rc 0 until task_result.rc 0 retries retry_num delay retry_delay ignore_errors True notify Restart the splunkd service no_log hide_password

AnsibleTask command splunk.exec edit cluster-config -mode slave -site splunk.site -master_uri multisite_master_uri -replication_port splunk.idxc.replication_port -auth splunk.admin_user splunk.password -secret splunk.idxc.pass4SymmKey become True become_user splunk.user register task_result changed_when task_result.rc 0 until task_result.rc 0 retries retry_num delay retry_delay notify Restart the splunkd service no_log hide_password

AnsibleTask set_fact splunk_search_head_captain True when ansible_hostname splunk.search_head_captain_url or ansible_fqdn splunk.search_head_captain_url or splunk.hostname splunk.search_head_captain_url or splunk.role splunk_search_head_captain

AnsibleTask command splunk.exec init shcluster-config -auth splunk.admin_user splunk.password -mgmt_uri cert_prefix // splunk.hostname splunk.svc_port -replication_port splunk.shc.replication_port -replication_factor splunk.shc.replication_factor -conf_deploy_fetch_url cert_prefix // splunk.deployer_url splunk.svc_port -secret splunk.shc.pass4SymmKey -shcluster_label splunk.shc.label become True become_user splunk.user register task_result changed_when task_result.rc 0 until task_result.rc 0 retries retry_num delay retry_delay notify Restart the splunkd service no_log hide_password

AnsibleTask command splunk.exec bootstrap shcluster-captain -servers_list for host in groups cert_prefix // host splunk.svc_port if not loop.last endif endfor -auth splunk.admin_user splunk.password become True become_user splunk.user when splunk_search_head_captain bool register task_result until task_result.rc 0 or node seems to have already joined another cluster in task_result.stderr changed_when task_result.rc 0 failed_when task_result.rc =0 and node seems to have already joined another cluster not in task_result.stderr retries retry_num delay retry_delay notify Restart the splunkd service no_log hide_password

AnsibleTask command splunk.exec add shcluster-member -current_member_uri cert_prefix // splunk.search_head_captain_url splunk.svc_port -auth splunk.admin_user splunk.password become True become_user splunk.user when not splunk_search_head_captain bool register task_result changed_when task_result.rc 0 failed_when task_result.rc =0 and is already part of cluster not in task_result.stderr until task_result.rc 0 or is already part of cluster in task_result.stderr retries shc_sync_retry_num delay retry_delay no_log hide_password

AnsibleTask command splunk.exec resync shcluster-replicated-config -auth splunk.admin_user splunk.password become True become_user splunk.user when not splunk_search_head_captain bool register task_result changed_when task_result.rc 0 failed_when task_result.rc =0 and this instance is the captain not in task_result.stderr until task_result.rc 0 or this instance is the captain in task_result.stderr retries shc_sync_retry_num delay retry_delay no_log hide_password

AnsibleTask command splunk.exec edit cluster-config -mode searchhead -master_uri multisite_master_uri -auth splunk.admin_user splunk.password -secret splunk.idxc.pass4SymmKey become True become_user splunk.user register set_new_master until set_new_master.rc 0 changed_when set_new_master.rc 0 retries retry_num delay retry_delay ignore_errors True notify Restart the splunkd service no_log hide_password

AnsibleTask command splunk.exec edit cluster-master -old_master_uri multisite_master_uri -site splunk.site -auth splunk.admin_user splunk.password -secret splunk.idxc.pass4SymmKey -multisite True become True become_user splunk.user register set_associated_site until set_associated_site.rc 0 or set_associated_site.rc 22 and change in master or secret or site in set_associated_site.stderr changed_when set_associated_site.rc 0 retries retry_num delay retry_delay ignore_errors True notify Restart the splunkd service no_log hide_password failed_when set_associated_site.rc 0 and change in master or secret or site not in set_associated_site.stderr

AnsibleTask command splunk.exec edit cluster-config -mode searchhead -master_uri multisite_master_uri -auth splunk.admin_user splunk.password -secret splunk.idxc.pass4SymmKey become True become_user splunk.user register set_new_master until set_new_master.rc 0 or set_new_master.rc 22 and Use edit cluster-master to edit information for this in set_new_master.stderr changed_when set_new_master.rc 0 retries retry_num delay retry_delay ignore_errors True notify Restart the splunkd service no_log hide_password failed_when set_new_master.rc 0 and Use edit cluster-master to edit information for this not in set_new_master.stderr

AnsibleTask hosts virthost gather_facts True roles libvirt/teardown libvirt/setup

AnsibleTask hosts localhost gather_facts True vars inventory undercloud roles tripleo-inventory

AnsibleTask hosts undercloud gather_facts False roles tripleo/undercloud tripleo/overcloud

AnsibleTask copy src ../../install-deps.sh dest install-deps.sh mode,484

AnsibleTask shell bash -x install-deps.sh args warn False tags skip_ansible_lint

AnsibleTask hosts localhost gather_facts True roles tripleo-inventory

AnsibleTask hosts virthost gather_facts True roles parts/kvm parts/libvirt

AnsibleTask hosts virthost gather_facts True vars True roles libvirt/teardown/nodes become True

AnsibleTask hosts virthost gather_facts True vars True roles lookup lookup lookup lookup lookup become True

AnsibleTask hosts virthost gather_facts True roles libvirt/setup

AnsibleTask hosts virthost gather_facts False roles libvirt/teardown

AnsibleTask hosts localhost gather_facts True roles tripleo-inventory tags provision

AnsibleTask hosts virthost gather_facts True tags environment roles environment/setup

AnsibleTask hosts virthost gather_facts True tags libvirt roles libvirt/setup

AnsibleTask hosts localhost gather_facts True tags undercloud-inventory roles tripleo-inventory

AnsibleTask hosts undercloud gather_facts True tags libvirt roles virtbmc

AnsibleTask hosts virthost gather_facts True roles repo-setup tags provision

AnsibleTask hosts virthost gather_facts True roles libvirt/teardown tags teardown-nodes teardown-all

AnsibleTask hosts virthost gather_facts True roles libvirt/teardown tags teardown-all teardown-nodes

AnsibleTask template src convert_image_template dest convert_image_working_dir /convert_image.sh

AnsibleTask command virt-customize smp 2 -m convert_image_host_memory -a convert_image_working_dir /overcloud-full.qcow2 root-password password overcloud_full_root_pwd when overcloud_full_root_pwd is defined overcloud_full_qcow2.stat.exists

AnsibleTask command cp convert_image_working_dir /overcloud-full.qcow2 convert_image_working_dir /undercloud.qcow2 changed_when True when overcloud_full_qcow2.stat.exists and overcloud_as_undercloud|bool

AnsibleTask command qemu-img resize convert_image_working_dir /undercloud.qcow2 flavors undercloud_node.name .disk G changed_when True

AnsibleTask command virt-customize -v smp 2 -m convert_image_host_memory -a convert_image_working_dir /undercloud.qcow2 run convert_image.sh changed_when True args chdir convert_image_working_dir environment LIBGUESTFS_BACKEND direct LIBVIRT_DEFAULT_URI libvirt_uri

AnsibleTask shell virt-cat -a undercloud.qcow2 /tmp/builder.log builder-undercloud.log 2 1 changed_when True args chdir convert_image_working_dir environment LIBGUESTFS_BACKEND direct LIBVIRT_DEFAULT_URI libvirt_uri

AnsibleTask debug msg= Some libvirt networks were not set to autostart Please see https //bugs.launchpad.net/tripleo-quickstart/+bug/1581676

AnsibleTask copy content= item.get_xml dest=/tmp/network- item.item.name .xml with_items net_xml.results become True

AnsibleTask command virsh net-define /tmp/network- item.name .xml with_items networks become True

AnsibleTask command virsh uri ignore_errors True register libvirt_check changed_when False

AnsibleTask command virsh net-uuid item.name with_items networks register network_check ignore_errors True become True

AnsibleTask command virsh net-destroy item.item.name when libvirt_check is success and item is success with_items network_check.results ignore_errors True become True

AnsibleTask command virsh net-undefine item.item.name when libvirt_check is success and item is success with_items network_check.results ignore_errors True become True

AnsibleTask file dest=/var/log/extra/dstat-csv.log state=absent become True

AnsibleTask set_fact _force_cached_image force_cached_images|default false |bool or image.force_cached|default false |bool _latest image_cache_dir /latest- image.name image.type cacheable True

AnsibleTask command test -f _latest args chdir image_cache_dir ignore_errors True register latest_exists changed_when False

AnsibleTask set_fact image_cache_path _latest cacheable True when latest_exists is success and _force_cached_image

AnsibleTask set_fact md5_expected image.md5sum.split 0 cacheable True

AnsibleTask set_fact image_cache_path image_cache_dir md5_expected image.type cacheable True

AnsibleTask command test -f image_cache_path args chdir image_cache_dir ignore_errors True register base_image_exists changed_when False

AnsibleTask command curl -skfL image.url .md5 register md5_expected until md5_expected.rc not in 18 56 22 retries 10 delay 15

AnsibleTask set_fact md5_expected md5_expected.stdout.split 0 cacheable True

AnsibleTask command test -f image_cache_path args chdir image_cache_dir ignore_errors True register image_exists changed_when False

AnsibleTask command curl -skfL -C- -o _ image.name image.type image.url args chdir image_cache_dir register curl_result until curl_result.rc not in 18 56 retries 20 delay 5

AnsibleTask command md5sum -b _ image.name image.type args chdir image_cache_dir register md5_actual

AnsibleTask set_fact md5_actual md5_actual.stdout.split 0 cacheable True

AnsibleTask fail msg image checksum does not match when image_exists is failed and md5_expected md5_actual

AnsibleTask command mv _ image.name image.type image_cache_path args chdir image_cache_dir

AnsibleTask file path image_cache_dir /_ image.name image.type state absent

AnsibleTask command cp image_cache_path image_fetch_dir image.name image.type when image.type qcow2 and image.md5sum is not defined

AnsibleTask command cp image_cache_path image_fetch_dir /undercloud image.type when image.type qcow2 and image.md5sum is defined

AnsibleTask shell set -o pipefail find image_cache_dir -type f if not image_cache_dir_cleanup|bool -mtime image_cache_expire_days|int 1 endif xargs no-run-if-empty -t rm -rf changed_when True

AnsibleTask file path image_cache_dir state directory owner non_root_user group non_root_group mode ug+rwx become True

AnsibleTask become True file path libvirt_volume_path state directory mode,493

AnsibleTask command virsh pool-uuid libvirt_volume_pool register pool_check ignore_errors True changed_when False environment LIBVIRT_DEFAULT_URI libvirt_uri

AnsibleTask template src volume_pool.xml.j2 dest working_dir /volume_pool.xml when pool_check is failed

AnsibleTask command virsh pool-define working_dir /volume_pool.xml when pool_check is failed environment LIBVIRT_DEFAULT_URI libvirt_uri

AnsibleTask shell set -o pipefail virsh pool-dumpxml libvirt_volume_pool virsh pool-define /dev/stdin changed_when True environment LIBVIRT_DEFAULT_URI libvirt_uri

AnsibleTask command qemu-img create -f qcow2 -o preallocation=off working_dir /undercloud-resized.qcow2 changed_when True

AnsibleTask shell libguestfs-test-tool working_dir /libguestfs-test.log 2 1 ignore_errors True register libguestfs changed_when False

AnsibleTask template src libguestfs-env.sh.j2 dest working_dir /libguestf-env.sh

AnsibleTask shell set -eo pipefail source working_dir /libguestf-env.sh virt-resize -x verbose expand /dev/sda1 working_dir /undercloud.qcow2 working_dir /undercloud-resized.qcow2 2 1 tee -a working_dir /virt-resize.log register result no_log True changed_when True

AnsibleTask command mv -f working_dir working_dir /undercloud.qcow2 changed_when True

AnsibleTask no_log True shell import crypt print crypt.crypt vm_pass 1 SecretSalt args executable /usr/bin/python ansible_python register hash changed_when False

AnsibleTask copy content hash.stdout dest working_dir /pwtemp mode,384

AnsibleTask shell source working_dir /libguestf-env.sh virt-customize -v -a working_dir /undercloud.qcow2 root-password file working_dir /pwtemp working_dir /virt-customize.log 2 1 register root_password changed_when True

AnsibleTask shell source working_dir /libguestf-env.sh virt-customize -v -a working_dir /undercloud.qcow2 run-command ` findmnt -o FSTYPE -fn ` if FS_TYPE xfs then xfs_growfs elif FS_TYPE ext4 then resize2fs /dev/sda1 else echo ERROR Unknown filesystem FSTYPE can not resize exit 1 fi working_dir /virt-customize.log 2 1 when resize_qcow_filesystem|default true |bool changed_when True

AnsibleTask shell source working_dir /libguestf-env.sh virt-customize -v -a working_dir /undercloud.qcow2 run-command grubby update-kernel=ALL args=\ cloud-init=disabled\ working_dir /virt-customize.log 2 1 changed_when True

AnsibleTask shell source working_dir /libguestf-env.sh virt-customize -v -a working_dir /undercloud.qcow2 mkdir /root/.ssh/ upload pub_key /root/.ssh/authorized_keys run-command -R root root /root/.ssh run-command 0700 /root/.ssh run-command 0600 /root/.ssh/authorized_keys selinux-relabel working_dir /virt-customize.log 2 1 changed_when True

AnsibleTask shell source working_dir /libguestf-env.sh virt-customize -v -a working_dir /undercloud.qcow2 run-command -u zuul /dev/null || useradd zuul mkdir /home/zuul/.ssh run-command /root/.ssh/authorized_keys /home/zuul/.ssh/ run-command -R zuul zuul /home/zuul/.ssh run-command 0700 /home/zuul/.ssh run-command 0600 /home/zuul/.ssh/authorized_keys run-command zuul ALL= root NOPASSWD ALL /etc/sudoers.d/zuul run-command 0440 /etc/sudoers.d/zuul selinux-relabel working_dir /virt-customize.log 2 1 changed_when True

AnsibleTask shell source working_dir /libguestf-env.sh virt-customize -a working_dir /undercloud.qcow2 run-command install -y qemu-guest-agent run-command enable qemu-guest-agent working_dir /virt-customize.log 2 1 changed_when True

AnsibleTask command virsh vol-create-as libvirt_volume_pool item.name .qcow2 flavors item.flavor .disk G format qcow2 with_items overcloud_nodes

AnsibleTask command virsh -k 0 vol-upload pool libvirt_volume_pool item.name .qcow2 local_working_dir /undercloud.qcow2 async 600 poll 10 with_items overcloud_nodes

AnsibleTask template src zuul_hosts_template dest local_working_dir /zuul-hosts.yaml mode,493

AnsibleTask command virsh vol-info pool libvirt_volume_pool item.name .qcow2 register overcloud_vol_check ignore_errors True with_items overcloud_nodes

AnsibleTask command virsh vol-create-as libvirt_volume_pool item.item.name flavors item.item.flavor .disk G format qcow2 when item is failed not libvirt_nodepool_vms|default false |bool with_items overcloud_vol_check.results

AnsibleTask command dd if=/dev/zero of= libvirt_volume_path item 0 .name _ item 1 .img bs=1 count=0 seek= extradisks_size when flavors item 0 .flavor .extradisks|default false with_nested overcloud_nodes extradisks_list

AnsibleTask command virsh domblkinfo item 0 .name libvirt_volume_path item 0 .name _ item 1 .img when flavors item 0 .flavor .extradisks|default false changed_when False ignore_errors True register overcloud_extradisks_check with_nested overcloud_nodes extradisks_list

AnsibleTask command virsh attach-disk config item.item 0 .name libvirt_volume_path item.item 0 .name _ item.item 1 .img item.item 1 when item is failed with_items overcloud_extradisks_check.results

AnsibleTask template src undercloud_instackenv_template dest working_dir /instackenv.json when create_instackenv_json|default true |bool

AnsibleTask set_fact item.name.replace _ _ip ip_result.stdout_lines 0 cacheable True

AnsibleTask delegate_to item.name shell echo 127.0.0.1 item.name localhost /etc/hosts echo HOSTNAME= item.name /etc/sysconfig/network echo item.name /etc/hostname hostnamectl set-hostname item.name if custom_nameserver is defined and custom_nameserver echo nameserver custom_nameserver /etc/resolv.conf echo append domain-name-servers custom_nameserver /etc/dhcp/dhclient.conf endif become True changed_when True

AnsibleTask delegate_to localhost file path local_working_dir state directory

AnsibleTask delegate_to localhost command ssh-keygen -f supplemental_node_key -N -C ansible_generated_supplemental -t rsa -b 4096 args creates supplemental_node_key

AnsibleTask copy src supplemental_node_key .pub dest working_dir owner undercloud_user group undercloud_user mode,384 become True

AnsibleTask command virsh vol-info pool libvirt_volume_pool supplemental_node.name .qcow2 ignore_errors True changed_when False register supplemental_vol_check environment LIBVIRT_DEFAULT_URI libvirt_uri

AnsibleTask template src tls_everywhere_provisioner.sh.j2 dest ~/tls_everywhere_provisioner.sh mode,448 when enable_tls_everywhere|bool

AnsibleTask shell bash ~/tls_everywhere_provisioner.sh ~/tls_everywhere_provisioner.log when enable_tls_everywhere|bool

AnsibleTask copy src supplemental_provisioning_script dest ~/supplemental_node_provisioner.sh mode,484

AnsibleTask shell ~/supplemental_node_provisioner.sh tags skip_ansible_lint

AnsibleTask template src overcloud_customize_script dest working_dir /overcloud-customize.sh mode,493

AnsibleTask command virt-copy-out -a working_dir /undercloud.qcow2 /home/ undercloud_user /overcloud-full.qcow2 working_dir when not overcloud_image_stat_for_customize.stat.exists

AnsibleTask command virt-customize -a working_dir /overcloud-full.qcow2 run working_dir /overcloud-customize.sh

AnsibleTask command virt-copy-in -a working_dir /undercloud.qcow2 working_dir /overcloud-full.qcow2 /home/ undercloud_user

AnsibleTask template src inject_gating_repo.sh.j2 dest working_dir /inject_gating_repo.sh

AnsibleTask command virt-copy-out -a working_dir /undercloud.qcow2 /home/ undercloud_user /overcloud-full.qcow2 working_dir register overcloud_image_extracted when not overcloud_image_stat.stat.exists

AnsibleTask command virt-customize -a working_dir /overcloud-full.qcow2 upload compressed_gating_repo /tmp/gating_repo.tar.gz run working_dir /inject_gating_repo.sh

AnsibleTask command virt-copy-in -a working_dir /undercloud.qcow2 working_dir /overcloud-full.qcow2 /home/ undercloud_user when overcloud_image_extracted is defined and overcloud_image_extracted|changed

AnsibleTask command virt-customize -a working_dir /undercloud.qcow2 upload compressed_gating_repo /tmp/gating_repo.tar.gz run working_dir /inject_gating_repo.sh when not overcloud_as_undercloud|bool

AnsibleTask command virsh vol-info pool libvirt_volume_pool undercloud_node.name .qcow2 ignore_errors True changed_when False register undercloud_vol_check environment LIBVIRT_DEFAULT_URI libvirt_uri

AnsibleTask command virt-customize -a working_dir /undercloud.qcow2 upload working_dir item /home/ undercloud_user item run-command undercloud_user undercloud_user /home/ undercloud_user item changed_when True with_items inject_images default when overcloud_as_undercloud|bool or use_external_images|bool inject_images|length 0

AnsibleTask command virt-customize -a working_dir /undercloud.qcow2 upload working_dir /instackenv.json /home/ undercloud_user /instackenv.json run-command undercloud_user undercloud_user /home/ undercloud_user /instackenv.json when inject_instackenv|bool

AnsibleTask copy src undercloud_key .pub dest working_dir /id_rsa_undercloud.pub

AnsibleTask when release not in copy src virt_power_key dest working_dir /id_rsa_virt_power

AnsibleTask command virt-customize -a working_dir /undercloud.qcow2 mkdir item.homedir /.ssh/ upload working_dir /id_rsa_undercloud.pub item.homedir /.ssh/authorized_keys run-command -R item.owner item.group item.homedir /.ssh run-command 0700 item.homedir /.ssh run-command 0600 item.homedir /.ssh/authorized_keys with_items undercloud_user undercloud_user undercloud_user

AnsibleTask when release not in command virt-customize -a working_dir /undercloud.qcow2 upload working_dir /id_rsa_virt_power /root/.ssh/id_rsa_virt_power run-command root root /root/.ssh/id_rsa_virt_power run-command 0600 /root/.ssh/id_rsa_virt_power

AnsibleTask template src undercloud_customize_script dest working_dir /undercloud-customize.sh mode,493 when undercloud_customize_script is defined

AnsibleTask command virt-customize -a working_dir /undercloud.qcow2 run working_dir /undercloud-customize.sh when undercloud_customize_script is defined

AnsibleTask command virt-customize -a working_dir /undercloud.qcow2 selinux-relabel

AnsibleTask command virt-filesystems -a working_dir /undercloud.qcow2 environment LIBGUESTFS_BACKEND direct register undercloud_partitions

AnsibleTask command qemu-img create -f qcow2 -o preallocation=off working_dir /undercloud-resized.qcow2 flavors undercloud_node.flavor .disk G

AnsibleTask command virt-resize expand /dev/sda1 working_dir /undercloud.qcow2 working_dir /undercloud-resized.qcow2 environment LIBGUESTFS_BACKEND direct LIBGUESTFS_DEBUG,1 LIBGUESTFS_TRACE,1

AnsibleTask command mv -f working_dir working_dir /undercloud.qcow2

AnsibleTask command virt-customize -a working_dir /undercloud.qcow2 run-command ` findmnt -o FSTYPE -fn ` if FS_TYPE xfs then xfs_growfs elif FS_TYPE ext4 then resize2fs /dev/sda1 else echo ERROR Unknown filesystem FSTYPE can not resize exit 1 fi environment LIBGUESTFS_BACKEND direct LIBGUESTFS_DEBUG,1 LIBGUESTFS_TRACE,1

AnsibleTask command qemu-img resize working_dir /undercloud.qcow2 flavors undercloud_node.flavor .disk G

AnsibleTask command virt-customize -a working_dir /undercloud.qcow2 run-command ` findmnt -o FSTYPE -fn ` if FS_TYPE xfs then xfs_growfs elif FS_TYPE ext4 then resize2fs /dev/sda else echo ERROR Unknown filesystem FSTYPE can not resize exit 1 fi environment LIBGUESTFS_BACKEND direct LIBGUESTFS_DEBUG,1 LIBGUESTFS_TRACE,1

AnsibleTask set_fact libvirt_environment libvirt_uri cacheable True when ssh_user root

AnsibleTask command virt-copy-out -a working_dir /undercloud.qcow2 undercloud_user /overcloud-full.vmlinuz undercloud_user /overcloud-full.initrd working_dir environment libvirt_environment when not undercloud_use_custom_boot_images|bool

AnsibleTask command virt-get-kernel -a working_dir /undercloud.qcow2 unversioned-names output working_dir environment LIBVIRT_DEFAULT_URI libvirt_uri

AnsibleTask command mv working_dir /vmlinuz working_dir /overcloud-full.vmlinuz

AnsibleTask command mv working_dir /initramfs working_dir /overcloud-full.initrd

AnsibleTask set_fact overcloud_as_undercloud True cacheable True

AnsibleTask command virsh vol-create-as libvirt_volume_pool undercloud_node.name .qcow2 flavors undercloud_node.flavor .disk G format qcow2

AnsibleTask command virsh -k 0 vol-upload pool libvirt_volume_pool undercloud_node.name .qcow2 working_dir /undercloud.qcow2 async 600 poll 10

AnsibleTask file path working_dir owner non_root_user group non_root_user mode a+x recurse True state directory when non_root_chown|bool

AnsibleTask set_fact undercloud_ip undercloud_vm_ip_result.stdout_lines 0 cacheable True

AnsibleTask delegate_to localhost template src ssh.config.j2 dest local_working_dir /ssh.config.ansible

AnsibleTask template src ssh_tunnel_service_file dest /etc/systemd/system/ssh-tunnel.service mode,420 become True

AnsibleTask shell systemctl daemon-reload become True tags skip_ansible_lint

AnsibleTask service name ssh-tunnel enabled True state restarted become True

AnsibleTask template src update_image.sh.j2 dest working_dir /update_image- item.inode .sh with_items qcow_images.files default

AnsibleTask command virt-customize -v smp 2 -m 4096 -a item.path run update_image- item.inode .sh args chdir working_dir environment LIBGUESTFS_BACKEND direct LIBVIRT_DEFAULT_URI libvirt_uri with_items qcow_images.files default changed_when True

AnsibleTask delegate_to localhost command ssh-keygen -f item.path -N -C item.comment -t rsa -b 4096 args creates item.path with_items virt_power_key undercloud_key

AnsibleTask copy src undercloud_key dest working_dir owner ssh_user group ssh_user mode,384

AnsibleTask no_log True set_fact virt_power_key_pvt lookup virt_power_key |default cacheable True

AnsibleTask command virsh uri ignore_errors True changed_when False register libvirt_check environment LIBVIRT_DEFAULT_URI libvirt_uri

AnsibleTask command virsh domid undercloud_node.name ignore_errors True register undercloud_check

AnsibleTask command virsh destroy undercloud_node.name when undercloud_check is success ignore_errors True

AnsibleTask command virsh undefine undercloud_node.name when undercloud_check is success

AnsibleTask shell virsh vol-dumpxml pool libvirt_volume_pool undercloud_node.name 2 1 /dev/null virsh vol-delete pool libvirt_volume_pool undercloud_node.name ignore_errors True

AnsibleTask file path working_dir /undercloud-resized.qcow2 state absent

AnsibleTask command virsh pool-uuid libvirt_volume_pool register pool_check ignore_errors True

AnsibleTask shell virsh pool-dumpxml libvirt_volume_pool virsh pool-define /dev/stdin when pool_check is success

AnsibleTask command virsh pool-destroy libvirt_volume_pool when pool_check is success ignore_errors True

AnsibleTask command virsh pool-undefine libvirt_volume_pool when pool_check is success

AnsibleTask command id -u ansible_user_id register pool_uid changed_when False when pool_check is success

AnsibleTask file path /run/user/ pool_uid.stdout /libvirt/storage/run/ libvirt_volume_pool .xml state absent when pool_check is success

AnsibleTask set_fact cpu_vendor if in ansible_processor|join else if in ansible_processor|join else cacheable True

AnsibleTask command awk -F print 2 exit /proc/cpuinfo register cpu_flags_cmd changed_when False

AnsibleTask set_fact cpu_nested_support true if cpu_vendor and in cpu_flags_cmd.stdout.split else true if cpu_vendor and in cpu_flags_cmd.stdout.split else false cacheable True

AnsibleTask set_fact nested false if not cpu_nested_support|bool else nested cacheable True

AnsibleTask shell set -o pipefail find /etc/modprobe.d/ -type f -print0 xargs -r -0 sed -i kvm_intel/d /^options kvm_amd/d become True changed_when True

AnsibleTask copy dest /etc/modprobe.d/kvm.conf content options kvm_ cpu_vendor nested= nested|bool|ternary 1 0 become True

AnsibleTask command cat /sys/module/kvm_ cpu_vendor /parameters/nested register kvm_nested_info changed_when False when nested|bool

AnsibleTask set_fact cpu_nested_enabled False cacheable True when not nested|bool

AnsibleTask set_fact cpu_nested_enabled true if Y in kvm_nested_info.stdout else true if 1 in kvm_nested_info.stdout else false cacheable True when nested|bool

AnsibleTask command cat /sys/module/kvm_ cpu_vendor /parameters/nested register kvm_nested_info changed_when False

AnsibleTask set_fact cpu_nested_enabled true if Y in kvm_nested_info.stdout else true if 1 in kvm_nested_info.stdout else false cacheable True

AnsibleTask fail msg Can not change the state of nested virtualization Please shut down any running VMs when nested|bool cpu_nested_enabled|bool

AnsibleTask shell if rpm -q ipxe-roms-qemu-20130517 then rpm -e nodeps ipxe-roms-qemu-20130517 echo rpm removed fi become True register old_ipxe changed_when rpm removed in old_ipxe.stdout

AnsibleTask service name libvirtd_service state started enabled True become True when not chrooted|bool

AnsibleTask service name ovs_service state started enabled True become True

AnsibleTask fail msg You need to set virthost before running these playbooks when virthost|default length 0

AnsibleTask command id -gn register local_user_group changed_when False

AnsibleTask set_fact current_group_local local_user_group.stdout cacheable True tags provision

AnsibleTask file path local_working_dir state directory owner ansible_env.USER group current_group_local

AnsibleTask file path local_working_dir state directory owner ansible_env.USER group current_group_local become True

AnsibleTask file path local_working_dir /ssh.config.ansible state touch

AnsibleTask delegate_to localhost command ssh-keygen -f virt_host_key -N -C -t rsa -b 4096 args creates virt_host_key

AnsibleTask service name tuned enabled yes state started become True

AnsibleTask command tuned-adm active register tuned changed_when False

AnsibleTask command tuned-adm profile tuned_profile become True when tuned.stdout.find tuned_profile 1

AnsibleTask command id non_root_user -u register non_root_user_uid_output changed_when False retries 3 delay 5 until non_root_user_uid_output is not failed

AnsibleTask shell set -o pipefail getent passwd non_root_user cut -d -f6 register non_root_user_homedir_output changed_when False

AnsibleTask set_fact non_root_user_uid non_root_user_uid_output.stdout cacheable True

AnsibleTask set_fact non_root_user_homedir non_root_user_homedir_output.stdout cacheable True

AnsibleTask template src libvirt.pkla.j2 dest /etc/polkit-1/localauthority/50-local.d/50- non_root_user -libvirt.pkla become True

AnsibleTask copy content non_root_user ALL= ALL NOPASSWD ALL dest /etc/sudoers.d/ non_root_user owner root group root mode,288 become True

AnsibleTask file path libvirt_volume_path state directory owner non_root_user group non_root_group become True

AnsibleTask debug msg= Unfortunately your linux distribution is not supported at the moment We welcome community support please see https //github.com/openstack/tripleo-quickstart To run quickstart with out this check set -e supported_distro_check=false failed_when supported_distro_check when not ansible_distribution or ansible_distribution

AnsibleTask command id -u non_root_user register non_root_uid ignore_errors True changed_when False

AnsibleTask command pgrep -u non_root_user register proc_exist ignore_errors True become True

AnsibleTask command pkill -u non_root_user ignore_errors True become True when proc_exist is success

AnsibleTask command pgrep -c -u non_root_user register proc_kill retries 5 delay 3 until proc_kill.stdout 0 ignore_errors True when proc_exist is success become True

AnsibleTask command pkill -9 -u non_root_user when proc_exist is success ignore_errors True become True

AnsibleTask file path item state absent with_fileglob /run/user/ non_root_uid.stdout /* become True

AnsibleTask template src repo_setup_script_source dest repo_setup_dir repo_setup_script mode,493

AnsibleTask fail msg The newest DLRN hash or tag is not recognized The hash or tag should not contain path slashes when not dlrn_hash_tag is match a-zA-Z0-9 40 _ a-zA-Z0-9 8 or not dlrn_hash_tag is match a-zA-Z0-9 32 dlrn_hash_tag_newest not in known_hash_tags

AnsibleTask set_fact dlrn_hash_newest dlrn_hash_tag_newest cacheable True when dlrn_hash_tag_newest is match a-zA-Z0-9 40 _ a-zA-Z0-9 8 or dlrn_hash_tag is match a-zA-Z0-9 32

AnsibleTask shell set -euo pipefail dlrn_base= dlrn_baseurl if -e /etc/ci/mirror_info.sh then source /etc/ci/mirror_info.sh NODEPOOL_RDO_PROXY= NODEPOOL_RDO_PROXY -https //trunk.rdoproject.org dlrn_base= dlrn_base/https \/\/trunk.rdoproject.org/ NODEPOOL_RDO_PROXY fi curl -s fail show-error dlrn_base dlrn_hash_tag_newest /delorean.repo grep baseurl grep -Eo a-zA-Z0-9 40 _ a-zA-Z0-9 8 register full_hash_newest_result retries 5

AnsibleTask set_fact dlrn_hash_newest full_hash_newest_result.stdout cacheable True

AnsibleTask shell set -euo pipefail dlrn_base= dlrn_baseurl if -e /etc/ci/mirror_info.sh then source /etc/ci/mirror_info.sh NODEPOOL_RDO_PROXY= NODEPOOL_RDO_PROXY -https //trunk.rdoproject.org dlrn_base= dlrn_base/https \/\/trunk.rdoproject.org/ NODEPOOL_RDO_PROXY fi curl -s fail show-error dlrn_base dlrn_hash_tag_newest /delorean.repo.md5 register full_hash_result retries 5

AnsibleTask set_fact dlrn_hash_newest full_hash_result.stdout cacheable True

AnsibleTask set_fact dlrn_hash_path_newest dlrn_hash_newest :2 dlrn_hash_newest 2:4 dlrn_hash_newest cacheable True

AnsibleTask fail msg The DLRN hash or tag is not recognized The hash or tag should not contain path slashes when not dlrn_hash_tag is match a-zA-Z0-9 40 _ a-zA-Z0-9 8 or not dlrn_hash_tag is match a-zA-Z0-9 32 dlrn_hash_tag not in known_hash_tags

AnsibleTask set_fact dlrn_hash dlrn_hash_tag cacheable True when dlrn_hash_tag is match a-zA-Z0-9 40 _ a-zA-Z0-9 8 or dlrn_hash_tag is match a-zA-Z0-9 32

AnsibleTask shell set -euo pipefail dlrn_base= dlrn_baseurl if -e /etc/ci/mirror_info.sh then source /etc/ci/mirror_info.sh NODEPOOL_RDO_PROXY= NODEPOOL_RDO_PROXY -https //trunk.rdoproject.org dlrn_base= dlrn_base/https \/\/trunk.rdoproject.org/ NODEPOOL_RDO_PROXY fi curl -s fail show-error dlrn_base dlrn_hash_tag /delorean.repo grep baseurl grep -Eo a-zA-Z0-9 40 _ a-zA-Z0-9 8 register full_hash_result retries 5

AnsibleTask set_fact dlrn_hash full_hash_result.stdout cacheable True

AnsibleTask shell set -euo pipefail dlrn_base= dlrn_baseurl if -e /etc/ci/mirror_info.sh then source /etc/ci/mirror_info.sh NODEPOOL_RDO_PROXY= NODEPOOL_RDO_PROXY -https //trunk.rdoproject.org dlrn_base= dlrn_base/https \/\/trunk.rdoproject.org/ NODEPOOL_RDO_PROXY fi curl -s fail show-error dlrn_base dlrn_hash_tag /delorean.repo.md5 register full_hash_result retries 5

AnsibleTask shell set -euo pipefail dlrn_base=https //trunk.rdoproject.org/centos7- overcloud_release if -e /etc/ci/mirror_info.sh then source /etc/ci/mirror_info.sh NODEPOOL_RDO_PROXY= NODEPOOL_RDO_PROXY -https //trunk.rdoproject.org dlrn_base= dlrn_base/https \/\/trunk.rdoproject.org/ NODEPOOL_RDO_PROXY fi curl -s fail show-error dlrn_base dlrn_hash_tag /delorean.repo grep baseurl grep -Eo a-zA-Z0-9 40 _ a-zA-Z0-9 8 register full_overcloud_hash_result retries 5

AnsibleTask set_fact overcloud_dlrn_hash full_overcloud_hash_result.stdout cacheable True

AnsibleTask set_fact overcloud_dlrn_hash_path overcloud_dlrn_hash :2 overcloud_dlrn_hash 2:4 overcloud_dlrn_hash cacheable True

AnsibleTask set_fact overcloud_docker_image_tag overcloud_dlrn_hash cacheable True

AnsibleTask set_fact dlrn_hash_path dlrn_hash :2 dlrn_hash 2:4 dlrn_hash cacheable True

AnsibleTask shell set -o pipefail repo_setup_dir repo_setup_script 2 1 timestamper_cmd tee -a repo_setup_dir repo_setup_log become True register result no_log result.rc 0 changed_when True

AnsibleTask vars deprecation_warning_msg WARNING This role is deprecated for removal since Ocata Reason The tripleo/undercloud role is now deprecated has moved into the tripleo-quickstart-extras repository and been renamed to undercloud-deploy The tripleo/undercloud role will be removed in the Queens release Please revise your playbooks to use the new role location and name debug msg deprecation_warning_msg.split

AnsibleTask template src get-overcloud-nodes.py.j2 dest working_dir /get-overcloud-nodes.py mode,493

AnsibleTask shell source working_dir /stackrc command -v python3 || command -v python2 working_dir /get-overcloud-nodes.py register registered_overcloud_nodes

AnsibleTask command cat /etc/nodepool/sub_nodes_private register nodes

AnsibleTask set_fact undercloud_ip hostvars .undercloud_ip cacheable True when hostvars is defined and hostvars .undercloud_ip is defined

AnsibleTask set_fact virthost_with_private_key in groups and groups |length 0 and hostvars groups 0 .ansible_private_key_file is defined

AnsibleTask set_fact supplemental_node_ip_private node_ip.stdout|replace |replace |trim cacheable True when node_ip.stdout

AnsibleTask set_fact undercloud_ssh_proxy_command ssh -q -o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no -o ConnectTimeout=60 -i hostvars groups 0 .ansible_private_key_file ssh_user hostvars groups 0 .ansible_host -W undercloud_ip :22 cacheable True when virthost_with_private_key and undercloud_ip is defined

AnsibleTask set_fact undercloud_ssh_proxy_command ssh -q -o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no -o ConnectTimeout=60 -i local_working_dir /id_rsa_virt_power ssh_user hostvars .ansible_default_ipv4.address -W undercloud_ip :22 cacheable True when not virthost_with_private_key and undercloud_ip is defined

AnsibleTask set_fact supplemental_ssh_proxy_command ssh -q -o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no -o ConnectTimeout=60 -i local_working_dir /id_rsa_virt_power ssh_user hostvars groups 0 .ansible_host -W supplemental_node_ip :22 cacheable True when supplemental_node_ip is defined

AnsibleTask delegate_to localhost template src inventory.j2 dest local_working_dir /hosts

AnsibleTask delegate_to localhost template src ssh_config.j2 dest local_working_dir /ssh.config.ansible mode,420 when undercloud_ip is defined

AnsibleTask delegate_to localhost template src ssh_config_localhost.j2 dest local_working_dir /ssh.config.local.ansible mode,420 when undercloud_ip is defined

AnsibleTask set_fact id_rsa_virt_power_exists True cacheable True when undercloud_ip is not defined and result_stat_id_rsa_virt_power.stat.exists

AnsibleTask delegate_to localhost template src ssh_config_no_undercloud.j2 dest local_working_dir /ssh.config.ansible mode,420 when undercloud_ip is not defined

AnsibleTask template src clouds.yaml.j2 dest local_working_dir /clouds.yaml mode,256

AnsibleTask command shade-inventory list args chdir local_working_dir register registered_nodes_output no_log True changed_when False

AnsibleTask set_fact registered_overcloud_nodes registered_nodes_output.stdout from_json json_query jq_overcloud registered_undercloud_nodes registered_nodes_output.stdout from_json json_query jq_undercloud cacheable True vars jq_overcloud contains name jq_undercloud contains name

AnsibleTask when clusterid is defined set_fact registered_nodes registered_nodes_output.stdout from_json json_query jq_cluster cacheable True vars jq_cluster metadata.clusterid metadata.clusterid== clusterid

AnsibleTask when not clusterid is defined set_fact registered_nodes registered_overcloud_nodes|union registered_undercloud_nodes cacheable True

AnsibleTask set_fact ssh_proxy_command ssh -o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no -o ConnectTimeout=60 -i hostvars .ansible_private_key_file ssh_user hostvars .ansible_host cacheable True

AnsibleTask delegate_to localhost template src inventory.j2 dest local_working_dir /hosts run_once True

AnsibleTask delegate_to localhost template src openstack_ssh_config.j2 dest local_working_dir /ssh.config.ansible mode,420 run_once True

AnsibleTask hosts undercloud gather_facts False vars inventory undercloud roles tripleo-inventory

AnsibleTask when release not in file path item state directory mode,488 owner root group root with_items /etc/virtualbmc /var/log/virtualbmc become True

AnsibleTask when release not in copy mode,488 dest /etc/virtualbmc/virtualbmc.conf content default config_dir=/root/.vbmc log logfile=/var/log/virtualbmc/virtualbmc.log debug=True ipmi session_timout=20 become True

AnsibleTask set_fact vbmc_address networks|selectattr |map |list|first when networks|selectattr |map |list|length 0

AnsibleTask set_fact vbmc_address libvirt_default_network_address when vbmc_address is not defined

AnsibleTask set_fact vbmc_libvirt_uri qemu+ssh //root vbmc_address /system keyfile=/root/.ssh/id_rsa_virt_power no_verify=1 no_tty=1 when libvirt_uri qemu ///system

AnsibleTask set_fact vbmc_libvirt_uri qemu+ssh // non_root_user vbmc_address /session socket=/run/user/ non_root_user_uid /libvirt/libvirt-sock keyfile=/root/.ssh/id_rsa_virt_power no_verify=1 no_tty=1 when vbmc_libvirt_uri is not defined

AnsibleTask when release not in service name virtualbmc state started enabled True become True

AnsibleTask when release not in command vbmc add item.name port item.virtualbmc_port libvirt-uri vbmc_libvirt_uri args creates /root/.vbmc/ item.name /config with_items overcloud_nodes become True

AnsibleTask when release not in command vbmc start item.name with_items overcloud_nodes become True

AnsibleTask when release in copy mode,436 dest /usr/lib/systemd/system/virtualbmc .service content Unit Description=VirtualBMC i service After=network.target Service Type=forking PIDFile=/root/.vbmc/ i/pid ExecStart=/bin/vbmc start i ExecStop=/bin/vbmc stop i Restart=always Install WantedBy=multi-user.target become True

AnsibleTask when release in service name virtualbmc item.name state started enabled True with_items overcloud_nodes become True

AnsibleTask set_fact freeipa_internal_ip supplemental_node_ip cacheable True

AnsibleTask shell ip a add dev eth2 supplemental_node_ip /24 ip l set eth2 up ip link set dev eth2 mtu 1450 ping 10.0.0.1 -c 4 -q become True changed_when False

AnsibleTask hosts undercloud gather_facts False roles overcloud-prep-network tags overcloud-prep-network

AnsibleTask hosts undercloud gather_facts False roles overcloud-prep-config tags overcloud-prep-config

AnsibleTask hosts undercloud gather_facts True roles baremetal-prep-overcloud tags baremetal-prep-overcloud

AnsibleTask hosts undercloud gather_facts False roles tags overcloud-prep-containers

AnsibleTask hosts undercloud gather_facts False tags tripleo-validations vars validations_group roles or run_tripleo_validations_negative_tests|bool

AnsibleTask hosts undercloud gather_facts False roles overcloud-prep-images tags overcloud-prep-images

AnsibleTask hosts undercloud gather_facts False roles true |bool tags overcloud-prep-flavors

AnsibleTask hosts undercloud gather_facts False roles tags overcloud-ssl

AnsibleTask hosts undercloud tags overcloud-validate gather_facts False roles false |bool

AnsibleTask hosts undercloud tags overcloud-validate gather_facts False roles

AnsibleTask hosts undercloud tags overcloud-delete gather_facts False roles false |bool

AnsibleTask hosts undercloud gather_facts False roles overcloud-deploy tags overcloud-deploy

AnsibleTask hosts undercloud gather_facts True tags overcloud-deploy vars inventory all roles tripleo-inventory

AnsibleTask debug var=overcloud_deploy_result failed_when overcloud_deploy_result failed

AnsibleTask hosts undercloud gather_facts True roles undercloud-deploy tags undercloud-deploy

AnsibleTask hosts undercloud gather_facts False tags tripleo-validations vars run_tripleo_validations_setup True roles or run_tripleo_validations_negative_tests|bool

AnsibleTask hosts undercloud gather_facts False tags octavia roles is defined and download_amphora|bool

AnsibleTask hosts undercloud gather_facts False roles false |bool tags get-images images

AnsibleTask hosts virthost gather_facts True roles check-to-build-or-not-to-build

AnsibleTask hosts virthost gather_facts True vars baseos True roles libvirt/setup

AnsibleTask hosts undercloud gather_facts True vars non_root_user_setup False roles undercloud-setup

AnsibleTask hosts virthost gather_facts False roles baremetal-prep-virthost

AnsibleTask set_fact image_cache_dir working_dir /images-cache cacheable True

AnsibleTask set_fact to_build True cacheable True when in zuul.job

AnsibleTask hosts undercloud gather_facts True vars ib_repo_image_inject not to_build|bool ib_repo_run_live False modify_image_vc_ram,4096 modify_image_vc_cpu,4 modify_image_vc_verbose True tasks to_build|bool undercloud_user /overcloud-full.qcow2 False to_build|bool undercloud_user /ironic-python-agent.initramfs False True False to_build|bool undercloud_user /overcloud-full.qcow2 is defined and not to_build|bool undercloud_user /ironic-python-agent.initramfs True False is defined and not to_build|bool

AnsibleTask hosts undercloud gather_facts True roles repo-setup tags undercloud-repo-setup

AnsibleTask hosts undercloud gather_facts False roles baremetal-undercloud/packages tags undercloud-pkgs-install

AnsibleTask hosts undercloud gather_facts False vars ib_repo_image_inject not to_build|bool ib_repo_run_live False modify_image_vc_ram,4096 modify_image_vc_cpu,4 modify_image_vc_verbose True roles to_build|bool HOME/overcloud-full.qcow2 False to_build|bool HOME/ironic-python-agent.initramfs False True False to_build|bool HOME/overcloud-full.qcow2 is defined and not to_build|bool HOME/ironic-python-agent.initramfs True False is defined and not to_build|bool

AnsibleTask hosts localhost gather_facts True roles tripleo-inventory tags undercloud-inventory

AnsibleTask hosts undercloud gather_facts False roles fetch-images tags overcloud-fetch-images

AnsibleTask hosts virthost gather_facts False roles virthost-full-cleanup

AnsibleTask hosts undercloud gather_facts True tags collect-logs vars inventory all roles tripleo-inventory ignore_errors True

AnsibleTask hosts undercloud gather_facts False roles false |bool tags overcloud-prep-config

AnsibleTask hosts undercloud gather_facts False roles False True False

AnsibleTask hosts undercloud gather_facts False tags overcloud-prep-containers roles mixed_upgrade|default false

AnsibleTask hosts undercloud gather_facts True tags overcloud-update roles false |bool

AnsibleTask hosts overcloud tags overcloud-upgrade gather_facts False vars repo_setup_script repo-setup- release .sh repo_setup_log repo-setup- release .log repo_setup_run_update False artg_compressed_gating_repo HOME /gating_repo.tar.gz ib_gating_repo_update False roles false |bool hostvars is defined and mixed_upgrade|default false |bool

AnsibleTask hosts undercloud gather_facts False tags overcloud-prep-containers roles True prep_container_upgrade_run|default false false |bool

AnsibleTask hosts undercloud gather_facts False roles overcloud-deploy environment TRIPLEO_ROOT lookup

AnsibleTask hosts undercloud gather_facts False roles tags standalone-upgrade

AnsibleTask hosts undercloud gather_facts True tags standalone vars inventory multinode roles tripleo-inventory

AnsibleTask hosts undercloud gather_facts False roles is defined and download_amphora|bool tags octavia

AnsibleTask hosts undercloud gather_facts False roles false |bool tags standalone

AnsibleTask set_fact undercloud_outputs hostvars undercloud_passwords hostvars

AnsibleTask set_fact update_containers_append_tag hostvars default

AnsibleTask shell ansible_pkg_mgr update -y noqa 305 become True when hostvars is defined

AnsibleTask hosts undercloud gather_facts False tags undercloud-upgrade roles false |bool

AnsibleTask hosts undercloud gather_facts True tags overcloud-deploy vars inventory multinode roles tripleo-inventory

AnsibleTask copy dest /etc/hosts content,127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4 :1 localhost localhost.localdomain localhost6 localhost6.localdomain6 become True

AnsibleTask hosts undercloud tags overcloud-validate undercloud-validate gather_facts False roles false |bool

AnsibleTask hosts subnodes gather_facts True roles nodepool-setup

AnsibleTask command os-net-config -c working_dir /eth2.conf -v become True when network_isolation|bool use_testenv_broker|default false |bool

AnsibleTask set_fact undercloud_undercloud_nameservers custom_nameserver cacheable True

AnsibleTask set_fact overcloud_dns_servers custom_nameserver cacheable True

AnsibleTask shell set -eo pipefail echo 127.0.0.1 hostname hostname .openstacklocal sudo tee -a /etc/hosts echo 127.0.0.2 undercloud undercloud.openstacklocal sudo tee -a /etc/hosts if -e HOME /.ssh/id_rsa.pub then if -e HOME /.ssh/id_rsa then ssh-keygen -y -f HOME /.ssh/id_rsa HOME /.ssh/id_rsa.pub else ssh-keygen -N -f HOME /.ssh/id_rsa fi fi sudo mkdir -p /root/.ssh cat ~/.ssh/id_rsa.pub sudo tee -a /root/.ssh/authorized_keys tee -a ~/.ssh/authorized_keys sudo rm -rf /etc/puppet /etc/hiera.yaml sudo cp tripleo_root /tripleo-ci/test-environments/overcloud-cacert.pem /etc/pki/ca-trust/source/anchors/ sudo update-ca-trust extract cp -f lookup ~/instackenv.json changed_when True

AnsibleTask command sed -i s/pxe_ipmitool/ipmi/ ~/instackenv.json when release not in

AnsibleTask hosts undercloud gather_facts False tags overcloud-prep-config roles overcloud-prep-config

AnsibleTask hosts undercloud gather_facts False tags overcloud-prep-containers roles overcloud-prep-containers

AnsibleTask hosts undercloud gather_facts False tags overcloud-prep-images roles overcloud-prep-images

AnsibleTask hosts undercloud gather_facts False tags overcloud-prep-flavors roles overcloud-prep-flavors

AnsibleTask hosts undercloud gather_facts False tags overcloud-prep-network roles overcloud-prep-network

AnsibleTask hosts undercloud gather_facts False tags overcloud-scripts overcloud-ssl roles

AnsibleTask hosts undercloud gather_facts True tags overcloud-deploy roles overcloud-deploy

AnsibleTask hosts undercloud gather_facts True tags overcloud-deploy overcloud-inventory vars inventory all roles tripleo-inventory

AnsibleTask debug var overcloud_deploy_result failed_when overcloud_deploy_result failed

AnsibleTask hosts supplemental gather_facts False tags freeipa-setup roles and enable_tls_everywhere|bool

AnsibleTask hosts undercloud gather_facts False vars ansible_user root tags undercloud-setup roles

AnsibleTask hosts undercloud gather_facts False tags undercloud-deploy roles undercloud-deploy

AnsibleTask hosts undercloud tags overcloud-validate gather_facts False roles or run_tempest|bool

AnsibleTask hosts undercloud overcloud tags overcloud-validate undercloud-validate gather_facts False roles false |bool

AnsibleTask hosts undercloud gather_facts True vars inventory all roles tripleo-inventory

AnsibleTask hosts undercloud gather_facts False roles validate-simple

AnsibleTask hosts virthost gather_facts True vars ///system roles snapshot-libvirt become True

AnsibleTask fail msg The variable tempest_install_method and tempest_cloud_name is required and has not been set when tempest_install_method is not defined tempest_cloud_name is not defined

AnsibleTask file state directory path /root/.config/openstack mode,448 become True

AnsibleTask set_fact tempest_public_net_physical_type datacentre tempest_private_net_provider_type geneve tempest_public_subnet_cidr tempest_cidr tempest_public_subnet_gateway_ip tempest_cidr|nthhost 1 tempest_public_subnet_allocation_pools tempest_cidr|nthhost 100 ~ ~ tempest_cidr|nthhost 120 tempest_network_ping_gateway True when tempest_cidr is defined

AnsibleTask set_fact tempest_use_tempestconf True tempest_service_setup_host inventory_hostname tempest_workspace ansible_user_dir /tempest stackviz_venv_bin ansible_user_dir /stackviz_venv/bin

AnsibleTask set_fact tempest_git_repo https //opendev.org/openstack/tempest tempest_tempestconf_git_repo https //opendev.org/openstack/python-tempestconf tempest_tempestconf_venv_bin ansible_user_dir /tempestconf_venv/bin tempest_venv_bin ansible_user_dir /tempest_venv/bin when tempest_install_method

AnsibleTask set_fact tempest_run_stackviz False when release|default in ansible_distribution|lower in ansible_distribution_major_version is version 7

AnsibleTask set_fact tempest_test_blacklist known_failures json_query undercloud ` true ` when tempest_cloud_name

AnsibleTask template src adjust-interface-mtus.sh.j2 dest working_dir /adjust-interface-mtus.sh mode,493

AnsibleTask become True shell working_dir /adjust-interface-mtus.sh when step_adjust_mtu|bool

AnsibleTask template src allow-traffic-for-controller.sh.j2 dest working_dir /allow-traffic-for-controller.sh mode,493

AnsibleTask become True shell working_dir /allow-traffic-for-controller.sh when network_isolation|bool undercloud_type baremetal not overcloud_ipv6|bool release in or not containerized_undercloud|bool

AnsibleTask template src install-upstream-ipxe.sh.j2 dest working_dir /install-upstream-ipxe.sh mode,493

AnsibleTask shell working_dir /install-upstream-ipxe.sh when step_install_upstream_ipxe|bool

AnsibleTask template src add-provisioning-interface.sh.j2 dest working_dir /add-provisioning-interface.sh mode,493

AnsibleTask become True shell working_dir /add-provisioning-interface.sh changed_when True

AnsibleTask shell set -euxo pipefail ntpdate grep ^server /etc/ntp.conf tail -1 awk print 2 changed_when False

AnsibleTask shell set -o pipefail baremetal_provisioning_script 2 1 timestamper_cmd tee baremetal_provisioning_log when step_provide_undercloud|bool

AnsibleTask fail msg You need to set virthost/undercloud before running these playbooks when virthost is not defined

AnsibleTask command ssh-keygen -f undercloud_key -N -C -t rsa -b 4096 args creates undercloud_key

AnsibleTask delegate_to virthost copy content non_root_user ALL= ALL NOPASSWD ALL dest /etc/sudoers.d/ non_root_user owner root group root mode,288 become True

AnsibleTask delegate_to virthost shell set -euo pipefail ip route get 1 awk print NF exit register registered_undercloud_ip changed_when False

AnsibleTask file path images_working_dir state absent become True when images_destroy_working_dir bool

AnsibleTask file path images_working_dir state directory mode,493 owner non_root_user become True

AnsibleTask template src overcloud_image_build_script dest images_working_dir /overcloud_image_build_script.sh mode,493

AnsibleTask shell set -o pipefail images_working_dir /overcloud_image_build_script.sh 2 1 timestamper_cmd working_dir overcloud_image_build_log args chdir images_working_dir when not build_image_isolated|bool

AnsibleTask shell virt-cat -a build_isolation_image.name .qcow2 /tmp/builder.log builder.log 2 1 || true virt-cat -a build_isolation_image.name .qcow2 /ironic-python-agent.log ironic-python-agent.log 2 1 || true virt-cat -a build_isolation_image.name .qcow2 /overcloud-full.log overcloud-full.log 2 1 || true environment LIBGUESTFS_BACKEND direct LIBVIRT_DEFAULT_URI libvirt_uri args chdir images_working_dir

AnsibleTask fail Image Build Error *** when image_build_failed|default false |bool

AnsibleTask command virt-customize -a images_working_dir /undercloud.qcow2 upload images_working_dir item /home/ undercloud_user item run-command undercloud_user undercloud_user /home/ undercloud_user item changed_when True environment LIBGUESTFS_BACKEND direct LIBVIRT_DEFAULT_URI libvirt_uri with_items inject_images

AnsibleTask shell qemu-img convert -c -O qcow2 undercloud.qcow2 undercloud-compressed.qcow2 mv undercloud-compressed.qcow2 undercloud.qcow2 args chdir images_working_dir

AnsibleTask shell md5sum undercloud.qcow2 undercloud.qcow2.md5 args chdir images_working_dir

AnsibleTask shell tar -cf ironic-python-agent.tar ironic-python-agent.initramfs ironic-python-agent.kernel tar -cf overcloud-full.tar overcloud-full.qcow2 overcloud-full.initrd overcloud-full.vmlinuz args chdir images_working_dir

AnsibleTask shell md5sum ironic-python-agent.tar ironic-python-agent.tar.md5 md5sum overcloud-full.tar overcloud-full.tar.md5 args chdir images_working_dir

AnsibleTask shell rm -rf images_working_dir /overcloud-full.d images_working_dir /ironic-python-agent.d/ sudo chown USER images_working_dir /overcloud-full images_working_dir /ironic-python-agent when cleanup_images_working_dir|bool

AnsibleTask set_fact artg_distro rpm- artg_release when artg_release in

AnsibleTask set_fact artg_distro artg_release -rdo when artg_release not in

AnsibleTask set_fact dlrn_baseurl file ///tmp/fake-dlrn-repos when dlrn_use_local_mirrors|bool

AnsibleTask register project_name_mapped shell chdir build_repo_dir /DLRN cmd source build_repo_dir set -xeo pipefail rdopkg findpkg -s artg_change.project basename -l rdoinfo awk print 2 print findpkg 0 /dev/stderr changed_when False failed_when project_name_mapped.rc 0 or not project_name_mapped.stdout

AnsibleTask set_fact artg_rdo_packages artg_rdo_packages project_name_mapped.stdout

AnsibleTask file path= build_repo_dir /DLRN/data/ state=directory

AnsibleTask command cp -raf artg_repos_dir dirname artg_change.project build_repo_dir /DLRN/data/ project_name_mapped.stdout ignore_errors True register copy_dir when artg_repos_dir is defined

AnsibleTask shell set +e source build_repo_dir /dlrn-venv/bin/activate while true do dlrn config-file projects.ini head-only package-name project_name_mapped.stdout local info-repo rdoinfo dev if -eq 0 then SUCCESS break elif -eq 1 then FAILED exit 1 elif -eq 2 then RETRY continue fi Unexpected DLRN return code exit done args chdir build_repo_dir /DLRN register repo_built when artg_build_one|bool

AnsibleTask set_fact python_cmd python ansible_python.version.major cacheable True when python_cmd is not defined

AnsibleTask command python_cmd -m virtualenv version args warn False register virtualenv_exist changed_when False failed_when False

AnsibleTask shell rm -rf build_repo_dir /DLRN/* args warn False register result changed_when result.stdout or result.stderr

AnsibleTask template src projects.ini.j2 dest build_repo_dir /DLRN/projects.ini

AnsibleTask shell source build_repo_dir /dlrn-venv/bin/activate pip install -r requirements.txt python setup.py install args chdir build_repo_dir /DLRN when dlrn_pre_installed|bool

AnsibleTask shell set -o pipefail gawk print 0 /^ repos exit build_repo_dir /DLRN/scripts/ initial_dlrn_config .cfg build_repo_dir /DLRN/scripts/ initial_dlrn_config -local.cfg cat /etc/yum.repos.d/quickstart- ansible_distribution lower -*.repo build_repo_dir /DLRN/scripts/ initial_dlrn_config -local.cfg find /etc/yum.repos.d -name delorean*repo -name delorean*build-deps.repo -exec cat -exec echo build_repo_dir /DLRN/scripts/ initial_dlrn_config -local.cfg find /etc/yum.repos.d -name delorean*build-deps.repo -exec sed */enabled=1/g build_repo_dir /DLRN/scripts/ initial_dlrn_config -local.cfg if ansible_distribution|lower redhat and ansible_distribution_major_version 8 find /etc/yum.repos.d -name rh-cloud.repo -exec sed */enabled=1/g build_repo_dir /DLRN/scripts/ initial_dlrn_config -local.cfg endif echo build_repo_dir /DLRN/scripts/ initial_dlrn_config -local.cfg mkdir -p /tmp/fake-dlrn-repos/current touch /tmp/fake-dlrn-repos/delorean-deps.repo touch /tmp/fake-dlrn-repos/current/delorean.repo when dlrn_use_local_mirrors|bool

AnsibleTask shell sed -i -e postinstall build_repo_dir /DLRN/scripts/build_rpm.sh when old_dlrn.stat.exists

AnsibleTask set_fact gerrit_host lookup zuul_changes lookup artg_change_list artg_change_list|default cacheable True

AnsibleTask set_fact artg_change_list artg_change_list|union jenkins_change_list|default cacheable True

AnsibleTask set_fact artg_change_list artg_change_list|union zuul_change_list|default cacheable True

AnsibleTask shell set +e source build_repo_dir /dlrn-venv/bin/activate while true do dlrn config-file projects.ini head-only package-name artg_rdo_packages|join package-name local info-repo rdoinfo dev order if -eq 0 then SUCCESS break elif -eq 1 then FAILED exit 1 elif -eq 2 then RETRY continue fi Unexpected DLRN return code exit done args chdir build_repo_dir /DLRN register repo_built_multi when not artg_build_one|bool

AnsibleTask file path build_repo_dir /gating_repo state directory

AnsibleTask shell set -o pipefail rm -rf build_repo_dir /gating_repo/* find build_repo_dir /DLRN/data/repos -type f -name -print0 xargs -0 cp -t build_repo_dir /gating_repo

AnsibleTask command createrepo gating_repo args chdir build_repo_dir

AnsibleTask command tar czf artg_compressed_gating_repo gating_repo args chdir build_repo_dir

AnsibleTask set_fact compressed_gating_repo artg_compressed_gating_repo cacheable True

AnsibleTask file path item state absent with_items build_repo_dir /dlrn-venv build_repo_dir /gating_repo when dlrn_cleanup|bool

AnsibleTask file path build_repo_dir /DLRN state absent when not dlrn_pre_installed|bool dlrn_cleanup|bool

AnsibleTask set_fact zuul_changes zuul_changes|regex_replace a-z/ refs/changes/\d 2 /\d+/\d+

AnsibleTask set_fact projects_need_build zuul_changes intersect projects_need_build_list|default default_projects_need_build_list

AnsibleTask set_fact to_build True cacheable True when projects_need_build

AnsibleTask set_fact to_build True cacheable True when lookup |default 0 |int 1

AnsibleTask set_fact docker_registry_namespace_used docker_registry_namespace tags undercloud-install

AnsibleTask shell echo get_build_command noqa 305 register build_command_output tags undercloud-install

AnsibleTask set_fact container_build_id build_command_output.stdout cacheable True tags undercloud-install

AnsibleTask set_fact container_build_id docker_image_tag cacheable True when get_build_command is not defined tags undercloud-install

AnsibleTask set_fact container_build_id overcloud_docker_image_tag docker_registry_namespace_used overcloud_docker_registry_namespace cacheable True when container_build_id is not defined use_overcloud_mixed_upgrade|default false |bool tags undercloud-install

AnsibleTask set_fact update_containers_append_tag lookup +-updated- Y m d H M S cacheable True when update_containers is defined and update_containers|bool and update_containers_append_tag is undefined tags undercloud-install

AnsibleTask debug var container_build_id tags undercloud-install

AnsibleTask file path artcl_collect_dir state directory when not collect_dir.stat.exists

AnsibleTask file path artcl_collect_dir old_reproducer_dir state directory

AnsibleTask file path artcl_collect_dir old_reproducer_dir /scripts state directory

AnsibleTask copy src /home/ undercloud_user /src/opendev.org/openstack/tripleo-ci/ item dest artcl_collect_dir old_reproducer_dir item mode,493 with_items toci_gate_test.sh toci_quickstart.sh scripts/common_vars.bash scripts/oooq_common_functions.sh

AnsibleTask copy src /home/ undercloud_user /src/opendev.org/openstack/tripleo-ci/featureset-override.yaml dest artcl_collect_dir old_reproducer_dir /featureset-override.yaml mode,493 when featureset_override_file.stat.exists

AnsibleTask template src reproducer_quickstart_script dest artcl_collect_dir old_reproducer_dir /reproducer-quickstart.sh mode,493

AnsibleTask copy src README-reproducer-quickstart.html dest reproducer_quickstart_readme_file

AnsibleTask file path artcl_collect_dir zuul_reproducer_dir state directory

AnsibleTask file path artcl_collect_dir zuul_reproducer_dir /scripts state directory

AnsibleTask copy src /home/ undercloud_user /src/opendev.org/openstack/tripleo-ci/ item dest artcl_collect_dir zuul_reproducer_dir item mode,493 with_items toci_gate_test.sh toci_quickstart.sh scripts/common_vars.bash scripts/oooq_common_functions.sh

AnsibleTask copy src /home/ undercloud_user /src/opendev.org/openstack/tripleo-ci/featureset-override.yaml dest artcl_collect_dir zuul_reproducer_dir /featureset-override.yaml mode,493 when featureset_override_file.stat.exists

AnsibleTask set_fact releases_file_output lookup undercloud_user /workspace/logs/releases.sh replace export when releases_file_result.stat.exists

AnsibleTask set_fact featureset_override_file_output lookup undercloud_user /src/opendev.org/openstack/tripleo-ci/featureset-override.yaml when featureset_override_file.stat.exists

AnsibleTask template src launcher_env_setup_playbook dest artcl_collect_dir zuul_reproducer_dir /launcher-env-setup-playbook.yaml mode,493

AnsibleTask template src reproducer_zuul_based_launcher_playbook dest artcl_collect_dir zuul_reproducer_dir /launcher-playbook.yaml mode,493

AnsibleTask template src reproducer_zuul_based_quickstart_script dest artcl_collect_dir zuul_reproducer_dir /reproducer-zuul-based-quickstart.sh mode,493

AnsibleTask template src reproducer_fresh_box_setup_script dest artcl_collect_dir zuul_reproducer_dir /reproducer-fresh-box-setup.sh mode,493

AnsibleTask copy src /home/ undercloud_user /src/opendev.org/openstack/tripleo-quickstart/ item dest artcl_collect_dir zuul_reproducer_dir item mode,493 with_items install-deps.sh

AnsibleTask template src README-reproducer-zuul-based-quickstart.html.j2 dest reproducer_zuul_based_quickstart_readme_file

AnsibleTask file dest= dump_vars_log_dir state=directory become True

AnsibleTask template src dump_variables_vars.j2 dest dump_vars_log_dir /dump_variables_vars.json become True

AnsibleTask template src dump_variables_environment.j2 dest dump_vars_log_dir /dump_variables_environment.json become True

AnsibleTask template src dump_variables_group_names.j2 dest dump_vars_log_dir /dump_variables_group_names.json become True

AnsibleTask template src dump_variables_groups.j2 dest dump_vars_log_dir /dump_variables_groups.json become True

AnsibleTask template src dump_variables_hostvars.j2 dest dump_vars_log_dir /dump_variables_hostvars.json become True

AnsibleTask set_fact freeipa_admin_password lookup cacheable True when freeipa_admin_password is not defined

AnsibleTask set_fact directory_manager_password lookup cacheable True when directory_manager_password is not defined

AnsibleTask template src deploy_freeipa.sh.j2 dest ~ supplemental_user /deploy_freeipa.sh mode,484

AnsibleTask become True shell ~ supplemental_user /deploy_freeipa.sh ~ supplemental_user /deploy_freeipa.log

AnsibleTask set_fact gated_project_name gated_change.project regex_replace */

AnsibleTask set_fact gated_project_name tripleo-quickstart-gate-repo when gated_change.project openstack/tripleo-quickstart

AnsibleTask file path lookup env WORKSPACE gated_project_name state absent when gated_change.project lookup

AnsibleTask shell set -o pipefail ib_repo_workdir /install-built-repo.sh 2 1 timestamper_cmd ib_repo_install_log become True changed_when True

AnsibleTask template src ib_repo_install_script dest ib_repo_workdir /install-built-repo.sh mode,493

AnsibleTask copy src= local_working_dir /gating_repo.tar.gz dest=/tmp/gating_repo.tar.gz

AnsibleTask command cp -f ib_repo_file_path /tmp/gating_repo.tar.gz when ib_repo_host is not defined

AnsibleTask set_fact _vc_args= _vc_args -m modify_image_vc_ram when modify_image_vc_ram is defined

AnsibleTask set_fact _vc_args= _vc_args smp modify_image_vc_cpu when modify_image_vc_cpu is defined

AnsibleTask set_fact _vc_args= _vc_args -v when modify_image_vc_verbose|bool

AnsibleTask set_fact _vc_args= _vc_args -x when modify_image_vc_trace|bool

AnsibleTask set_fact _vc_args= _vc_args upload item.src item.dest with_items modify_image_upload_files

AnsibleTask set_fact _vc_args= _vc_args install modify_image_install_packages|join when modify_image_install_packages

AnsibleTask set_fact _vc_args= _vc_args run modify_script when modify_script is defined

AnsibleTask set_fact _vc_args= _vc_args root-password password modify_image_vc_root_password when modify_image_vc_root_password is defined

AnsibleTask shell virt-customize _vc_args -a image_to_modify working_dir modify_script|default |replace _ .log 2 1 environment LIBGUESTFS_BACKEND direct LIBGUESTFS_BACKEND_SETTINGS lookup |default true args chdir modify_image_working_dir changed_when True

AnsibleTask shell virt-copy-out -a image_to_modify item modify_image_working_dir environment LIBGUESTFS_BACKEND direct args chdir modify_image_working_dir with_items modify_image_extract_list changed_when True

AnsibleTask fail msg In order to use this role image_to_modify and modify_script must be provided when image_to_modify is not defined or modify_script is not defined and modify_image_upload_files

AnsibleTask command echo image_to_modify register image_to_modify_abs_path changed_when False

AnsibleTask command mktemp -d register mktemp_command changed_when True

AnsibleTask set_fact image_to_modify_qcow image_to_modify_abs_path.stdout image_to_modify_raw image_to_modify_abs_path.stdout|replace

AnsibleTask shell qemu-img convert -f qcow2 -O raw image_to_modify_qcow image_to_modify_raw rm -rf image_to_modify_qcow

AnsibleTask shell kpartx -avs image_to_modify_raw mount /dev/mapper/loop0p1 mount_tempdir || mount /dev/loop0 mount_tempdir become True

AnsibleTask shell set -o pipefail gunzip -c image_to_modify_abs_path.stdout cpio -i become True args chdir mount_tempdir when initramfs_image|bool

AnsibleTask shell cp item.src mount_tempdir item.dest with_items modify_image_upload_files

AnsibleTask shell chmod 775 mount_tempdir mount -o bind /dev mount_tempdir /dev/ mv mount_tempdir /etc/resolv.conf _ echo -e nameserver 8.8.8.8\nnameserver 8.8.4.4 mount_tempdir /etc/resolv.conf cp modify_script mount_tempdir /tmp/ modify_script|basename if initramfs_image|bool sed -i s/sudo //g mount_tempdir /tmp/ modify_script|basename endif set -o pipefail chroot mount_tempdir /bin/bash /tmp/ modify_script|basename 2 1 timestamper_cmd working_dir modify_script|basename date s .log mv -f mount_tempdir /etc/resolv.conf _

AnsibleTask shell cp mount_tempdir item modify_image_working_dir with_items modify_image_extract_list ignore_errors True

AnsibleTask shell set -o pipefail umount mount_tempdir /dev/ pushd mount_tempdir find -print cpio -o -H newc gzip image_to_modify_abs_path.stdout popd rm -rf mount_tempdir when initramfs_image|bool

AnsibleTask shell chroot mount_tempdir setfiles /etc/selinux/targeted/contexts/files/file_contexts umount mount_tempdir /dev/ umount mount_tempdir kpartx -dv image_to_modify_raw qemu-img convert -c -f raw -O qcow2 image_to_modify_raw image_to_modify_qcow rm -rf image_to_modify_raw losetup -d /dev/loop0 rm -rf mount_tempdir chown -R undercloud_user /home/ undercloud_user when not initramfs_image|bool

AnsibleTask shell echo Executing stack delete stack_name yes stack_log openstack stack delete stack_name yes stack_log export COUNTER=0 while openstack stack show stack_name stack_log do if COUNTER -lt 10 then sleep 30 if openstack stack show stack_name grep FAILED then echo Failed deleting OVB stack tee -a stack_log openstack stack show stack_name stack_log openstack stack failures list long stack_name stack_log || echo to list stack failures stack_log NOTE emilien openstack overcloud failures was introduced in Rocky openstack overcloud failures stack_log || echo to list deployment failures stack_log exit 0 fi COUNTER= COUNTER+1 fi done || echo No stack stack_name present stack_log environment OS_USERNAME os_username OS_PASSWORD os_password OS_TENANT_NAME os_tenant_name OS_AUTH_URL os_auth_url args executable /bin/bash register delete_stack changed_when True

AnsibleTask fail msg Deletion of stack stack_name failed log stack_log when Failed deleting OVB stack in delete_stack.stdout

AnsibleTask fail msg Please source credential rc file from your tenant on cloud when not os_username or not os_password or not os_tenant_name tags delete

AnsibleTask shell command -v openstack 2 /dev/null register openstack_client_installed tags delete changed_when False

AnsibleTask fail msg Please install openstack client as it is required for running this role when openstack_client_installed.rc 0 tags delete

AnsibleTask file dest local_working_dir state directory tags delete

AnsibleTask shell set -o pipefail openstack keypair show key_name echo key_name already exists || openstack keypair create public-key key_location key_name 2 1 tee -a stack_log environment OS_USERNAME os_username OS_PASSWORD os_password OS_TENANT_NAME os_tenant_name OS_AUTH_URL os_auth_url args executable /bin/bash changed_when True

AnsibleTask template src stack.yaml dest local_working_dir /multinode_stack.yaml

AnsibleTask template src subnode.yaml dest local_working_dir /subnode.yaml

AnsibleTask template src params.yaml.j2 dest local_working_dir /params_multinode.yaml

AnsibleTask shell echo Executing stack create stack_name template local_working_dir /multinode_stack.yaml -e local_working_dir /params_multinode.yaml stack_log tee -a stack_log openstack stack create stack_name template local_working_dir /multinode_stack.yaml -e local_working_dir /params_multinode.yaml stack_log || exit 1 export COUNTER=0 while openstack stack show stack_name grep CREATE_COMPLETE do if COUNTER -lt 30 then sleep 10 if openstack stack show stack_name grep FAILED then echo Failed to create multinode stack stack_name tee -a stack_log openstack stack show stack_name stack_log 2 1 openstack stack failures list long stack_name stack_log 2 1 || echo to list stack failures stack_log exit 0 fi COUNTER= COUNTER+1 fi done openstack stack show stack_name stack_log environment OS_USERNAME os_username OS_PASSWORD os_password OS_TENANT_NAME os_tenant_name OS_AUTH_URL os_auth_url args executable /bin/bash register create_stack changed_when True

AnsibleTask fail msg Failed to create multinode stack stack_name check log stack_log when Failed to create multinode stack in create_stack.stdout

AnsibleTask debug msg Log from stacks management is in stack_log tags delete

AnsibleTask command openstack stack output show stack_name subnode_ip_pairs -c output_value -f value register subnode_ips changed_when True

AnsibleTask command ssh -o BatchMode=yes -o StrictHostKeyChecking=no default_image_user hostvars item .ansible_host -i private_key_location register result until result is success retries 100 delay 5 with_items groups changed_when False

AnsibleTask template src multinode_hosts.j2 dest local_working_dir /multinode_hosts

AnsibleTask file path /opt/stack owner ansible_user group ansible_user state directory become True

AnsibleTask file src /opt/stack dest /opt/stack/new owner ansible_user group ansible_user state link become True

AnsibleTask shell git config global user.email user example.com git config global user.name CI user changed_when True

AnsibleTask copy dest /opt/stack/tripleo-quickstart/quickstart-extras-requirements.txt content git+file ///opt/stack/tripleo-quickstart-extras/ egg=tripleo-quickstart-extras

AnsibleTask file path /opt/cache/files owner ansible_user group ansible_user state directory become True

AnsibleTask file path /etc/nodepool state directory owner ansible_user group ansible_user mode,493

AnsibleTask copy content NODEPOOL_PROVIDER= if rdo_cloud_provider|bool rdo-cloud-tripleo else fake-cloud endif NODEPOOL_CLOUD=fake-cloud NODEPOOL_REGION=FAKE NODEPOOL_AZ= dest /etc/nodepool/provider

AnsibleTask shell ssh-keygen -N -f /etc/nodepool/id_rsa chmod 600 /etc/nodepool/id_rsa args creates /etc/nodepool/id_rsa

AnsibleTask file path /etc/nodepool/id_rsa item owner ansible_user group ansible_user with_items .pub

AnsibleTask shell dd if=/dev/zero of=/root/swapfile bs=1024 count= subnode_swap_size chmod 600 /root/swapfile mkswap /root/swapfile swapon /root/swapfile echo /root/swapfile swap swap defaults 0 0 /etc/fstab become True changed_when True

AnsibleTask file path /etc/ci state directory owner ansible_user become True

AnsibleTask template dest /etc/ci/mirror_info.sh src mirror_info.sh.j2

AnsibleTask command rpm -q qf arch -f /etc/redhat-release register rpm_arch changed_when False

AnsibleTask set_fact yum_contentdir_data altarch when rpm_arch.stdout in

AnsibleTask set_fact yum_contentdir_data centos when rpm_arch.stdout not in

AnsibleTask copy dest /etc/yum/vars/contentdir content yum_contentdir_data become True

AnsibleTask command cat /etc/nodepool/id_rsa.pub register primary_key when inventory_hostname subnode-0 changed_when False

AnsibleTask shell for key in hostvars item .subnode_public_ip hostvars item .subnode_private_ip do if grep -q key /etc/ssh/ssh_known_hosts then ssh-keyscan key /etc/ssh/ssh_known_hosts fi done with_inventory_hostnames subnodes become True changed_when True

AnsibleTask service name unbound state started enabled True become True

AnsibleTask service name iptables state started enabled True become True

AnsibleTask shell iptables-save /etc/sysconfig/iptables become True changed_when True

AnsibleTask shell sleep 2 shutdown -r now async 1 poll 0 ignore_errors True become True

AnsibleTask set_fact download_url amphora_url when amphora_url is defined and amphora_url length 0

AnsibleTask set_fact download_url https //images.rdoproject.org/octavia/ release /amphora-x64-haproxy-centos.qcow2 when download_url is not defined

AnsibleTask file path octavia_amphora_path dirname state directory mode,493 become True when not amphora_path_stat_result.stat.exists|bool

AnsibleTask template src cleanup_stacks_keypairs_script dest local_working_dir /cleanup-stacks-keypairs.sh mode,493

AnsibleTask shell set -o pipefail local_working_dir /cleanup-stacks-keypairs.sh 2 1 timestamper_cmd cleanup_stacks_keypairs_log args executable /bin/bash changed_when True

AnsibleTask debug msg Network isolation type is deprecated in R release please use when network_isolation_type

AnsibleTask set_fact latest_undercloud_image latest_guest_image osp_release default release

AnsibleTask copy src existing_key_location item dest local_working_dir /id_rsa_undercloud item mode,384 with_items .pub

AnsibleTask template src env.yaml.j2 dest local_working_dir /env- idnum .yaml mode,493

AnsibleTask shell export OS_USERNAME= os_username export OS_PASSWORD= os_password export OS_TENANT_NAME= os_tenant_name export OS_AUTH_URL= os_auth_url nova keypair-add pub-key existing_key_location .pub key- idnum ignore_errors True no_log True changed_when True

AnsibleTask template src clouds.yaml.j2 dest local_working_dir /clouds.yaml mode,493

AnsibleTask shell export OS_CLIENT_CONFIG_FILE= local_working_dir /clouds.yaml export OS_CLOUD= cloud_name ovb_dir /bin/deploy.py env local_working_dir /env- idnum .yaml name stack_name quintupleo args chdir ovb_dir changed_when True

AnsibleTask shell export OS_USERNAME= os_username export OS_PASSWORD= os_password export OS_TENANT_NAME= os_tenant_name export OS_AUTH_URL= os_auth_url export STACK_LOG= local_working_dir /ovb_create_stack.log export COUNTER=0 while openstack stack show stack_name grep CREATE_COMPLETE do if COUNTER -lt 10 then sleep 30 if openstack stack show stack_name grep FAILED then echo Failed OVB stack STACK_LOG openstack stack show stack_name STACK_LOG 2 1 openstack stack failures list long stack_name STACK_LOG 2 1 || echo to list stack failures STACK_LOG exit 0 fi COUNTER= COUNTER+1 fi done openstack stack show stack_name grep status register stack_status no_log True changed_when False

AnsibleTask command openstack stack show stack_name register failed_stack changed_when False

AnsibleTask fail msg Stack stack_name did not deploy successfully See the stack status message above

AnsibleTask shell export OS_USERNAME= os_username export OS_PASSWORD= os_password export OS_TENANT_NAME= os_tenant_name export OS_AUTH_URL= os_auth_url openstack stack show stack_name -f json -c outputs register stack_outputs no_log True changed_when False

AnsibleTask set_fact undercloud_ip stack_outputs.stdout|from_json .outputs 0 .output_value cacheable True

AnsibleTask command ssh -o BatchMode=yes -o StrictHostKeyChecking=no root undercloud_ip -i undercloud_key register result until result is success retries 300 delay 5 changed_when False

AnsibleTask shell chdir= local_working_dir export OS_CLIENT_CONFIG_FILE= local_working_dir /clouds.yaml export OS_CLOUD= cloud_name ovb_dir /bin/build-nodes-json env local_working_dir /env- idnum .yaml driver baremetal_driver register nodes_json changed_when True

AnsibleTask file path local_working_dir /clouds.yaml state absent

AnsibleTask template src ovb_hosts.j2 dest local_working_dir /ovb_hosts when ovb_dump_hosts|default |bool

AnsibleTask shell export OS_USERNAME= os_username export OS_PASSWORD= os_password export OS_TENANT_NAME= os_tenant_name export OS_AUTH_URL= os_auth_url nova keypair-delete key- idnum ignore_errors True no_log True changed_when True

AnsibleTask template src delete_script dest working_dir /overcloud-delete.sh mode,493 tags overcloud-scripts

AnsibleTask shell set -o pipefail working_dir /overcloud-delete.sh 2 1 timestamper_cmd delete_log tags overcloud-delete

AnsibleTask shell source working_dir /stackrc openstack stack show cat working_dir /overcloud_id -f yaml delay delete_check_delay retries delete_check_retries until heat_stack_show.stdout.find -1 register heat_stack_show tags overcloud-delete

AnsibleTask copy src item dest working_dir with_items extra_tht_configs|default

AnsibleTask set_fact extra_tht_config_args extra_tht_config_args|default if extra_tht_configs|default |length 0 -e extra_tht_configs default map map working_dir /\1 join -e endif cacheable True

AnsibleTask template src deploy_script dest working_dir /overcloud-deploy.sh mode,493

AnsibleTask template src post_deploy_script dest working_dir /overcloud-deploy-post.sh mode,493

AnsibleTask when enable_pacemaker|bool and number_of_controllers|int 3 template src neutronl3ha.yaml.j2 dest working_dir /neutronl3ha.yaml

AnsibleTask when deploy_steps_ansible_workflow|bool and deploy_multinode|bool template src config-download.yaml.j2 dest working_dir /config-download.yaml

AnsibleTask when composable_roles|bool and generate_overcloud_roles is not defined template src overcloud_roles.yaml.j2 dest working_dir /overcloud_roles.yaml

AnsibleTask when composable_services|bool template src overcloud_services.yaml.j2 dest working_dir /overcloud_services.yaml

AnsibleTask template src overcloud-topology-config.yaml.j2 dest working_dir /overcloud-topology-config.yaml when topology_map is defined

AnsibleTask template src overcloud_baremetal_deploy.yaml.j2 dest working_dir /overcloud_baremetal_deploy.yaml when baremetal_provision|bool and topology_map is defined

AnsibleTask when release not in template src cloud-names.yaml.j2 dest working_dir /cloud-names.yaml

AnsibleTask when groups is defined groups 0 is defined overcloud_nodes is defined overcloud_nodes 0 is defined overcloud_nodes 0 .hostnamemap_override is defined template src hostnamemap.yaml.j2 dest working_dir /hostnamemap.yaml

AnsibleTask when use_resource_registry_nic_configs|bool template src resource-registry-nic-configs.yaml.j2 dest working_dir /resource-registry-nic-configs.yaml

AnsibleTask when overcloud_neutron_global_physnet_mtu is defined template src overcloud_network_params.yaml.j2 dest working_dir /overcloud_network_params.yaml

AnsibleTask when overcloud_cinder_lvm_loop_device_size is defined template src overcloud_storage_params.yaml.j2 dest working_dir /overcloud_storage_params.yaml

AnsibleTask when override_ansiblecfg|bool template src ansible.cfg.j2 dest working_dir /custom_ansible.cfg

AnsibleTask template src overcloud-selinux-config.yaml.j2 dest working_dir /overcloud-selinux-config.yaml

AnsibleTask shell set -o pipefail working_dir /overcloud-deploy-cell.sh 2 1 timestamper_cmd deploy_cell_log register deploy_cell_script_result ignore_errors True when step_deploy_cell|bool

AnsibleTask set_fact deploy_args_used deploy_args replace cacheable True

AnsibleTask set_fact cell_deploy_args_used cell_deploy_args replace cacheable True

AnsibleTask shell set -o pipefail working_dir /overcloud-deploy.sh 2 1 timestamper_cmd deploy_log register deploy_script_result ignore_errors True when step_deploy_overcloud|bool

AnsibleTask template src deployed_server_prepare_script dest working_dir /deployed_server_prepare.sh mode,493

AnsibleTask shell set -o pipefail working_dir /deployed_server_prepare.sh 2 1 timestamper_cmd deployed_server_prepare_log async 10800 poll 0 environment OPT_WORKDIR lookup http_proxy lookup no_proxy lookup TRIPLEO_ROOT lookup SUBNODES_SSH_KEY /etc/nodepool/id_rsa changed_when True

AnsibleTask shell echo overcloud_deploy_result failed local_working_dir /overcloud_deployment_result.json delegate_to localhost when deploy_script_result.rc 0

AnsibleTask shell echo overcloud_deploy_result passed local_working_dir /overcloud_deployment_result.json delegate_to localhost when deploy_script_result.rc 0

AnsibleTask shell set -o pipefail working_dir /overcloud-deploy-post.sh 2 1 timestamper_cmd post_deploy_log changed_when True

AnsibleTask set_fact number_of_cell_controllers if cell_topology_map.CellController is defined cell_topology_map.CellController.scale else 1 endif when cell_topology_map is defined

AnsibleTask set_fact cell_controller_flavor if cell_topology_map.CellController is defined and cell_topology_map.CellController.flavor is defined cell_topology_map.CellController.flavor else baremetal endif when cell_topology_map is defined

AnsibleTask set_fact number_of_cell_computes if cell_topology_map.Compute is defined cell_topology_map.Compute.scale else 0 endif when cell_topology_map is defined

AnsibleTask set_fact cell_deploy_args -r working_dir cell_name /cell_roles_data.yaml -e working_dir cell_name /cell-input.yaml -e working_dir cell_name /cell.yaml stack cell_name

AnsibleTask file path working_dir cell_name state directory mode,0755

AnsibleTask when additional_cell|bool template src cell.yaml.j2 dest working_dir cell_name /cell.yaml

AnsibleTask when additional_cell|bool template src deploy_cell_script dest working_dir /overcloud-deploy-cell.sh mode,493

AnsibleTask debug msg Network isolation types are deprecated in R release please use when network_isolation_type in single_nic_vlans bond_with_vlans multi-nic

AnsibleTask set_fact network_isolation_args -e overcloud_templates_path /environments/network-isolation.yaml -e overcloud_templates_path /environments/net-single-nic-with-vlans.yaml -e working_dir /network-environment.yaml when network_isolation_type in single_nic_vlans single-nic-vlans

AnsibleTask set_fact network_isolation_args -e overcloud_templates_path /environments/network-isolation.yaml -e overcloud_templates_path /environments/net-bond-with-vlans.yaml -e working_dir /network-environment.yaml when network_isolation_type in bond_with_vlans bond-with-vlans

AnsibleTask set_fact network_isolation_args -e overcloud_templates_path /environments/network-isolation.yaml -e overcloud_templates_path /environments/net-multiple-nics.yaml -e working_dir /network-environment.yaml when network_isolation_type in multi-nic multiple-nics not overcloud_ipv6|bool

AnsibleTask set_fact network_isolation_args -e overcloud_templates_path /environments/network-isolation-v6.yaml -e overcloud_templates_path /environments/net-multiple-nics-v6.yaml -e working_dir /network-environment.yaml when network_isolation_type in multi-nic multiple-nics overcloud_ipv6|bool

AnsibleTask set_fact network_isolation_args -e overcloud_templates_path /environments/network-isolation.yaml -e working_dir /network-environment.yaml when network_isolation_type public-bond not overcloud_ipv6|bool

AnsibleTask set_fact network_args network_isolation_args when network_isolation|bool

AnsibleTask set_fact ntp_args ntp-server ntp_server when ntp_server|default

AnsibleTask set_fact pacemaker_args -e overcloud_templates_path /environments/puppet-pacemaker.yaml when enable_pacemaker|bool not containerized_overcloud|bool

AnsibleTask set_fact resource_registry_nic_configs_args -e working_dir /resource-registry-nic-configs.yaml when use_resource_registry_nic_configs|bool

AnsibleTask set_fact number_of_controllers deploy_args| regex_replace control-scale 0-9 regex_replace 0-9 1 when topology_map is not defined

AnsibleTask set_fact number_of_controllers if topology_map.Controller is defined topology_map.Controller.scale else 1 endif when topology_map is defined

AnsibleTask set_fact backup_args -e overcloud_templates_path /environments/cinder-backup.yaml when enable_cinder_backup|bool

AnsibleTask set_fact cloud_name_args -e working_dir /cloud-names.yaml when release not in

AnsibleTask set_fact hostnamemap_args -e working_dir /hostnamemap.yaml when groups is defined groups 0 is defined overcloud_nodes is defined overcloud_nodes 0 is defined overcloud_nodes 0 .hostnamemap_override is defined

AnsibleTask set_fact ssl_overcloud_args -e working_dir /enable-tls.yaml -e overcloud_templates_path /environments/ssl/tls-endpoints-public-ip.yaml when ssl_overcloud|bool release not in

AnsibleTask set_fact ssl_overcloud_args -e working_dir /enable-tls.yaml when ssl_overcloud|bool release in

AnsibleTask set_fact ssl_ca_args -e working_dir /inject-trust-anchor.yaml when ssl_overcloud|bool or undercloud_generate_service_certificate|bool

AnsibleTask set_fact ssl_args ssl_overcloud_args|default ssl_ca_args when ssl_overcloud|bool or undercloud_generate_service_certificate|bool

AnsibleTask set_fact tls_everywhere_args -e overcloud_templates_path /environments/services/haproxy-public-tls-certmonger.yaml -e overcloud_templates_path /environments/ssl/enable-internal-tls.yaml -e overcloud_templates_path /environments/ssl/tls-everywhere-endpoints-dns.yaml when enable_tls_everywhere|bool release not in

AnsibleTask set_fact validation_args validation-errors-fatal validation-warnings-fatal when release in

AnsibleTask set_fact pacemaker_args pacemaker_args -e working_dir /neutronl3ha.yaml when enable_pacemaker|bool number_of_controllers|int 3

AnsibleTask set_fact workers_args -e overcloud_templates_path /environments/low-memory-usage.yaml when release not in set_overcloud_workers|bool

AnsibleTask set_fact container_args if release in -e overcloud_templates_path /environments/docker.yaml endif if enable_pacemaker|bool or osp_release is defined -e overcloud_templates_path /environments/docker-ha.yaml endif if release in -e working_dir /containers-default-parameters.yaml else -e working_dir /containers-prepare-parameter.yaml endif if release not in -e overcloud_templates_path /environments/ overcloud_container_cli .yaml endif when containerized_overcloud|bool

AnsibleTask set_fact composable_args roles-file working_dir /overcloud_roles.yaml when composable_roles|bool

AnsibleTask command openstack overcloud roles generate roles-path overcloud_templates_path /roles -o working_dir /overcloud_roles.yaml generate_overcloud_roles when composable_roles|bool and generate_overcloud_roles is defined

AnsibleTask set_fact composable_args composable_args -e working_dir /overcloud_services.yaml when composable_services|bool

AnsibleTask set_fact topology_args -e working_dir /overcloud-topology-config.yaml when topology_map is defined

AnsibleTask set_fact multinode_args -e overcloud_templates_path /environments/deployed-server-environment.yaml if release in and overcloud_release|default in -e overcloud_templates_path /environments/deployed-server-bootstrap-environment-centos.yaml endif overcloud-ssh-user undercloud_user if not undercloud_enable_nova|bool deployed-server endif when deploy_multinode|bool

AnsibleTask set_fact hypervisor_wait False multinode_args -e overcloud_templates_path /environments/deployed-server-environment.yaml if release in and overcloud_release|default in -e overcloud_templates_path /environments/deployed-server-bootstrap-environment-centos.yaml endif -e working_dir /overcloud-baremetal-deployed.yaml deployed-server when baremetal_provision|bool

AnsibleTask set_fact ovn_args -e overcloud_templates_path /environments/services/neutron-ovn-ha.yaml when deploy_ha_ovn|bool

AnsibleTask set_fact scenario_args -e overcloud_templates_path /ci/environments/ composable_scenario when not composable_scenario|trim

AnsibleTask set_fact swap_args -e overcloud_templates_path /environments/enable-swap.yaml when enable_swap|bool and swap_type

AnsibleTask set_fact swap_args -e overcloud_templates_path /environments/enable-swap-partition.yaml when enable_swap|bool and swap_type

AnsibleTask set_fact network_args network_args -e working_dir /overcloud_network_params.yaml when overcloud_neutron_global_physnet_mtu is defined

AnsibleTask set_fact storage_args storage_args -e working_dir /overcloud_storage_params.yaml when overcloud_cinder_lvm_loop_device_size is defined

AnsibleTask set_fact deploy_timeout ci_job_end_time|int lookup s |int /60 |int -15 when ci_job_end_time is defined ovb in lookup env TOCI_JOBTYPE

AnsibleTask set_fact deploy_timeout ci_job_end_time|int lookup s |int /60 |int -5 when ci_job_end_time is defined ovb not in lookup env TOCI_JOBTYPE

AnsibleTask set_fact selinux_args -e working_dir /overcloud-selinux-config.yaml

AnsibleTask debug msg Network isolation type is deprecated in R release please use when network_isolation_type is defined and network_isolation_type bond_with_vlans

AnsibleTask set_fact network_environment_args network_environment_args combine public_virtual_fixed_ips when ssl_overcloud|bool and undercloud_type baremetal tags overcloud-scripts

AnsibleTask template src network_environment_file dest working_dir /network-environment.yaml mode,420 when network_isolation|bool and undercloud_type baremetal or deployed_server|bool tags overcloud-scripts

AnsibleTask copy src baremetal_instackenv dest working_dir /instackenv.json

AnsibleTask copy src baremetal_network_environment dest working_dir /network-environment.yaml

AnsibleTask template src bond_with_vlans_copy_nic_configs_script dest working_dir /bond-with-vlans-copy-nic-configs.sh mode,493

AnsibleTask shell set -o pipefail working_dir /bond-with-vlans-copy-nic-configs.sh 2 1 timestamper_cmd bond_with_vlans_nic_configs_log

AnsibleTask copy src baremetal_nic_configs dest working_dir when baremetal_nic_configs is defined

AnsibleTask set_fact prepare_service_env_args -e overcloud_templates_path /environments/docker.yaml -e overcloud_templates_path /ci/environments/ composable_scenario when not composable_scenario|trim

AnsibleTask template src overcloud_prep_containers_template dest working_dir overcloud_prep_containers_script mode,493

AnsibleTask shell set -o pipefail working_dir overcloud_prep_containers_script 2 1 timestamper_cmd overcloud_prep_containers_log when containerized_overcloud|bool

AnsibleTask template src overcloud_prep_flavors_script dest working_dir /overcloud-prep-flavors.sh mode,493

AnsibleTask shell set -o pipefail working_dir /overcloud-prep-flavors.sh 2 1 timestamper_cmd overcloud_prep_flavors_log changed_when True

AnsibleTask template src overcloud_prep_images_script dest working_dir /overcloud-prep-images.sh mode,493

AnsibleTask shell set -o pipefail working_dir /overcloud-prep-images.sh 2 1 timestamper_cmd overcloud_prep_images_log changed_when True

AnsibleTask template src overcloud_prep_network_script dest working_dir /overcloud-prep-network.sh mode,493

AnsibleTask shell set -o pipefail working_dir /overcloud-prep-network.sh 2 1 timestamper_cmd overcloud_prep_network_log changed_when True

AnsibleTask shell source working_dir /stackrc heat stack-list register heat_stack_list_result changed_when False

AnsibleTask fail heat stack is not in a complete state when heat_stack_list_result.stdout.find -1

AnsibleTask shell set -eo pipefail source working_dir /stackrc nova list grep -m 1 node_to_scale sed -e awk print 1 register node_id_to_delete changed_when False

AnsibleTask shell set -eo pipefail source working_dir /stackrc nova list grep -m 1 node_to_scale sed -e awk print 2 register node_name_to_delete changed_when False

AnsibleTask template src delete-node.j2 dest working_dir /delete-node.sh mode,493

AnsibleTask shell cat working_dir /delete-node.sh set -o pipefail working_dir /delete-node.sh 2 1 timestamper_cmd delete_node_scale_console.log changed_when True

AnsibleTask shell source working_dir /stackrc heat stack-list register heat_stack_list_result until heat_stack_list_result.stdout.find COMPLETE -1 retries 20 delay 90 changed_when False

AnsibleTask shell set -eo pipefail source working_dir /stackrc nova list grep node_to_scale cut -f2- -d wc -l register post_scale_node_count changed_when False

AnsibleTask shell sed -i node_name_to_delete.stdout /d local_working_dir /hosts delegate_to localhost changed_when True

AnsibleTask fail msg Overcloud nova list does not show expected number of node_to_scale services when post_scale_node_count.stdout|int initial_scale_value int

AnsibleTask set_fact pacemaker_args -e overcloud_templates_path /environments/puppet-pacemaker.yaml when enable_pacemaker|bool

AnsibleTask set_fact number_of_controllers scale_args| regex_replace control-scale 0-9 regex_replace 0-9 1

AnsibleTask set_fact pacemaker_args pacemaker_args -e HOME/neutronl3ha.yaml when enable_pacemaker|bool and number_of_controllers|int 3

AnsibleTask shell set -eo pipefail source working_dir /stackrc nova list grep node_to_scale cut -f2- -d wc -l register initial_node_count changed_when False

AnsibleTask shell source working_dir /stackrc nova list register pre_scale_nova_list changed_when False

AnsibleTask debug msg= pre_scale_nova_list.stdout_lines when pre_scale_nova_list is defined

AnsibleTask template src scale-deployment.j2 dest working_dir /scale-deployment.sh mode,493

AnsibleTask when enable_pacemaker|bool and number_of_controllers|int 3 template src neutronl3ha.yaml.j2 dest working_dir /neutronl3ha.yaml mode,493

AnsibleTask shell source working_dir /stackrc set -o pipefail working_dir /scale-deployment.sh 2 1 timestamper_cmd overcloud_deployment_scale_console.log changed_when True

AnsibleTask shell source working_dir /stackrc nova list register post_scale_nova_list changed_when False

AnsibleTask debug msg post_scale_nova_list.stdout_lines when post_scale_nova_list is defined

AnsibleTask fail msg Overcloud nova list does not show expected number of node_to_scale services when post_scale_node_count.stdout|int final_scale_value|int

AnsibleTask template src overcloud_ssl_cert_script dest working_dir /overcloud-create-ssl-cert.sh mode,493

AnsibleTask shell set -o pipefail working_dir /overcloud-create-ssl-cert.sh 2 1 timestamper_cmd overcloud_ssl_cert_log

AnsibleTask set_fact cpu_vendor item when ansible_processor 1 |lower is search item with_items intel amd

AnsibleTask shell egrep /proc/cpuinfo register cpuflags failed_when False no_log True when cpu_vendor is defined

AnsibleTask set_fact virt_type qemu when cpu_vendor is not defined or cpuflags.stdout

AnsibleTask set_fact virt_type kvm when cpu_vendor is defined and cpuflags.stdout

AnsibleTask set_fact libvirt_oc_names set names= for n in overcloud_nodes if names.append hostvars n endif endfor names join

AnsibleTask async 300 poll 0 shell set -eo pipefail while true do virsh list grep -E libvirt_oc_names /dev/null || break done register vms_shutdown changed_when False

AnsibleTask shell qemu-img commit libvirt_volume_path item.name .qcow2 args removes libvirt_volume_path item.name .qcow2.bak with_items overcloud_nodes when snapshot_create|bool changed_when True

AnsibleTask shell mv libvirt_volume_path item.name .qcow2 libvirt_volume_path item.name .qcow2.bak qemu-img create -f qcow2 -b libvirt_volume_path item.name .qcow2.bak libvirt_volume_path item.name .qcow2 args creates libvirt_volume_path item.name .qcow2.bak with_items overcloud_nodes when snapshot_create|bool changed_when True

AnsibleTask shell rm libvirt_volume_path item.name .qcow2 qemu-img create -f qcow2 -b libvirt_volume_path item.name .qcow2.bak libvirt_volume_path item.name .qcow2 with_items overcloud_nodes when snapshot_restore|bool changed_when True

AnsibleTask set_fact tempest_cidr undercloud_network_cidr when use_os_tempest is defined

AnsibleTask template src standalone_config dest working_dir /standalone_parameters.yaml mode,493

AnsibleTask template src standalone_container_prep_script dest working_dir /standalone-container-prep.sh mode,0755

AnsibleTask shell set -o pipefail working_dir /standalone-container-prep.sh 2 1 timestamper_cmd working_dir standalone_container_prep_log changed_when True

AnsibleTask template src standalone_deploy_script dest working_dir /standalone.sh mode,493

AnsibleTask shell set -o pipefail working_dir /standalone.sh 2 1 timestamper_cmd working_dir standalone_deploy_log changed_when True

AnsibleTask shell find ls -rtd working_dir /undercloud-ansible-* tail -1 -name register playbooks

AnsibleTask 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 with_items playbooks.stdout_lines failed_when lint_result.rc 1

AnsibleTask template src standalone_config dest working_dir /standalone_parameters_upgrade.yaml mode,493

AnsibleTask template src standalone_container_prep_script dest working_dir /standalone-container-prep-upgrade.sh mode,0755

AnsibleTask shell set -o pipefail working_dir /standalone-container-prep-upgrade.sh 2 1 timestamper_cmd working_dir standalone_container_prep_log changed_when True

AnsibleTask template src standalone_upgrade_script dest working_dir /standalone-upgrade.sh mode,493

AnsibleTask shell set -o pipefail working_dir /standalone-upgrade.sh 2 1 timestamper_cmd working_dir standalone_upgrade_log changed_when True

AnsibleTask set_fact script_name custom_tht_log|replace _ |replace

AnsibleTask template src custom_tht_script dest working_dir script_name mode,493

AnsibleTask shell set -o pipefail working_dir script_name 2 1 timestamper_cmd custom_tht_log become True changed_when True

AnsibleTask template src run_tripleo_validations_script dest val_working_dir /run-tripleo-validations.sh mode,493 when run_tripleo_validations|bool

AnsibleTask template src run_preintro_val_script dest val_working_dir /run-preintro-validations-negative-tests.sh mode,493

AnsibleTask template src run_predep_val_script dest val_working_dir /run-predep-validations-negative-tests.sh mode,493

AnsibleTask template src run_postdep_val_script dest val_working_dir /run-postdep-validations-negative-tests.sh mode,493

AnsibleTask shell awk 0 /nameserver\s+ 0-9 1,3 4 address print address 1 /etc/resolv.conf delegate_to virthost register virthost_nameservers_output when nameserver_from_virthost|bool

AnsibleTask set_fact virthost_nameservers virthost_nameservers_output.stdout_lines when nameserver_from_virthost|bool

AnsibleTask vars deprecation_warning_msg WARNING The variable undercloud_hieradata_override_file is deprecated for removal since Pike Reason Both the undercloud and overcloud can use hieradata overrides and we must distinguish between the two The variable will be removed in the R release Please revise your code to use the new variable and file name debug msg deprecation_warning_msg.split

AnsibleTask template src undercloud_hieradata_override_file dest ./hieradata-overrides-classic-undercloud.yaml mode,384

AnsibleTask template src undercloud_config_file dest ./undercloud.conf mode,384

AnsibleTask template src undercloud_install_script dest working_dir /undercloud-install.sh mode,493

AnsibleTask template src undercloud-parameter-defaults.yaml.j2 dest working_dir /undercloud-parameter-defaults.yaml mode,384

AnsibleTask set_fact undercloud_outputs tmp_undercloud_outputs b64decode undercloud_passwords tmp_undercloud_passwords b64decode

AnsibleTask shell set -o pipefail working_dir /undercloud-install.sh 2 1 timestamper_cmd undercloud_install_log when step_install_undercloud|bool

AnsibleTask command podman version ignore_errors True register podman_ver tags undercloud-install changed_when False

AnsibleTask set_fact podman_version if podman_ver is success podman_ver.stdout replace podman version else 0.0 endif tags undercloud-install

AnsibleTask when release in become True service name openstack-ironic-conductor enabled True state restarted tags undercloud-install

AnsibleTask fail msg= freeipa_admin_password is not passed and or blank when deploy_supplemental_node|bool and not hostvars .freeipa_admin_password|default not freeipa_admin_password|default

AnsibleTask fail msg= freeipa_server_hostname is not passed and or blank when freeipa_server_hostname is not defined or freeipa_server_hostname is defined and freeipa_server_hostname

AnsibleTask fail msg= overcloud_cloud_domain is not passed and or blank when overcloud_cloud_domain is not defined or overcloud_cloud_domain is defined and overcloud_cloud_domain

AnsibleTask fail msg= undercloud_undercloud_hostname is not passed and or blank when undercloud_undercloud_hostname is not defined or undercloud_undercloud_hostname is defined and undercloud_undercloud_hostname

AnsibleTask template src install_novajoin.sh.j2 dest working_dir /install_novajoin.sh mode,493

AnsibleTask shell set -o pipefail working_dir /install_novajoin.sh 2 1 timestamper_cmd working_dir /install_novajoin.sh.log changed_when True

AnsibleTask template src novajoin_prep.sh.j2 dest working_dir /novajoin_prep.sh mode,493

AnsibleTask shell set -o pipefail working_dir /novajoin_prep.sh 2 1 timestamper_cmd working_dir /novajoin_prep.sh.log changed_when True

AnsibleTask command cat freeipa_otp_key register ipa_otp_register changed_when False

AnsibleTask set_fact undercloud_ipa_otp ipa_otp_register.stdout when ipa_otp_register.rc 0

AnsibleTask command awk -F= 1 undercloud_admin_password print 2 working_dir /undercloud-passwords.conf register undercloud_admin_password changed_when False

AnsibleTask tags undercloud-post-install copy src /home/ undercloud_user /stackrc dest working_dir /stackrc owner undercloud_user remote_src True mode,416 become True when containerized_undercloud|bool

AnsibleTask shell source working_dir /stackrc openstack catalog show heat format value grep public awk -F print 5 register heat_public_url

AnsibleTask shell source working_dir /stackrc openstack catalog show swift format value grep public awk -F print 5 register swift_public_url

AnsibleTask template src minion_config_file dest ./minion.conf mode,384

AnsibleTask template src minion_install_script dest working_dir /minion-install.sh mode,493

AnsibleTask template src minion-parameter-defaults.yaml.j2 dest working_dir /minion-parameter-defaults.yaml mode,384

AnsibleTask template src containers-prepare-parameter.yaml.j2 dest working_dir /containers-prepare-parameter.yaml

AnsibleTask shell set -o pipefail working_dir /minion-install.sh 2 1 timestamper_cmd minion_install_log when step_install_minion|bool

AnsibleTask shell if -e /etc/ci/mirror_info.sh then source /etc/ci/mirror_info.sh fi atop_location= repoquery repoid=osepel repofrompath=osepel NODEPOOL_EPEL_MIRROR/7/x86_64/ location atop ansible_pkg_mgr install -y atop_location

AnsibleTask template src non_root_user_setup.sh.j2 dest /tmp/non_root_user_setup.sh mode,493

AnsibleTask command /tmp/non_root_user_setup.sh changed_when True

AnsibleTask delegate_to localhost command ssh-keygen -f undercloud_key -N -C -t rsa -b 4096 args creates undercloud_key

AnsibleTask copy src local_working_dir /nodes.json dest working_dir /instackenv.json

AnsibleTask template src ovb-undercloud-connectivity.sh.j2 dest working_dir /ovb-undercloud-connectivity.sh mode,493

AnsibleTask become True shell set -o pipefail working_dir /ovb-undercloud-connectivity.sh 2 1 timestamper_cmd ovb_undercloud_connectivity_log changed_when True

AnsibleTask template src install_packages.sh.j2 dest working_dir /install_packages.sh mode,493

AnsibleTask shell set -o pipefail working_dir /install_packages.sh 2 1 timestamper_cmd working_dir /install_packages.sh.log changed_when True

AnsibleTask template src toci_vxlan_networking_multinode.sh.j2 dest working_dir /toci_vxlan_networking_multinode.sh mode,493 when toci_vxlan_networking_multinode|bool

AnsibleTask shell set -o pipefail timeout preserve-status 60s working_dir /toci_vxlan_networking_multinode.sh 2 1 timestamper_cmd working_dir /toci_vxlan_networking_multinode.sh.log when toci_vxlan_networking_multinode|bool

AnsibleTask copy src toci_vxlan_networking.sh dest working_dir /toci_vxlan_networking.sh mode,493

AnsibleTask shell set -o pipefail working_dir /toci_vxlan_networking.sh 2 1 timestamper_cmd working_dir /toci_vxlan_networking.sh.log changed_when True

AnsibleTask template src vxlan_networking.sh.j2 dest working_dir /vxlan_networking.sh mode,493

AnsibleTask shell set -o pipefail working_dir /vxlan_networking.sh 2 1 timestamper_cmd working_dir /vxlan_networking.sh.log changed_when True

AnsibleTask shell set -o pipefail sudo ip link set dev undercloud_local_interface up 2 1 timestamper_cmd working_dir /vxlan_networking.sh.log delegate_to item with_items groups default changed_when True

AnsibleTask shell set -o pipefail sudo ip link set dev undercloud_local_interface mtu vxlan_mtu 2 1 timestamper_cmd working_dir /vxlan_networking.sh.log echo MTU= vxlan_mtu sudo tee -a /etc/sysconfig/network-scripts/ifcfg- undercloud_local_interface delegate_to item with_items groups default changed_when True

AnsibleTask shell ping -c 6 -W 3 vxlan_networking_addr_prefix .2 || sudo systemctl restart openvswitch ping -c 6 -W 3 vxlan_networking_addr_prefix .2 delegate_to item with_items groups default changed_when True

AnsibleTask copy content undercloud_outputs dest working_dir /tripleo-undercloud-outputs.yaml

AnsibleTask copy content undercloud_passwords dest working_dir /tripleo-undercloud-passwords.yaml

AnsibleTask template src validate-overcloud-ipmi-connection.sh.j2 dest working_dir /validate-overcloud-ipmi-connection.sh mode,493

AnsibleTask shell set -o pipefail working_dir /validate-overcloud-ipmi-connection.sh 2 1 timestamper_cmd tee working_dir /validate-overcloud-ipmi-connection.log

AnsibleTask template src validate_minion_simple_script dest local_working_dir /validate_minion_simple.sh mode,484

AnsibleTask shell set -o pipefail local_working_dir /validate_minion_simple.sh tee validate_minion_simple_log changed_when False

AnsibleTask become True copy dest /sys/kernel/debug/x86/ item content,0 ignore_errors True with_items pti_enabled retp_enabled ibrs_enabled

AnsibleTask become True shell echo /sys/kernel/debug/x86/ item cat /sys/kernel/debug/x86/ item register security_vars with_items pti_enabled retp_enabled ibrs_enabled ibpb_enabled ignore_errors True changed_when False

AnsibleTask template src sanity_scripts dest working_dir /validate-sanity-check.sh mode,493

AnsibleTask shell set -o pipefail working_dir /validate-sanity-check.sh 2 1 timestamper_cmd sanity_checks_log changed_when True

AnsibleTask shell systemctl list-units failed plain no-legend no-pager tripleo_* register systemd_state changed_when False

AnsibleTask copy src tenantvm_floatingip.yaml dest working_dir /tenantvm_floatingip.yaml when validate_template tenantvm_floatingip.yaml not template_check.stat.exists

AnsibleTask set_fact validate_template_path working_dir when validate_template tenantvm_floatingip.yaml not template_check.stat.exists

AnsibleTask template src validate_script dest working_dir /overcloud-validate.sh mode,484

AnsibleTask copy src wait_for dest working_dir /wait_for mode,493

AnsibleTask shell set -o pipefail working_dir /overcloud-validate.sh 2 1 timestamper_cmd validate_log changed_when True

AnsibleTask set_fact python_package_prefix python ansible_python.version.major cacheable True when ansible_python.version.major 2

AnsibleTask shell tail -10 tempest_log_file exit tempest_result.rc when tempest_result.rc 0 and tempest_exit_on_failure|bool

AnsibleTask set_fact tempest_workers ansible_processor_vcpus|int // 2 when tempest_workers is not defined

AnsibleTask set_fact rc_file working_dir if tempest_undercloud stackrc else overcloudrc endif

AnsibleTask set_fact rc_file_container tempest_data if tempest_undercloud stackrc else overcloudrc endif when tempest_format

AnsibleTask copy src /etc/novajoin/krb5.keytab dest working_dir /krb5.keytab owner undercloud_user group undercloud_user remote_src True become True when enable_tls_everywhere is defined enable_tls_everywhere|bool

AnsibleTask template src tempest-setup.j2 dest working_dir /tempest-setup.sh mode,484

AnsibleTask debug msg WARNING The variable test_regex is deprecated and will be removed by end of ROCKY release in the favor of test_white_regex when test_regex is defined

AnsibleTask template src skip_file_src dest working_dir skip_file mode,420 when skip_file_src

AnsibleTask template src tempest_whitelist_file_src dest working_dir tempest_whitelist_file mode,420 when tempest_whitelist|length 0

AnsibleTask shell source working_dir /bugcheck/.venv/bin/activate python bugcheck.py skip-file working_dir /bugcheck/tempest_skip_ release .yml to-file working_dir skip_file format txt args chdir working_dir /bugcheck ignore_errors True

AnsibleTask shell set -o pipefail working_dir /tempest-setup.sh 2 1 timestamper_cmd tempest_log_file register tempest_result ignore_errors True changed_when True

AnsibleTask set_fact tempest_dstat_opt dstat /var/log/extra/dstat-csv.log when dstat_result.stat.exists

AnsibleTask shell cp -r working_dir /tempest/.stackviz/share/stackviz-html working_dir /stackviz changed_when True

AnsibleTask shell set -o pipefail source working_dir /tempest/.stackviz/bin/activate stackviz-export tempest_dstat_opt default env -f working_dir /tempest/testrepository.subunit working_dir /stackviz/data register stackviz_result args chdir working_dir /tempest changed_when True

AnsibleTask file path /var/log/extra state directory mode,493 become True

AnsibleTask shell set -o pipefail mv working_dir /stackviz/ /var/log/extra become True when stackviz_result.rc 0

AnsibleTask set_fact tempestconf /usr/bin/discover-tempest-config

AnsibleTask file path /var/log/containers/tempest state directory become True

AnsibleTask file path /var/lib/tempestdata state directory become True

AnsibleTask file dest /var/lib/tempestdata owner undercloud_user group undercloud_user recurse True become True

AnsibleTask command cp -Rf reflink=auto /var/lib/tempestdata/tempest working_dir args warn False changed_when True

AnsibleTask set_fact testr_command testr_dir.stat.exists ternary python_cmd -m stestr.cli

AnsibleTask shell sudo chmod -R 777 /var/log/containers/tempest when tempest_format

AnsibleTask shell set -o pipefail if tempest_format source working_dir /tempest_git/.venv/bin/activate endif testr_command last subunit subunit-1to2 working_dir /tempest/testrepository.subunit args chdir working_dir /tempest

AnsibleTask shell set -o pipefail if tempest_format source working_dir /tempest_git/.venv/bin/activate endif subunit2html working_dir /tempest/testrepository.subunit working_dir /tempest/tempest.html

AnsibleTask shell set -o pipefail if tempest_format source working_dir /tempest_git/.venv/bin/activate endif subunit2junitxml working_dir /tempest/testrepository.subunit output-to working_dir /tempest/tempest.xml 2 1 tempest_log_file

AnsibleTask shell if lookup LOG_PATH= lookup endif ./tempestmail.py -c tempestmail_config job lookup |default job true file working_dir tempest_log_file log-url tempestmail_log_server skip-file working_dir /tempestmail/tempest_skip_ release .yml || ERR= echo -e \0127ARNING Send tempest results by mail failed with code ERR exit ERR args chdir working_dir /tempestmail ignore_errors True

AnsibleTask set_fact tempest_init if release /usr/share/openstack-tempest-*/tools/configure-tempest-directory else tempest init tempest_dir endif

AnsibleTask set_fact tempestconf if release tempest_dir /tools/config_tempest.py else /usr/bin/discover-tempest-config endif

AnsibleTask command python_cmd -m virtualenv version register virtualenv_exist failed_when False changed_when False

AnsibleTask set_fact tempest_init working_dir /tempest_git/tools/ if release configure-tempest-directory else with_venv.sh tempest init endif

AnsibleTask set_fact tempestconf if release working_dir /tools/config_tempest.py else working_dir /tempest_git/tools/with_venv.sh discover-tempest-config endif

AnsibleTask shell set -eo pipefail number_of_files= ls tobiko_log_dir grep -E tobiko_log_file_base 0-9 +.log -c echo number_of_files 1 register current_tobiko_log_file_number changed_when True

AnsibleTask set_fact tobiko_log_file tobiko_log_file_base current_tobiko_log_file_number.stdout .log

AnsibleTask file path tobiko_config_dir state directory mode,0755

AnsibleTask template src tobiko.conf.j2 dest tobiko_config_dir tobiko_config_file mode,493

AnsibleTask template src configure_public_network.sh.j2 dest tobiko_config_dir /configure_public_network.sh mode,493

AnsibleTask shell bash tobiko_config_dir /configure_public_network.sh changed_when True

AnsibleTask shell set -o pipefail tools/ci/tox -e tobiko_envlist tobiko_extra_args 2 1 timestamper_cmd tobiko_log_dir tobiko_log_file args chdir working_dir /tobiko executable /bin/bash register tobiko_tests_run ignore_errors True environment OS_CLOUD tempest_cloud_name changed_when True

AnsibleTask shell set -o pipefail testr_command last subunit tobiko_log_dir /testrepository.subunit args chdir working_dir /tobiko changed_when True

AnsibleTask shell set -o pipefail subunit2html tobiko_log_dir /testrepository.subunit tobiko_log_dir tobiko_log_file .html changed_when True

AnsibleTask template src ui_validate_simple_script dest local_working_dir /ui_validate_simple.sh mode,484

AnsibleTask shell set -o pipefail local_working_dir /ui_validate_simple.sh tee ui_validate_simple_log changed_when True

AnsibleTask shell set -o pipefail working_dir /undercloud-install.sh 2 1 timestamper_cmd undercloud_reinstall_log when undercloud_check_idempotency|bool tags undercloud-validate

AnsibleTask template src undercloud_sanity_check_script dest working_dir /undercloud-sanity-check.sh mode,493 tags undercloud-scripts

AnsibleTask shell set -o pipefail working_dir /undercloud-sanity-check.sh 2 1 timestamper_cmd undercloud_sanity_check_log when undercloud_check_sanity|bool tags undercloud-validate

AnsibleTask shell find /var/cache/tripleo-quickstart/images/* -mtime +3 -exec rm -rf

AnsibleTask shell rm -rf /var/log/artib rm -rf /home/oooq-images rm -rf /var/lib/oooq-images rm -rf /root/.cache/image-create

AnsibleTask become True command rm -rf working_dir /.config/libvirt

AnsibleTask shell set -euo pipefail cat /etc/passwd grep stack awk -F print 3 register user_id

AnsibleTask shell rm -Rf /run/user/ item /libvirt with_items user_id.sdtout

AnsibleTask shell yum-complete-transaction yum clean all rm -Rfv /var/cache/yum

AnsibleTask command rm -Rf item with_items /home/ non_root_user /var/spool/mail/ non_root_user changed_when True

AnsibleTask file name= item state=absent with_items /root/KEYS /root/fedora-prep /root/.ssh/known_hosts /root/.ssh/id_rsa_virt_power

AnsibleTask shell kill -9 ps aux grep NetworkManager awk print 2 ignore_errors True

AnsibleTask file name= item state=absent with_items /usr/share/instack-undercloud /usr/bin/instack-setup-host

AnsibleTask shell yumdb search from_repo rhelosp-*-director* egrep -v from_repo grep -v tail -n +2 register director_rpms

AnsibleTask shell yumdb search from_repo rhelosp-*-p* egrep -v from_repo grep -v tail -n +2 register rhos_rpms

AnsibleTask shell yumdb search from_repo delorean* egrep -v from_repo grep -v tail -n +2 register delorean_rpms

AnsibleTask fail msg The required variable ` role_name ` is undefined Check your settings when role_name is undefined

AnsibleTask command ansible-galaxy init role-skeleton=_skeleton_role_ init-path=roles/ _role_name args creates roles/ _role_name

AnsibleTask copy content set items molecule_yaml b64decode from_yaml set job_index set new_job_name tripleo-validations-centos-7-molecule- ~ _role_name for item in items if in item if item tripleo-validations-molecule-jobs if not new_job_name in item set _ item .append new_job_name set check_jobs item sort set _ item .update check_jobs endif if not new_job_name in item set _ item .append new_job_name set gate_jobs item sort set _ item .update gate_jobs endif endif else if item new_job_name set _ job_index.append new_job_name endif endif endfor if job_index length 1 set new_job name new_job_name parent tripleo-validations-centos-7-base files ^roles/ ~ _role_name ~ vars tripleo_validations_role_name _role_name set _ items.append job new_job endif items to_nice_yaml indent=2 width=1337 dest zuul.d/molecule.yaml

AnsibleTask copy content hosts undercloud vars metadata name The Validation name goes here description Write a description of your validations groups no-op prep pre-introspection post-introspection openshift-on-openstack pre-upgrade post-upgrade pre-ceph post-ceph role_name replace _ _debug false roles role_name dest playbooks/ role_name .yaml

AnsibleTask copy content set opening ~ _role_name opening length opening opening length .. ansibleautoplugin role roles/ _role_name dest doc/source/roles/role- _role_name .rst

AnsibleTask register drive_list command ls /sys/class/block/ changed_when False

AnsibleTask fail msg panko_config_file database event_ttl_check is set to -1 or not set when event_check_result.value|int|default -1 0

AnsibleTask shell rpm -q ceph-ansible || true args warn False changed_when False ignore_errors True register ceph_ansible_installed

AnsibleTask fail msg If planning to use Ceph it is necessary to install the ceph-ansible package on the undercloud when ceph_ansible_installed.stdout.find not installed -1 fail_without_ceph_ansible|default false |bool

AnsibleTask shell yum info ceph-ansible awk repo/ print 4 register repo changed_when False

AnsibleTask fail msg Make sure ceph-ansible package is installed from ceph_ansible_repo when repo.stdout length 0 or repo.stdout ceph_ansible_repo fail_without_ceph_ansible|default false |bool

AnsibleTask fail msg If planning to use Ceph it is necessary to install item 0 package when item 0 not in ansible_facts.packages fail_without_deps|default false |bool delegate_to item 1 with_nested packages tripleo_delegate_to

AnsibleTask fail msg In order to simulate Tripleo Heat Template behavior this role requires that it be run with Ansible hash_behaviour set to merge Please re-run with ANSIBLE_HASH_BEHAVIOUR=merge when hash_behavior

AnsibleTask fail msg Please pass the expected number of OSDs e.g num_osds=36 when num_osds is not defined

AnsibleTask set_fact ceph_pool_default_size parameter_defaults |default 3

AnsibleTask set_fact ceph_pool_default_pg_num parameter_defaults |default 128

AnsibleTask set_fact ceph_pools parameter_defaults |default parameter_defaults |default parameter_defaults |default parameter_defaults |default parameter_defaults |default ]

AnsibleTask set_fact custom_names custom_names default item.name loop parameter_defaults

AnsibleTask set_fact default_names default_names default item.name loop ceph_pools

AnsibleTask set_fact new_ceph_pools new_ceph_pools default item loop ceph_pools when item.name in default_names|difference custom_names

AnsibleTask set_fact ceph_pools ceph_pools default dict name=item loop parameter_defaults.CinderRbdExtraPools.split |list when parameter_defaults is defined parameter_defaults |length 0 item not in custom_names|default

AnsibleTask set_fact ceph_pools ceph_pools default item loop parameter_defaults |default parameter_defaults |default 128 parameter_defaults |default 128 parameter_defaults |default parameter_defaults |default 128 parameter_defaults |default 128 when resource_registry :TripleO :Services :ManilaBackendCephFs is defined resource_registry :TripleO :Services :ManilaBackendCephFs :Heat :None item.name not in custom_names|default

AnsibleTask set_fact ceph_pools ceph_pools default dict name=item loop .rgw.root default.rgw.control default.rgw.meta default.rgw.log default.rgw.buckets.index default.rgw.buckets.data when resource_registry :TripleO :Services :CephRgw is defined resource_registry :TripleO :Services :CephRgw :Heat :None item not in custom_names|default

AnsibleTask fail msg pool_creation_simulation message when not pool_creation_simulation valid_input

AnsibleTask debug msg pool_creation_simulation message when pool_creation_simulation valid_input

AnsibleTask fail msg The check_latest_packages_version role should have detected that packages have available updates

AnsibleTask fail msg A newer version of the item.name package is available item.new_version item.new_release currently item.current_version item.current_release with_items updates.results when item.new_version

AnsibleTask copy dest /undercloud.conf content DEFAULT local_subnet 192.168.254.0/24 192.168.254.0/24 gateway 8.8.8.8

AnsibleTask fail msg The check_network_gateway validation did properly detect faulty gateway

AnsibleTask copy dest /etc/puppet/hiera.yaml content :backends yaml yaml datadir /etc/puppet/ hierarchy common

AnsibleTask copy dest /etc/puppet/common.yaml content tripleo_undercloud_conf_file /undercloud.conf

AnsibleTask copy dest /undercloud.conf content ctlplane-subnet gateway 8.8.8.8

AnsibleTask set_fact container_difference running_containers difference docker.containers_filtered map list

AnsibleTask set_fact oc_container_cli hostvars inventory_hostname .container_cli default true when in group_names oc_container_cli is not defined

AnsibleTask changed_when False become True command if oc_container_cli is defined oc_container_cli else uc_container_cli endif raw ps -a filter format .Names .Status endraw register failed_containers

AnsibleTask fail msg Failed container detected item when item is not match Exited 0\ ago loop failed_containers.stdout_lines

AnsibleTask fail msg Controller-token validation failed finding bad configuration

AnsibleTask fail msg= Keystone admin token is not disabled when token_result.value None

AnsibleTask fail msg The controller-ulimits failed detecting bad limits

AnsibleTask become True command sh -c ulimit -n register nofilesval changed_when False

AnsibleTask fail msg nofiles is set to nofilesval.stdout It should be at least nofiles_min or higher depending on available resources failed_when nofilesval.stdout|int nofiles_min

AnsibleTask become True command sh -c ulimit -u register nprocval changed_when False

AnsibleTask fail msg nproc is set to nprocval.stdout It should be at least nproc_min or higher depending on available resources failed_when nprocval.stdout|int nproc_min

AnsibleTask copy dest /etc/puppet/hiera.yaml content :backends yaml json yaml datadir /etc/puppet/ hierarchy common

AnsibleTask fail msg The ctlplane-ip-range validation did properly detect too short range

AnsibleTask set_fact available_count associated_nodes|length available_nodes|length |int

AnsibleTask fail msg Not enough baremetal nodes available available_count requested requested_count failed_when requested_count|int available_count|int

AnsibleTask fail msg Only statistics.count nodes are exposed to Nova of available_count requests Check that enough nodes are in state with maintenance mode off failed_when statistics.count available_count|int

AnsibleTask fail msg The dns role should have detected a faulty DNS configuration

AnsibleTask command getent hosts server_to_lookup changed_when False

AnsibleTask copy dest /haproxy.cfg content This file managed by Puppet global daemon group haproxy log /dev/log local0 maxconn 100 pidfile /var/run/haproxy.pid ssl-default-bind-ciphers SSLv2 kEECDH kRSA kEDH kPSK +3DES aNULL eNULL MD5 EXP RC4 SEED IDEA DES ssl-default-bind-options no-sslv3 no-tlsv10 stats socket /var/lib/haproxy/stats mode 600 level user stats timeout 1s user haproxy defaults log global maxconn 100 mode tcp retries 1 timeout http-request 1s timeout queue 1s timeout connect 1s timeout client 1s timeout server 1s timeout check 1s

AnsibleTask fail msg The haproxy role should have detected issues within haproxy configuration file

AnsibleTask fail msg The maxconn value haproxy_conf.global.maxconn must be greater than global_maxconn_min failed_when haproxy_conf.global.maxconn|int global_maxconn_min

AnsibleTask fail msg The maxconn value haproxy_conf.defaults.maxconn must be greater than defaults_maxconn_min failed_when haproxy_conf.defaults.maxconn|int defaults_maxconn_min

AnsibleTask fail msg The queue option in is haproxy_conf.defaults queue but must be set to defaults_timeout_queue failed_when haproxy_conf.defaults queue defaults_timeout_queue

AnsibleTask fail msg The client option in is haproxy_conf.defaults client but must be set to defaults_timeout_client failed_when haproxy_conf.defaults client defaults_timeout_client

AnsibleTask fail msg The server option in is haproxy_conf.defaults server but must be set to defaults_timeout_server failed_when haproxy_conf.defaults server defaults_timeout_server

AnsibleTask fail msg The check option in is haproxy_conf.defaults check but must be set to defaults_timeout_check failed_when haproxy_conf.defaults check defaults_timeout_check

AnsibleTask shell systemctl list-unit-files grep ^tripleo.*healthcheck *enabled awk -F print 1 changed_when False register healthcheck_services_list when inflight_healthcheck_services length 1

AnsibleTask set_fact hc_services if inflight_healthcheck_services length 0 inflight_healthcheck_services else healthcheck_services_list.stdout_lines endif

AnsibleTask fail msg Failed systemd healthcheck service detected item.item when item.status.ExecMainStatus 0 loop systemd_healthcheck_state.results loop_control label item.item

AnsibleTask fail msg The image_serve role should have detected httpd was running or index.json is absent

AnsibleTask copy dest /undercloud.conf content DEFAULT local_ip 127.0.0.1

AnsibleTask set_fact container_registry_host local_ip.value|default 0.0.0.0 true |ipaddr

AnsibleTask set_fact container_cli hostvars inventory_hostname .container_cli

AnsibleTask become True shell container_cli|default true exec -u root container_cli|default true ps -q filter name=mysql|galera-bundle head -1 /bin/bash -c -n changed_when False register mysqld_open_files_limit

AnsibleTask fail msg The open_files_limit option for mysql must be higher than min_open_files_limit Right now it mysqld_open_files_limit.stdout failed_when mysqld_open_files_limit.stdout|int min_open_files_limit

AnsibleTask set_fact oc_container_cli hostvars inventory_hostname .container_cli default true container_name neutron_api when in group_names

AnsibleTask set_fact uc_container_cli container_cli.value|default true container_name neutron_ovs_agent

AnsibleTask command if oc_container_cli is defined oc_container_cli else uc_container_cli endif exec -u root container_name /bin/bash -c config-file item with_items configs become True register nsc_return ignore_errors True changed_when False

AnsibleTask set_fact has_errors nsc_return.results sum start= select ERROR list length int 0

AnsibleTask set_fact has_warnings nsc_return.results sum start= select WARNING list length int 0

AnsibleTask set_fact output_msg nsc_return.results sum start= select ERROR|WARNING list

AnsibleTask set_fact ansible_host= hostvars item register oc_ips with_items groups.overcloud

AnsibleTask set_fact failed_ips ping_results.results selectattr True map list

AnsibleTask fail msg lookup template_vars=dict nodes=nodes when nodes|length 0

AnsibleTask fail msg Value of item.item is set to item.value or when item.item vif_plugging_fatal_check and not item.value|bool or None or item.item vif_plugging_timeout_check and item.value|int vif_plugging_timeout_value_min|int or None with_items nova_config_result.results

AnsibleTask become True command hiera -c /etc/puppet/hiera.yaml neutron :server :notifications :auth_url ignore_errors True changed_when False register auth_url

AnsibleTask fail msg nova /auth_url from neutron_config_file is set to neutron_auth_url_result.value or but it should be set to auth_url.stdout failed_when neutron_auth_url_result.value auth_url.stdout

AnsibleTask fail msg Value of item.item is set to item.value|bool when not item.value|bool or item.value None with_items neutron_notify_nova_result.results

AnsibleTask fail msg nova /tenant_name from neutron_config_file is set to neutron_tenant_name_result.value or but it should be set to when neutron_tenant_name_result.value

AnsibleTask fail msg The nova_status validation did properly detect bad upgrade status check

AnsibleTask copy dest /usr/bin/podman mode,493 content /bin/bash action= 1 shift container= 3 shift command= case container in echo This is a comment that should be echo 0 12 14 2 heat-manage echo This is a comment that should be echo 0 12 14 2 keystone-manage exit 0 echo Unknown container container esac

AnsibleTask copy dest /usr/bin/docker mode,493 content /bin/bash action= 1 shift container= 3 shift command= case container in echo This is a comment that should be echo 0 12 14 2 some-other echo This is a comment that should be echo 0 12 14 2 some-other exit 2 echo Unknown container container esac

AnsibleTask set_fact container_cli hostvars inventory_hostname .container_cli default true when container_cli is not defined

AnsibleTask become True command container_cli exec -u root nova_api nova-status upgrade check changed_when False register nova_upgrade_check

AnsibleTask fail msg There was an upgrade status check failure that needs to be investigated This should be considered something that stops an upgrade See the detail at https //docs.openstack.org/nova/latest/cli/nova-status.html nova-status-checks when nova_upgrade_check.rc not in 0 1

AnsibleTask debug msg This is a no-op action for testing that the validations framework runs

AnsibleTask fail msg Chronyd service is not running when ansible_facts.services .state

AnsibleTask become True command chronyc -a 4/4 changed_when False

AnsibleTask command ntpstat changed_when False when not chrony_enabled|bool

AnsibleTask set_fact auth_token= keystone_result.x_subject_token

AnsibleTask set_fact nova_url= keystone_result.json.token json_query catalog .endpoints first selectattr map first

AnsibleTask set_fact glance_url= keystone_result.json.token json_query catalog .endpoints first selectattr map first

AnsibleTask set_fact matching_flavors_testing flavors_result_testing.json.flavors list length 0

AnsibleTask set_fact matching_flavors_prod flavors_result_prod.json.flavors selectattr 4 list length 0

AnsibleTask set_fact hv_stats= hypervisors_result.json.hypervisor_statistics

AnsibleTask set_fact resource_reqs_testing=True when hv_stats.disk_available_least min_total_disk_testing and hv_stats.free_ram_mb min_total_ram_testing and hv_stats.vcpus hv_stats.vcpus_used min_total_vcpus_testing

AnsibleTask set_fact resource_reqs_prod=True when hv_stats.disk_available_least min_total_disk_prod and hv_stats.free_ram_mb min_total_ram_prod and hv_stats.vcpus hv_stats.vcpus_used min_total_vcpus_prod

AnsibleTask set_fact matching_image images.json.images map map select centos|rhel list length int 0

AnsibleTask fail msg warning_msg when not matching_flavors_testing or not matching_image or not resource_reqs_testing

AnsibleTask set_fact neutron_url= keystone_result.json.token json_query catalog .endpoints first selectattr map first

AnsibleTask fail msg The ` HorizonPublic ` endpoint is not defined in the ` EndpointMap ` of the deployed stack This means Horizon may not have been deployed correctly when overcloud_horizon_url|default length 0 overcloud_deployed|bool

AnsibleTask fail msg The ` KeystoneURL ` output is not available in the deployed stack when overcloud_keystone_url|default length 0 overcloud_deployed|bool

AnsibleTask become_method sudo become True register pmd_cpu_mask command ovs-vsctl no-wait get Open_vSwitch other_config pmd-cpu-mask changed_when False

AnsibleTask become True command /usr/bin/systemctl show pacemaker property ActiveState register check_service changed_when False ignore_errors True

AnsibleTask become True command pcs status xml register pcs_status changed_when False

AnsibleTask fail msg The rabbitmq_limits validation did properly detect bad rabbitmq setting

AnsibleTask copy dest /usr/bin/podman mode,493 content /bin/bash action= 1 shift container= 1 shift command= case action in case container in echo This is a comment that should be echo 0 12 14 2 heat-manage echo This is a comment that should be echo 0 12 14 2 keystone-manage echo 16484 echo Unknown container container esac echo grep -q echo echo Unknown action action esac

AnsibleTask copy dest /usr/bin/docker mode,493 content /bin/bash action= 1 shift container= 1 shift command= case action in case container in echo This is a comment that should be echo 0 12 14 2 some-other echo This is a comment that should be echo 0 12 14 2 some-other echo 1 echo Unknown container container esac echo grep -q echo rabbitmq esac

AnsibleTask set_fact container_cli hostvars inventory_hostname .container_cli |default true when container_cli is not defined

AnsibleTask become True register actual_fd_limit shell container_cli exec container_cli ps -q filter name=rabbitmq head -1 rabbitmqctl eval get_value max_fds erlang system_info check_io changed_when False

AnsibleTask fail msg actual_fd_limit.stdout must be greater than or equal to min_fd_limit failed_when actual_fd_limit.stdout|int min_fd_limit

AnsibleTask fail msg The repos validation failed detecting broken/non-working repository

AnsibleTask become True shell ansible_pkg_mgr repolist enabled -v 2 1 || exit 0 args warn False changed_when False register repositories

AnsibleTask fail msg One or more repositories are either broken or unreachable Please correct when repositories.stdout is regex can not |could not|failure ignorecase=True

AnsibleTask changed_when False shell echo repositories.stdout grep Repo-id sed s/Repo-id // tr -d register repository_ids

AnsibleTask fail msg Found unwanted repository item.0 enabled when item.0 item.1 with_nested repository_ids.stdout_lines

AnsibleTask copy dest /usr/bin/docker mode,493 content /bin/sh echo Exited 0 12 seconds echo Exited 255 7 hours echo Exited 255 7 hours ago

AnsibleTask file path /etc/systemd/system/docker.service.d state directory

AnsibleTask copy dest /etc/systemd/system/docker.service.d/override.conf content Unit After=network.target Wants= Requires= Service Type=simple ExecStart= ExecStart=/usr/bin/fake Restart=

AnsibleTask copy dest /usr/bin/fake mode,493 content /bin/sh while true do sleep 5 done

AnsibleTask file path /var/lib/containers/ item state directory loop storage storage/libpod

AnsibleTask copy src ./bolt_state.db dest /var/lib/containers/storage/libpod/bolt_state.db setype container_var_lib_t

AnsibleTask copy dest /etc/systemd/system/tripleo_failed-unit.service content Unit After=network.target Service Type=simple ExecStart=/usr/bin/false

AnsibleTask ignore_errors True service name tripleo_failed-unit state started enabled True

AnsibleTask fail msg The stonith_exists validation did properly detect failed stonith config

AnsibleTask copy dest /usr/bin/pcs mode,493 content /bin/sh echo Stonith service configured exit 0

AnsibleTask become True register pcs_cluster_status command pcs cluster status failed_when False changed_when False

AnsibleTask become True command pcs stonith register stonith_devices changed_when False when pcs_cluster_status.rc 0

AnsibleTask fail msg Stonith devices are not configured when pcs_cluster_status.rc 0 and stonith devices configured in stonith_devices.stdout

AnsibleTask command kdestroy -c item ignore_errors False become True with_items temp_krb_caches

AnsibleTask command ping -c 3 ipa-ca register ipa_ca_ping_status ignore_errors True changed_when False

AnsibleTask set_fact dns_status helper_status_ok dns_reason DNS is configured correctly dns_recommendations None when ipa_ca_ping_status.rc 0

AnsibleTask set_fact dns_status helper_status_error dns_reason DNS is NOT configured correctly dns_recommendations that the DNS server for this node points to IdM/FreeIPA For the undercloud you need to set the configuration parameter For the overcloud you need to set the parameter Make sure that the relevant entry is in /etc/resolv.conf when ipa_ca_ping_status.rc 0

AnsibleTask set_fact firewall_status helper_status_skipped firewall_reason skipped ansible_hostname firewall checks because DNS was set correctly. firewall_recommendations None when ipa_ca_ping_status.rc 0

AnsibleTask set_fact ipa_conf_status helper_status_ok ipa_conf_reason The host ansible_host has the file /etc/ipa/default.conf ipa_conf_recommendations None when ipa_conf_stat.stat.exists

AnsibleTask set_fact ipa_conf_status helper_status_error ipa_conf_reason The host ansible_host is missing the file /etc/ipa/default.conf ipa_conf_recommendations host ansible_host needs to be enrolled to IdM/FreeIPA If there were enrollment issues you see them in /var/log/ipaclient-install.log when not ipa_conf_stat.stat.exists

AnsibleTask set_fact host_entry ansible_fqdn ipa_realm.value when ipa_conf_stat.stat.exists

AnsibleTask set_fact host_principal host/ host_entry when ipa_conf_stat.stat.exists

AnsibleTask set_fact krb5_keytab_status helper_status_ok krb5_keytab_reason The host ansible_host has the file /etc/krb5.keytab krb5_keytab_recommendations None when krb5_keytab_stat.stat.exists

AnsibleTask set_fact krb5_keytab_status helper_status_error krb5_keytab_reason The host ansible_host is missing the file /etc/krb5.keytab krb5_keytab_recommendations host ansible_host needs to be enrolled to IdM/FreeIPA If there were enrollment issues you see them in /var/log/ipaclient-install.log you can request the keytab for this host with the ipa-getkeytab command when not krb5_keytab_stat.stat.exists

AnsibleTask set_fact principal_in_keytab_status helper_status_ok principal_in_keytab_reason The principal host_principal is in the keytab principal_in_keytab_recommendations None when krb5_keytab_stat.stat.exists ipa_conf_stat.stat.exists host_principal in keytab_principal_list.stdout

AnsibleTask set_fact principal_in_keytab_status helper_status_error principal_in_keytab_reason The principal host_principal is missing from the keytab principal_in_keytab_recommendations might have overwritten the keytab Re-enroll or request the keytab using ipa-getkeytab when krb5_keytab_stat.stat.exists ipa_conf_stat.stat.exists host_principal not in keytab_principal_list.stdout

AnsibleTask set_fact principal_in_keytab_status helper_status_skipped principal_in_keytab_reason skipped checking for the principal in the host ansible_host because there is no keytab file principal_in_keytab_recommendations None when not ipa_conf_stat.stat.exists krb5_keytab_stat.stat.exists

AnsibleTask set_fact principal_in_keytab_status helper_status_skipped principal_in_keytab_reason skipped checking for the principal in the host ansible_host because there is no keytab file principal_in_keytab_recommendations None when not krb5_keytab_stat.stat.exists

AnsibleTask command kinit -kt /etc/krb5.keytab -c /tmp/my_krb5_ccache become True register principal_usable_result ignore_errors True when krb5_keytab_stat.stat.exists

AnsibleTask set_fact principal_usable_status helper_status_skipped principal_usable_reason skipped checking if the principal is usable for host ansible_host because there is no keytab file principal_usable_recommendations None when not krb5_keytab_stat.stat.exists

AnsibleTask set_fact principal_usable_status helper_status_ok principal_usable_reason The principal host_principal is usable to obtain a kerberos ticket principal_usable_recommendations None temp_krb_caches temp_krb_caches changed_when True when krb5_keytab_stat.stat.exists principal_usable_result is succeeded notify clean_up_temp_krb_caches

AnsibleTask set_fact principal_usable_status helper_status_error principal_usable_reason The principal host_principal is unable to obtain a kerberos ticket principal_usable_recommendations None when krb5_keytab_stat.stat.exists principal_usable_result is failed

AnsibleTask set_fact certmonger_user_service_status helper_status_error certmonger_user_service_reason The certmonger user service is not enabled for this role certmonger_user_service_recommendations Please add the :TripleO :Services :CertmongerUser service to all of your TripleO roles when certmonger_user_enabled true

AnsibleTask set_fact certmonger_user_service_status helper_status_ok certmonger_user_service_reason This role contains the certmonger user service certmonger_user_service_recommendations None when certmonger_user_enabled true

AnsibleTask shell getcert list grep ID sed s/Request ID *\ /\1/ become True changed_when False register all_certnames check_mode False

AnsibleTask shell getcert list -i certname grep status sed s/^\s*// become True changed_when False loop all_certnames.stdout_lines loop_control loop_var certname register all_cert_status check_mode False

AnsibleTask set_fact failed_certs all_cert_status.results json_query cert_status_query vars cert_status_query stdout MONITORING .certname

AnsibleTask set_fact cert_status_status helper_status_error cert_status_reason The following certificates are not in a healthy status failed_certs join cert_status_recommendations Log into this host and do list -i cert name to verify the failure reason that the service principal of the certificate is present in IdM/FreeIPA for this host when failed_certs

AnsibleTask set_fact cert_status_status helper_status_ok cert_status_reason All of the certificates are a healthy status cert_status_recommendations None when not failed_certs

AnsibleTask command command_prefix exec novajoin_server test -e /etc/novajoin/join.conf register containerized_join_conf_st changed_when False become True

AnsibleTask fail msg join.conf is necessary to continue the validations when containerized_join_conf_st.rc 0

AnsibleTask set_fact joinconf_location /var/lib/config-data/puppet-generated/novajoin/etc/novajoin/join.conf

AnsibleTask fail msg join.conf is necessary to continue the validations when not non_containerized_join_conf_st.stat.exists|bool

AnsibleTask set_fact podman_install container_cli.value|default true docker_install container_cli.value|default true when not container_cli|default |length 0

AnsibleTask set_fact command_prefix podman when podman_install|bool

AnsibleTask set_fact command_prefix docker when docker_install|bool

AnsibleTask set_fact containerized_undercloud podman_install|bool or docker_install|bool

AnsibleTask set_fact undercloud_conf_dns_query lookup item loop undercloud_nameservers.value.split when undercloud_nameservers.value length 0 and undercloud_nameservers.value

AnsibleTask set_fact undercloud_conf_dns_status helper_status_error undercloud_conf_dns_reason DNS is not set up correctly in undercloud.conf undercloud_conf_dns_recommendations Please set the parameter to point to IdM/FreeIPA in undercloud.conf when undercloud_conf_dns_query|default NXDOMAIN

AnsibleTask set_fact undercloud_conf_dns_status helper_status_ok undercloud_conf_dns_reason DNS is set up correctly in undercloud.conf undercloud_conf_dns_recommendations None when undercloud_conf_dns_query|default NXDOMAIN

AnsibleTask set_fact undercloud_conf_enable_novajoin_status helper_status_error undercloud_conf_enable_novajoin_reason enable_novajoin is not enabled undercloud.conf undercloud_conf_enable_novajoin_recommendations Please set to True in undercloud.conf when not undercloud_enable_novajoin.value|bool

AnsibleTask set_fact undercloud_conf_enable_novajoin_status helper_status_ok undercloud_conf_enable_novajoin_reason enable_novajoin is enabled undercloud.conf undercloud_conf_enable_novajoin_recommendations None when undercloud_enable_novajoin.value|bool

AnsibleTask fail msg The undercloud_cpu role should have detected that there is not enough CPU

AnsibleTask fail msg There are ansible_processor_vcpus cores in the system but there should be at least min_undercloud_cpu_count failed_when ansible_processor_vcpus|int min_undercloud_cpu_count|int

AnsibleTask copy dest /tmp/debug_true_1.conf content DEFAULT debug true

AnsibleTask fail msg The undercloud_debug should have detected a configuration issue

AnsibleTask fail msg The validation did not detect a too small disk space

AnsibleTask set_fact existing_volumes existing_volumes item.item with_items volumes_stat.results when item.stat.exists loop_control label item.item.mount

AnsibleTask shell df -B1 item.mount output=avail sed 1d register volume_size with_items existing_volumes changed_when False

AnsibleTask fail msg Minimum free space required for item.item.mount item.item.min_size G current free space item.stdout|int const_bytes_in_gb|int |round 1 G when item.stdout|int const_bytes_in_gb|int item.item.min_size|int with_items volume_size.results loop_control label item.item.mount

AnsibleTask fail msg The undercloud_heat_purge_deleted validation failed to detect missing cron job

AnsibleTask copy dest /undercloud.conf content DEFAULT container_cli podman

AnsibleTask copy dest /usr/bin/podman mode,493 content /bin/bash action= 1 shift container= 1 shift command= case container in echo This is a comment that should be echo 0 12 14 2 heat-manage echo Unknown container container esac

AnsibleTask copy dest /usr/bin/docker mode,493 content /bin/bash action= 1 shift container= 1 shift command= case container in echo This is a comment that should be echo 0 12 14 2 some-other echo Unknown container container esac

AnsibleTask become True shell set -o pipefail container_cli.value|default true exec heat_api_cron crontab -l -u heat |grep -v register cron_result changed_when False

AnsibleTask fail msg heat-manage purge_deleted does not appear to be enabled via cron You should add desired interval heat-manage purge_deleted to the heat users crontab when cron_result.stdout.find purge_deleted -1

AnsibleTask command container_cli.value|default true exec item.container pgrep -f -c item.proc become True ignore_errors True register process_count changed_when False loop ' : '

AnsibleTask command echo There are item.stdout item.item processes running Having more than max_process_count risks running out of memory register process_warnings with_items process_count.results when item.stdout|int max_process_count

AnsibleTask fail msg The undercloud_ram role should have detected that there is not enough RAM

AnsibleTask fail msg The RAM on the undercloud node is ansible_memtotal_mb MB the minimal recommended value is min_undercloud_ram_gb|int 1024 MB failed_when ansible_memtotal_mb min_undercloud_ram_gb|int 1024

AnsibleTask command getenforce become True register sestatus changed_when False

AnsibleTask fail msg SELinux is running in sestatus.stdout mode on the Undercloud Ensure that SELinux is enabled and running in Enforcing mode when sestatus.stdout ansible_distribution

AnsibleTask command /usr/bin/systemctl show item property ActiveState become True with_items undercloud_service_list register check_services changed_when False ignore_errors True

AnsibleTask fail msg One of the undercloud services was not active Please check item.item first and then confirm the status of undercloud services in general before attempting to update or upgrade the environment failed_when item.stdout with_items check_services.results

AnsibleTask fail msg The undercloud_tokenflush validation failed to detect missing cron job

AnsibleTask copy dest /etc/puppet/hiera.yaml content :backends yaml yaml datadir /etc/puppet/ hierarchy common service_configs

AnsibleTask copy dest /etc/puppet/service_configs.yaml content keystone :token_provider uuid

AnsibleTask copy dest /usr/bin/podman mode,493 content /bin/bash action= 1 shift container= 1 shift command= case container in echo This is a comment that should be echo 0 12 14 2 heat-manage echo This is a comment that should be echo 0 12 14 2 keystone-manage echo Unknown container container esac

AnsibleTask copy dest /usr/bin/docker mode,493 content /bin/bash action= 1 shift container= 1 shift command= case container in echo This is a comment that should be echo 0 12 14 2 some-other echo This is a comment that should be echo 0 12 14 2 some-other echo Unknown container container esac

AnsibleTask copy dest /etc/puppet/hiera.yaml content :backends yaml yaml datadir /etc/puppet/ hierarchy service_configs

AnsibleTask debug msg Skipping token flush validation since you are using a non-persistent token format ansible_facts :token_provider You do not need a separate keystone_cron container to periodically prune tokens from keystone database when ansible_facts :token_provider or ansible_facts :token_provider

AnsibleTask fail msg Unit test failed did not detect untracked denials

AnsibleTask copy dest /var/log/audit-clean.log owner root mode,384 group root content type=SERVICE_START msg=audit 1575877870.934:286 pid=1 uid=0 auid=4294967295 ses=4294967295 subj=system_u system_r init_t s0 comm= systemd exe= /usr/lib/systemd/systemd hostname= addr= terminal= root AUID= unset type=SERVICE_STOP msg=audit 1575878320.981:287 pid=1 uid=0 auid=4294967295 ses=4294967295 subj=system_u system_r init_t s0 comm= systemd exe= /usr/lib/systemd/systemd hostname= addr= terminal= root AUID= unset type=USER_ACCT msg=audit 1575878471.739:288 pid=4430 uid=0 auid=4294967295 ses=4294967295 subj=system_u system_r system_cronjob_t s0-s0 c0.c1023 accounting grantors=pam_unix pam_localuser acct= root exe= /usr/bin/sudo hostname= addr= terminal= root AUID= unset type=USER_CMD msg=audit 1575878471.740:289 pid=4430 uid=0 auid=4294967295 ses=4294967295 subj=system_u system_r system_cronjob_t s0-s0 c0.c1023 /root cmd=626F7267202D2D696E666F20637265617465202D2D636F6D7072657373696F6E206C7A34202D2D6578636C7564652D636163686573202D2D6578636C756465202A2F2A2E6C6F636B202D2D6578636C756465202A2F2E746F78202D2D6578636C756465202A2F2E737465737472202D2D6578636C756465202A2F727562792D76656E646F72202D2D6578636C756465202A2F7A75756C2F202D2D6578636C756465202A2F73736866732F202D2D6578636C756465202A2F2E6C6F63616C2F7368617265202F6D656469612F6261636B7570732F7268656C3A3A31306130393963382D316135612D313165612D613663622D386331363435366466626265202F686F6D652F636A65616E6E6572 exe= /usr/bin/sudo terminal= root AUID= unset type=USER_ACCT msg=audit 1575878554.296:294 pid=4445 uid=0 auid=4294967295 ses=4294967295 subj=system_u system_r system_cronjob_t s0-s0 c0.c1023 accounting grantors=pam_unix pam_localuser acct= root exe= /usr/bin/sudo hostname= addr= terminal= root AUID= unset type=USER_CMD msg=audit 1575878554.296:295 pid=4445 uid=0 auid=4294967295 ses=4294967295 subj=system_u system_r system_cronjob_t s0-s0 c0.c1023 /root cmd=626F7267206C697374202F6D656469612F6261636B7570732F7268656C exe= /usr/bin/sudo terminal= root AUID= unset type=USER_ACCT msg=audit 1575878555.032:300 pid=4449 uid=0 auid=4294967295 ses=4294967295 subj=system_u system_r system_cronjob_t s0-s0 c0.c1023 accounting grantors=pam_unix pam_localuser acct= root exe= /usr/bin/sudo hostname= addr= terminal= root AUID= unset type=USER_CMD msg=audit 1575878555.032:301 pid=4449 uid=0 auid=4294967295 ses=4294967295 subj=system_u system_r system_cronjob_t s0-s0 c0.c1023 /root cmd=626F7267207072756E65202D70202D2D6B6565702D77697468696E203277202D2D7374617473202F6D656469612F6261636B7570732F7268656C exe= /usr/bin/sudo terminal= root AUID= unset type=SERVICE_START msg=audit 1575878869.915:306 pid=1 uid=0 auid=4294967295 ses=4294967295 subj=system_u system_r init_t s0 comm= systemd exe= /usr/lib/systemd/systemd hostname= addr= terminal= root AUID= unset type=SERVICE_STOP msg=audit 1575878900.615:312 pid=1 uid=0 auid=4294967295 ses=4294967295 subj=system_u system_r init_t s0 comm= systemd exe= /usr/lib/systemd/systemd hostname= addr= terminal= root AUID= unset

AnsibleTask copy dest /var/log/audit-unclean.log owner root mode,384 group root content type=AVC msg=audit 1575534183.234:4933 avc denied write for pid=11266 comm= iptables path= pipe 231496 dev= pipefs ino=231496 scontext=system_u system_r iptables_t s0 tcontext=system_u system_r certmonger_t s0 tclass=fifo_file permissive=1 type=AVC msg=audit 1575534183.342:4934 avc denied write for pid=11284 comm= iptables path= pipe 231496 dev= pipefs ino=231496 scontext=system_u system_r iptables_t s0 tcontext=system_u system_r certmonger_t s0 tclass=fifo_file permissive=1 type=USER_AVC msg=audit 1575535009.861:5275 pid=1397 uid=81 auid=4294967295 ses=4294967295 subj=system_u system_r system_dbusd_t s0-s0 c0.c1023 denied send_msg for msgtype=method_call interface=org.freedesktop.DBus member=Hello dest=org.freedesktop.DBus spid=38869 scontext=system_u system_r container_t s0 c313 c573 tcontext=system_u system_r system_dbusd_t s0-s0 c0.c1023 tclass=dbus permissive=1 exe= /usr/bin/dbus-daemon sauid=81 hostname= addr= terminal= dbus AUID= unset SAUID= dbus type=USER_AVC msg=audit 1575535009.861:5276 pid=1397 uid=81 auid=4294967295 ses=4294967295 subj=system_u system_r system_dbusd_t s0-s0 c0.c1023 denied send_msg for msgtype=method_call interface=org.freedesktop.systemd1.Manager member=GetDynamicUsers dest=org.freedesktop.systemd1 spid=38869 tpid=1 scontext=system_u system_r container_t s0 c313 c573 tcontext=system_u system_r init_t s0 tclass=dbus permissive=1 exe= /usr/bin/dbus-daemon sauid=81 hostname= addr= terminal= dbus AUID= unset SAUID= dbus type=USER_AVC msg=audit 1575535009.862:5277 pid=1397 uid=81 auid=4294967295 ses=4294967295 subj=system_u system_r system_dbusd_t s0-s0 c0.c1023 denied send_msg for msgtype=method_return dest=:1.1198 spid=1 tpid=38869 scontext=system_u system_r init_t s0 tcontext=system_u system_r container_t s0 c313 c573 tclass=dbus permissive=1 exe= /usr/bin/dbus-daemon sauid=81 hostname= addr= terminal= dbus AUID= unset SAUID= dbus type=USER_AVC msg=audit 1575535013.340:5290 pid=1397 uid=81 auid=4294967295 ses=4294967295 subj=system_u system_r system_dbusd_t s0-s0 c0.c1023 denied send_msg for msgtype=method_call interface=org.freedesktop.DBus member=Hello dest=org.freedesktop.DBus spid=39132 scontext=system_u system_r container_t s0 c192 c917 tcontext=system_u system_r system_dbusd_t s0-s0 c0.c1023 tclass=dbus permissive=1 exe= /usr/bin/dbus-daemon sauid=81 hostname= addr= terminal= dbus AUID= unset SAUID= dbus type=USER_AVC msg=audit 1575535013.341:5291 pid=1397 uid=81 auid=4294967295 ses=4294967295 subj=system_u system_r system_dbusd_t s0-s0 c0.c1023 denied send_msg for msgtype=method_call interface=org.freedesktop.systemd1.Manager member=GetDynamicUsers dest=org.freedesktop.systemd1 spid=39132 tpid=1 scontext=system_u system_r container_t s0 c192 c917 tcontext=system_u system_r init_t s0 tclass=dbus permissive=1 exe= /usr/bin/dbus-daemon sauid=81 hostname= addr= terminal= dbus AUID= unset SAUID= dbus type=USER_AVC msg=audit 1575535013.342:5292 pid=1397 uid=81 auid=4294967295 ses=4294967295 subj=system_u system_r system_dbusd_t s0-s0 c0.c1023 denied send_msg for msgtype=method_return dest=:1.1209 spid=1 tpid=39132 scontext=system_u system_r init_t s0 tcontext=system_u system_r container_t s0 c192 c917 tclass=dbus permissive=1 exe= /usr/bin/dbus-daemon sauid=81 hostname= addr= terminal= dbus AUID= unset SAUID= dbus type=USER_AVC msg=audit 1575535028.912:5307 pid=1397 uid=81 auid=4294967295 ses=4294967295 subj=system_u system_r system_dbusd_t s0-s0 c0.c1023 denied send_msg for msgtype=method_call interface=org.freedesktop.DBus member=Hello dest=org.freedesktop.DBus spid=39430 scontext=system_u system_r container_t s0 c776 c848 tcontext=system_u system_r system_dbusd_t s0-s0 c0.c1023 tclass=dbus permissive=1 exe= /usr/bin/dbus-daemon sauid=81 hostname= addr= terminal= dbus AUID= unset SAUID= dbus type=USER_AVC msg=audit 1575535028.913:5308 pid=1397 uid=81 auid=4294967295 ses=4294967295 subj=system_u system_r system_dbusd_t s0-s0 c0.c1023 denied send_msg for msgtype=method_call interface=org.freedesktop.systemd1.Manager member=GetDynamicUsers dest=org.freedesktop.systemd1 spid=39430 tpid=1 scontext=system_u system_r container_t s0 c776 c848 tcontext=system_u system_r init_t s0 tclass=dbus permissive=1 exe= /usr/bin/dbus-daemon sauid=81 hostname= addr= terminal= dbus AUID= unset SAUID= dbus

AnsibleTask when not auditlog_stat.stat.exists fail msg ERROR validate_selinux_audit_source does not exist

AnsibleTask become True ignore_errors True changed_when False shell set -o pipefail grep denied validate_selinux_audit_source /tmp/denials.log

AnsibleTask when denials_log.stat.size 0 debug msg No untracked SELinux AVC detected congratulations

AnsibleTask become True shell for dev in df -h grep grep -v cut -d -f1 do parseftype= xfs_info dev grep ftype=0 if -z parseftype then ftype= ftype=0 break fi done echo ftype register ftype changed_when False

AnsibleTask fail msg XFS volumes formatted using ftype=0 are incompatible with the docker overlayfs driver Run xfs_info on ansible_fqdn and fix those volumes before proceeding with the upgrade when ftype.stdout

AnsibleTask fail msg The variable ` ansible_user ` set this option and try again On the CLI this can be defined with -e ansible_user= USER when ansible_user is undefined

AnsibleTask fail msg The variable ` ansible_user_dir ` set this option and try again On the CLI this can be defined with -e ansible_user_dir= HOME when ansible_user_dir is undefined

AnsibleTask file path ansible_user_dir /.ssh state directory owner ansible_user group ansible_user mode,0700

AnsibleTask file path ansible_user_dir /zuul-output/logs state directory

AnsibleTask shell ansible_user_dir /test-python/bin/activate ansible_user_dir zuul.project.src_dir /scripts/bindep-install become True changed_when False

AnsibleTask shell ansible_user_dir /test-python/bin/activate ansible_user_dir zuul.project.src_dir /ansible-test-env.rc pytest color=no html= ansible_user_dir /zuul-output/logs/reports.html self-contained-html ansible-args= tripleo_job_ansible_args default ansible_user_dir zuul.project.src_dir /tests/test_molecule.py args chdir ansible_user_dir zuul.project.src_dir /roles/ tripleo_validations_role_name executable /bin/bash changed_when False

AnsibleTask file path=/etc/systemd/system/elasticsearch.service.d/ state=directory when ansible_service_mgr systemd

AnsibleTask template src elasticsearch_systemd.conf.j2 dest /etc/systemd/system/elasticsearch.service.d/elasticsearch.conf owner root group elasticsearch mode,432 notify restart elasticsearch tags configure when ansible_service_mgr systemd

AnsibleTask template src elasticsearch_nonsystemd.j2 dest /etc/default/elasticsearch owner root group elasticsearch mode,432 notify restart elasticsearch tags configure when ansible_service_mgr systemd ansible_os_family Debian

AnsibleTask template src elasticsearch_nonsystemd.j2 dest /etc/sysconfig/elasticsearch owner root group elasticsearch mode,432 notify restart elasticsearch tags configure when ansible_service_mgr systemd ansible_os_family RedHat

AnsibleTask template src jvm.options.j2 dest /etc/elasticsearch/jvm.options owner root group elasticsearch mode,432 notify restart elasticsearch tags configure

AnsibleTask template src elasticsearch.yml.j2 dest /etc/elasticsearch/elasticsearch.yml owner root group elasticsearch mode,432 notify restart elasticsearch tags configure

AnsibleTask service name elasticsearch enabled True state started tags configure init

AnsibleTask template src instances.yml.j2 dest node_certs_source /instances.yml force False register instances_file_exists tags config xpack-security when node_certs_generator not certificate_file_exists.stat.exists

AnsibleTask copy src master_certs_path /ca/ ca_key_name dest node_certs_source ca_key_name mode,0664 when not generate_CA node_certs_generator tags xpack-security

AnsibleTask copy src master_certs_path /ca/ ca_cert_name dest node_certs_source ca_cert_name mode,0664 when not generate_CA node_certs_generator tags xpack-security

AnsibleTask command /usr/share/elasticsearch/bin/elasticsearch-certutil cert ca pem in node_certs_source /instances.yml out node_certs_source /certs.zip when node_certs_generator not xpack_certs_zip.stat.exists generate_CA tags xpack-security molecule-idempotence-notest

AnsibleTask command /usr/share/elasticsearch/bin/elasticsearch-certutil cert ca-key node_certs_source ca_key_name ca-cert node_certs_source ca_cert_name pem in node_certs_source /instances.yml out node_certs_source /certs.zip when node_certs_generator not xpack_certs_zip.stat.exists not generate_CA ca_password length 0 tags xpack-security molecule-idempotence-notest

AnsibleTask command /usr/share/elasticsearch/bin/elasticsearch-certutil cert ca-key node_certs_source ca_key_name ca-cert node_certs_source ca_cert_name pem in node_certs_source /instances.yml out node_certs_source /certs.zip ca-pass ca_password when node_certs_generator not xpack_certs_zip.stat.exists not generate_CA ca_password length 0 tags xpack-security molecule-idempotence-notest

AnsibleTask file path master_certs_path state directory mode,0700 delegate_to 127.0.0.1 when node_certs_generator

AnsibleTask file path master_certs_path /ca/ state directory mode,0700 delegate_to 127.0.0.1 when node_certs_generator

AnsibleTask file state absent path node_certs_source /certs.zip when node_certs_generator tags molecule-idempotence-notest

AnsibleTask copy src item dest node_certs_destination with_items master_certs_path elasticsearch_node_name elasticsearch_node_name .key master_certs_path elasticsearch_node_name elasticsearch_node_name .crt master_certs_path /ca/ca.crt when generate_CA tags xpack-security molecule-idempotence-notest

AnsibleTask copy src item dest node_certs_destination with_items master_certs_path elasticsearch_node_name elasticsearch_node_name .key master_certs_path elasticsearch_node_name elasticsearch_node_name .crt master_certs_path /ca/ ca_cert_name when not generate_CA tags xpack-security molecule-idempotence-notest

AnsibleTask file path node_certs_destination mode,0774 state directory recurse True when elasticsearch_xpack_security generate_CA tags xpack-security

AnsibleTask shell set -o pipefail echo elasticsearch_xpack_security_password node_certs_source /bin/elasticsearch-keystore add -xf bootstrap.password args executable /bin/bash when node_certs_generator tags molecule-idempotence-notest

AnsibleTask set_fact node_js_repo_type deb when ansible_os_family lower debian

AnsibleTask command /tmp/setup_nodejs_repo.sh register node_repo_installation_result changed_when False

AnsibleTask shell npm install -g 1.10.1 register install_yarn_result changed_when install_yarn_result 0

AnsibleTask command git clone https //github.com/wazuh/wazuh-kibana-app -b wazuh_plugin_branch single-branch depth=1 app register clone_app_repo_result changed_when False args chdir /tmp

AnsibleTask command item with_items yarn yarn build register yarn_execution_result changed_when False args chdir /tmp/app/

AnsibleTask shell find ./ -name -printf f\n register wazuhapp_package_name changed_when False args chdir /tmp/app/build

AnsibleTask shell /usr/share/kibana/bin/kibana-plugin install file ///tmp/app/build/ wazuhapp_package_name.stdout environment NODE_OPTIONS max-old-space-size=3072 args executable /bin/bash creates /usr/share/kibana/plugins/wazuh/package.json chdir /usr/share/kibana become True become_user kibana notify restart kibana tags install skip_ansible_lint

AnsibleTask fail msg It not possible to compile the Wazuh Kibana plugin on Debian 10 due to https //github.com/wazuh/wazuh-kibana-app/issues/1924 when build_from_sources ansible_distribution Debian ansible_distribution_major_version 10

AnsibleTask copy src item dest node_certs_destination with_items master_certs_path kibana_node_name kibana_node_name .key master_certs_path kibana_node_name kibana_node_name .crt master_certs_path /ca/ca.crt tags xpack-security when kibana_xpack_security generate_CA

AnsibleTask copy src item dest node_certs_destination mode,0664 with_items master_certs_path kibana_node_name kibana_node_name .key master_certs_path kibana_node_name kibana_node_name .crt master_certs_path /ca/ ca_cert_name when kibana_xpack_security not generate_CA tags xpack-security

AnsibleTask file path node_certs_destination state directory recurse True owner kibana group kibana when kibana_xpack_security tags xpack-security

AnsibleTask file path node_certs_destination mode,0770 recurse True when kibana_xpack_security notify restart kibana tags xpack-security

AnsibleTask template src kibana.yml.j2 dest /etc/kibana/kibana.yml owner root group root mode,0664 notify restart kibana tags configure

AnsibleTask shell grep -c -E elastic_stack_version /usr/share/kibana/plugins/wazuh/package.json args executable /bin/bash removes /usr/share/kibana/plugins/wazuh/package.json register wazuh_app_verify changed_when False failed_when wazuh_app_verify.rc 0 wazuh_app_verify.rc 1

AnsibleTask command /usr/share/kibana/bin/kibana-plugin allow-root remove wazuh when wazuh_app_verify.rc 1 tags install

AnsibleTask file path /usr/share/kibana/optimize/bundles state absent when wazuh_app_verify.rc 1 tags install

AnsibleTask shell /usr/share/kibana/bin/kibana-plugin install wazuh_app_url wazuh_version _ elastic_stack_version .zip environment NODE_OPTIONS max-old-space-size=3072 args executable /bin/bash creates /usr/share/kibana/plugins/wazuh/package.json chdir /usr/share/kibana become True become_user kibana notify restart kibana tags install skip_ansible_lint when not build_from_sources

AnsibleTask set_fact elastic_api_protocol if kibana_xpack_security https else http endif

AnsibleTask template src wazuh.yml.j2 dest /usr/share/kibana/plugins/wazuh/wazuh.yml owner kibana group root mode,420

AnsibleTask template src filebeat.yml.j2 dest /etc/filebeat/filebeat.yml owner root group root mode,420 notify restart filebeat tags configure

AnsibleTask template src elasticsearch.yml.j2 dest /etc/filebeat/wazuh-template.json owner root group root mode,420 notify restart filebeat tags configure

AnsibleTask file path filebeat_ssl_dir state directory when filebeat_ssl_key_file tags configure

AnsibleTask copy src item dest filebeat_ssl_dir item basename mode,420 with_items filebeat_ssl_key_file filebeat_ssl_certificate_file notify restart filebeat when filebeat_ssl_key_file and filebeat_ssl_certificate_file tags configure

AnsibleTask copy src item dest node_certs_destination with_items master_certs_path filebeat_node_name filebeat_node_name .key master_certs_path filebeat_node_name filebeat_node_name .crt master_certs_path /ca/ca.crt when generate_CA filebeat_xpack_security tags xpack-security

AnsibleTask copy src item dest node_certs_destination with_items master_certs_path filebeat_node_name filebeat_node_name .key master_certs_path filebeat_node_name filebeat_node_name .crt master_certs_path /ca/ ca_cert_name when not generate_CA filebeat_xpack_security tags xpack-security

AnsibleTask file path node_certs_destination mode,0774 state directory recurse True when filebeat_xpack_security tags xpack-security

AnsibleTask file dest= filebeat_module_folder mode=u=rwX g=rwX o=rwX recurse=yes when not filebeat_module_folder.stat.exists

AnsibleTask file state absent path filebeat_module_package_path filebeat_module_package_name when filebeat_module_package.stat.exists

AnsibleTask service name=wazuh-agent state=restarted enabled=yes

AnsibleTask become True shell set -o pipefail curl -s https //packages.wazuh.com/key/GPG-KEY-WAZUH apt-key add args warn False executable /bin/bash changed_when False when ansible_distribution Ubuntu ansible_distribution_major_version int 14 not wazuh_agent_sources_installation.enabled not wazuh_custom_packages_installation_agent_enabled

AnsibleTask set_fact cis_distribution_filename cis_debian_linux_rcl.txt when ansible_os_family Debian

AnsibleTask shell dpkg-query showformat= Version show libopenscap8 register openscap_version changed_when False when wazuh_agent_config.openscap.disable tags config

AnsibleTask shell dpkg compare-versions openscap_version.stdout 1.2 echo register openscap_version_valid changed_when False when wazuh_agent_config.openscap.disable tags config

AnsibleTask file path /tmp/ wazuh_agent_sources_installation.branch .tar.gz state absent

AnsibleTask file path /tmp/wazuh- wazuh_agent_sources_installation.branch state absent

AnsibleTask file path /tmp/wazuh- wazuh_agent_sources_installation.branch state directory changed_when False

AnsibleTask command tar -xzvf /tmp/ wazuh_agent_sources_installation.branch .tar.gz strip 1 directory /tmp/wazuh- wazuh_agent_sources_installation.branch register wazuh_untar changed_when False args warn False

AnsibleTask command make -C src item args chdir /tmp/wazuh- wazuh_agent_sources_installation.branch /src/ with_items clean clean-deps register clean_result changed_when clean_result.rc 0 failed_when False

AnsibleTask template src templates/preloaded_vars_agent.conf.j2 dest /tmp/wazuh- wazuh_agent_sources_installation.branch /etc/preloaded-vars.conf owner root group root mode,644 changed_when False

AnsibleTask shell ./install.sh /tmp/build_agent_log.txt register installation_result changed_when installation_result 0 args chdir /tmp/wazuh- wazuh_agent_sources_installation.branch

AnsibleTask file path /tmp/ wazuh_agent_sources_installation.branch .tar.gz state absent changed_when False

AnsibleTask file path /tmp/wazuh- wazuh_agent_sources_installation.branch state absent changed_when False

AnsibleTask command /var/ossec/wodles/vuls/deploy_vuls.sh ansible_distribution|lower ansible_distribution_major_version|int args creates /var/ossec/wodles/vuls/config.toml async 3600 poll 0 when wazuh_agent_config.vuls.disable ansible_distribution in tags init

AnsibleTask template src=var-ossec-etc-ossec-agent.conf.j2 dest=/var/ossec/etc/ossec.conf owner=root group=ossec mode=0644 notify restart wazuh-agent tags init config

AnsibleTask template src=var-ossec-etc-local-internal-options.conf.j2 dest=/var/ossec/etc/local_internal_options.conf owner=root group=ossec mode=0640 notify restart wazuh-agent tags init config

AnsibleTask service name wazuh-agent enabled True state started tags config

AnsibleTask set_fact cis_distribution_filename cis_rhel5_linux_rcl.txt when ansible_os_family RedHat and ansible_distribution_major_version 5

AnsibleTask set_fact cis_distribution_filename cis_rhel6_linux_rcl.txt when ansible_os_family RedHat and ansible_distribution_major_version 6

AnsibleTask set_fact cis_distribution_filename cis_rhel7_linux_rcl.txt when ansible_os_family RedHat ansible_distribution_major_version 7

AnsibleTask set_fact cis_distribution_filename cis_rhel7_linux_rcl.txt when ansible_distribution Amazon ansible_distribution_major_version NA

AnsibleTask set_fact wazuh_agent_win_path wazuh_winagent_config.install_dir_x86 wazuh_agent_win_auth_path wazuh_winagent_config.auth_path_x86 when check_path.stat.exists

AnsibleTask set_fact wazuh_agent_win_path wazuh_winagent_config.install_dir wazuh_agent_win_auth_path wazuh_winagent_config.auth_path when not check_path.stat.exists

AnsibleTask template src var-ossec-etc-ossec-agent.conf.j2 dest wazuh_agent_win_path ossec.conf notify Windows Restart Wazuh Agent tags config

AnsibleTask service name wazuh-manager state restarted enabled True

AnsibleTask become True shell set -o pipefail curl -s https //packages.wazuh.com/key/GPG-KEY-WAZUH apt-key add args warn False executable /bin/bash changed_when False when ansible_distribution Ubuntu ansible_distribution_major_version int 14 not wazuh_manager_sources_installation.enabled or not wazuh_api_sources_installation.enabled not wazuh_custom_packages_installation_manager_enabled or not wazuh_custom_packages_installation_api_enabled

AnsibleTask set_fact cis_distribution_filename cis_debian_linux_rcl.txt

AnsibleTask shell dpkg-query showformat= Version show libopenscap8 when wazuh_manager_config.openscap.disable register openscap_version changed_when False tags config

AnsibleTask shell dpkg compare-versions openscap_version.stdout 1.2 echo when wazuh_manager_config.openscap.disable register openscap_version_valid changed_when False tags config

AnsibleTask command openssl req -x509 -sha256 -nodes -days 365 -newkey rsa:1825 -keyout sslmanager.key -out sslmanager.cert -subj /CN= wazuh_manager_fqdn args creates sslmanager.cert chdir /var/ossec/etc/ tags config when wazuh_manager_config.authd.ssl_agent_ca is not none

AnsibleTask copy src item dest /var/ossec/etc/ item mode,420 with_items wazuh_manager_config.authd.ssl_agent_ca wazuh_manager_config.authd.ssl_manager_cert wazuh_manager_config.authd.ssl_manager_key tags config when wazuh_manager_config.authd.ssl_agent_ca is not none

AnsibleTask service name=ossec-authd enabled=no state=stopped when old_authd_service.stat.exists tags config

AnsibleTask file path= item state=absent with_items /etc/init.d/ossec-authd /lib/systemd/system/ossec-authd.service when old_authd_service.stat.exists tags config

AnsibleTask template src=var-ossec-rules-local_rules.xml.j2 dest=/var/ossec/etc/rules/local_rules.xml owner=root group=ossec mode=0640 notify restart wazuh-manager tags init config rules

AnsibleTask copy src= wazuh_manager_config.ruleset.rules_path dest=/var/ossec/etc/rules/ owner=root group=ossec mode=0640 notify restart wazuh-manager tags init config rules

AnsibleTask template src=var-ossec-rules-local_decoder.xml.j2 dest=/var/ossec/etc/decoders/local_decoder.xml owner=root group=ossec mode=0640 notify restart wazuh-manager tags init config rules

AnsibleTask copy src= wazuh_manager_config.ruleset.decoders_path dest=/var/ossec/etc/decoders/ owner=root group=ossec mode=0640 notify restart wazuh-manager tags init config rules

AnsibleTask template src var-ossec-etc-shared-agent.conf.j2 dest /var/ossec/etc/shared/default/agent.conf owner ossec group ossec mode,416 validate /var/ossec/bin/verify-agent-conf -f s notify restart wazuh-manager tags init config when shared_agent_config is defined

AnsibleTask template src=var-ossec-api-configuration-config.js.j2 dest=/var/ossec/api/configuration/config.js owner=root group=ossec mode=0740 notify restart wazuh-api when wazuh_manager_config.cluster.node_type master tags init config

AnsibleTask template src=var-ossec-etc-local-internal-options.conf.j2 dest=/var/ossec/etc/local_internal_options.conf owner=root group=ossec mode=0640 notify restart wazuh-manager tags init config

AnsibleTask set_fact syslog_output=true when item.server is not none with_items wazuh_manager_config.syslog_outputs tags config

AnsibleTask shell set -o pipefail grep -c /var/ossec/bin/.process_list xargs echo args removes /var/ossec/bin/.process_list executable /bin/bash changed_when False check_mode False register csyslog_enabled tags config

AnsibleTask command /var/ossec/bin/ossec-control enable client-syslog notify restart wazuh-manager when csyslog_enabled.stdout 0 or skipped in csyslog_enabled.stdout syslog_output is defined and syslog_output tags config

AnsibleTask shell set -o pipefail grep -c /var/ossec/bin/.process_list xargs echo args removes /var/ossec/bin/.process_list executable /bin/bash changed_when False check_mode False register agentlessd_enabled tags config

AnsibleTask command /var/ossec/bin/ossec-control enable agentless notify restart wazuh-manager when agentlessd_enabled.stdout 0 or skipped in agentlessd_enabled.stdout agentless_creds is defined tags config

AnsibleTask fail msg= Please enable json_output or alerts_log options when wazuh_manager_config.json_output wazuh_manager_config.alerts_log tags init config

AnsibleTask command /var/ossec/wodles/vuls/deploy_vuls.sh ansible_distribution|lower ansible_distribution_major_version|int args creates /var/ossec/wodles/vuls/config.toml async 3600 poll 0 when wazuh_manager_config.vuls.disable ansible_distribution in tags init

AnsibleTask template src=var-ossec-etc-ossec-server.conf.j2 dest=/var/ossec/etc/ossec.conf owner=root group=ossec mode=0644 notify restart wazuh-manager tags init config

AnsibleTask template src authd_pass.j2 dest /var/ossec/etc/authd.pass owner ossec group ossec mode,416 no_log True notify restart wazuh-manager when wazuh_manager_config.authd.use_password is defined wazuh_manager_config.authd.use_password tags config

AnsibleTask template src api_user.j2 dest /var/ossec/api/configuration/auth/user owner root group root mode,488 no_log True notify restart wazuh-api when wazuh_api_user is defined wazuh_manager_config.cluster.node_type master tags config

AnsibleTask template src agentless.j2 dest /var/ossec/agentless/.passlist_tmp owner root group root mode,420 no_log True when agentless_creds is defined tags config

AnsibleTask shell /usr/bin/base64 /var/ossec/agentless/.passlist_tmp /var/ossec/agentless/.passlist rm /var/ossec/agentless/.passlist_tmp when agentless_creds is defined tags config

AnsibleTask service name wazuh-manager enabled True state started tags config

AnsibleTask service name wazuh-api enabled True state started when wazuh_manager_config.cluster.node_type master tags config

AnsibleTask command yum-config-manager enable item with_items rhui-REGION-rhel-server-rhscl rhel-server-rhscl-6-rpms when ansible_distribution and ansible_distribution_major_version 6 wazuh_manager_config.cluster.disable

AnsibleTask set_fact cis_distribution_filename cis_rhel7_linux_rcl.txt when ansible_os_family RedHat and ansible_distribution_major_version 7

AnsibleTask set_fact cis_distribution_filename cis_rhel7_linux_rcl.txt when ansible_distribution Amazon and ansible_distribution_major_version NA