- name: Write config data at the start of step 1 block: - name: Create and ensure setype for /var/log/containers directory file: path: /var/log/containers state: directory setype: container_file_t selevel: s0 mode: 0750 tags: - host_config - name: Create ContainerLogStdoutPath directory file: path: "{{ container_log_stdout_path }}" state: directory selevel: s0 tags: - host_config - name: Create /var/lib/tripleo-config directory file: path: /var/lib/tripleo-config state: directory setype: svirt_sandbox_file_t selevel: s0 recurse: true tags: - host_config - container_config - container_config_tasks - container_config_scripts - container_startup_configs - name: Delete existing /var/lib/tripleo-config/check-mode directory for check mode file: path: /var/lib/tripleo-config/check-mode state: absent tags: - host_config - container_config - container_config_tasks - container_config_scripts - container_startup_configs when: - ansible_check_mode|bool ignore_errors: true check_mode: no - name: Create /var/lib/tripleo-config/check-mode directory for check mode file: path: /var/lib/tripleo-config/check-mode state: directory setype: svirt_sandbox_file_t selevel: s0 recurse: true tags: - host_config - container_config - container_config_tasks - container_config_scripts - container_startup_configs when: - ansible_check_mode|bool check_mode: no # Puppet manifest for baremetal host configuration - name: Write the puppet step_config manifest no_log: True copy: content: "{{ lookup('file', tripleo_role_name + '/step_config.pp', errors='ignore') | default('', True) }}" dest: /var/lib/tripleo-config/{{ ansible_check_mode | bool | ternary('check-mode/', '') }}puppet_step_config.pp force: yes mode: '0600' tags: - host_config check_mode: no diff: no - name: Diff puppet step_config manifest changes for check mode command: diff -uN /var/lib/tripleo-config/puppet_step_config.pp /var/lib/tripleo-config/check-mode/puppet_step_config.pp register: diff_results tags: - host_config check_mode: no when: - ansible_check_mode|bool - ansible_diff_mode failed_when: false changed_when: diff_results.rc == 1 - name: Diff puppet step_config manifest changes for check mode debug: var: diff_results.stdout_lines changed_when: diff_results.rc == 1 when: - ansible_check_mode|bool - ansible_diff_mode tags: - host_config # Config file for our container-puppet.py script, used to generate container configs - name: Create /var/lib/container-puppet file: path: /var/lib/container-puppet state: directory setype: svirt_sandbox_file_t selevel: s0 tags: - container_config - container_config_tasks # For backward compatibility in Stein, so our operators have time # to learn about the new directory. - name: Create /var/lib/docker-puppet for backward compatibility file: path: /var/lib/docker-puppet state: directory tags: - container_config - container_config_tasks - name: Deprecation file about /var/lib/docker-puppet copy: dest: /var/lib/docker-puppet/readme.txt content: | /var/lib/docker-puppet was moved under /var/lib/container-puppet because we don't run Docker anymore. ignore_errors: true - name: Delete existing /var/lib/container-puppet/check-mode for check mode file: path: /var/lib/container-puppet/check-mode state: absent tags: - container_config ignore_errors: true check_mode: no when: - ansible_check_mode|bool - name: Create /var/lib/container-puppet/check-mode for check mode file: path: /var/lib/container-puppet/check-mode state: directory setype: svirt_sandbox_file_t selevel: s0 tags: - container_config check_mode: no when: - ansible_check_mode|bool - name: Write container-puppet.json file no_log: True copy: content: "{{ lookup('file', tripleo_role_name + '/puppet_config.yaml', errors='ignore') | default([], True) | from_yaml | to_nice_json }}" dest: /var/lib/container-puppet/{{ ansible_check_mode | bool | ternary('check-mode/', '') }}container-puppet.json force: yes mode: '0600' tags: - container_config check_mode: no diff: no - name: Diff container-puppet.json changes for check mode command: diff -uN /var/lib/container-puppet/container-puppet.json /var/lib/container-puppet/check-mode/container-puppet.json register: diff_results tags: - container_config check_mode: no when: - ansible_check_mode|bool - ansible_diff_mode failed_when: false changed_when: diff_results.rc == 1 - name: Diff container-puppet.json changes for check mode debug: var: diff_results.stdout_lines changed_when: diff_results.rc == 1 when: - ansible_check_mode|bool - ansible_diff_mode tags: - container_config - name: Create /var/lib/container-config-scripts file: path: /var/lib/container-config-scripts state: directory setype: svirt_sandbox_file_t tags: - container_config_scripts # The container config files # /var/lib/container-startup-configs.json is removed as we now write # per-step files instead - name: Clean old /var/lib/container-startup-configs.json file file: path: /var/lib/container-startup-configs.json state: absent tags: - container_startup_configs # For legacy, can be removed in Train cycle - name: Clean old /var/lib/docker-container-startup-configs.json file file: path: /var/lib/docker-container-startup-configs.json state: absent tags: - container_startup_configs - name: Write container config scripts no_log: True copy: content: "{{ item[1].content }}" dest: "/var/lib/container-config-scripts/{{ item[0] }}" force: yes mode: "{{ item[1].mode | default('0600', true) }}" setype: svirt_sandbox_file_t loop: "{{ role_data_container_config_scripts | dictsort }}" loop_control: label: "{{ item[0] }}" vars: role_data_container_config_scripts: "{{ lookup('file', tripleo_role_name + '/container_config_scripts.yaml', errors='ignore') | default({}, True) | from_yaml }}" tags: - container_config_scripts # Here we are dumping all the container startup configuration data # so that we can have access to how they are started outside of heat # and container cmd. This lets us create command line tools to test containers. - name: Set container_config_default fact no_log: True set_fact: container_config_default: "{{ container_config_default | default({}) | combine( {'step_' + item: {}} ) }}" with_sequence: count={{ deploy_steps_max }} tags: - container_startup_configs - name: Set container_startup_configs_with_default fact no_log: True set_fact: container_config_with_default: "{{ container_config_default | combine(role_data_container_config) }}" vars: role_data_container_config: "{{ lookup('file', tripleo_role_name + '/docker_config.yaml', errors='ignore') | default({}, True) | from_yaml }}" tags: - container_startup_configs # This file location is deprecated and the new location is now: # /var/lib/tripleo-config/container-startup-config/step_X/.json # Can be removed in V cycle - name: Write /var/lib/tripleo-config/container-startup-config-readme.txt no_log: True copy: content: "Container startup configs moved to /var/lib/tripleo-config/container-startup-config" dest: /var/lib/tripleo-config/container-startup-config-readme.txt force: yes mode: '0600' tags: - container_startup_configs # For backward compatibility, the files are still generated. # However, container_puppet.py won't create their hashed version if # config changed. - name: Write per-step container startup configs for backward compatibility no_log: True copy: content: "{{ item[1] | to_nice_json }}" dest: /var/lib/tripleo-config/container-startup-config-{{ item[0] }}.json force: yes mode: '0600' loop: "{{ container_config_with_default | dictsort }}" loop_control: label: "{{ item[0] }}" tags: - container_startup_configs - name: Generate startup configs files per step and per container no_log: True include_tasks: container_startup_configs_tasks.yaml loop: "{{ container_config_with_default | dictsort }}" tags: - container_startup_configs - name: Create /var/lib/kolla/config_files directory file: path: /var/lib/kolla/config_files state: directory setype: svirt_sandbox_file_t selevel: s0 recurse: true tags: - container_startup_configs - name: Create /var/lib/config-data directory file: path: /var/lib/config-data state: directory setype: svirt_sandbox_file_t selevel: s0 - name: Write kolla config json files no_log: True copy: content: "{{ item[1] | to_nice_json }}" dest: "{{ item[0] }}" force: yes mode: '0600' setype: svirt_sandbox_file_t loop: "{{ lookup('file', tripleo_role_name + '/kolla_config.yaml', errors='ignore') | default([], True) | from_yaml | dictsort }}" loop_control: label: "{{ item[0] }}" tags: - container_startup_configs