40e43e235d
Previously, Kayobe used Kolla Ansible's bootstrap-servers command to create a user account and Python virtual environment for Kolla Ansible. In order to do this it used the Kayobe Ansible user and Python interpreter. This causes problems for Ansible fact caching, which needs separate caches for Kayobe and Kolla Ansible, since the different users and Python interpreters used result in different facts. Bootstrapping servers with the Kayobe user and interpreter resulted in the Kolla Ansible fact cache being populated with Kayobe's user and interpreter. This change disables user creation during Kolla Ansible's bootstrap-servers command, instead creating the user and virtual environment in Kayobe prior to running the command. This allows the bootstrap-servers command to be executed using the normal Kolla Ansible user and interpreter, which results in the correct facts being gathered. The downside here is some duplication of code and configuration, but a nice side effect is that we no longer need to dump configuration in the CLI for host configure in order to fetch the Ansible user and interpreter. Change-Id: I85670be7242bc436f73c689f027670b0938ba031 Story: 2007492 Task: 39444
48 lines
1.6 KiB
YAML
48 lines
1.6 KiB
YAML
---
|
|
- name: Ensure the Kolla Ansible user account exists
|
|
hosts: seed:overcloud
|
|
gather_facts: false
|
|
tags:
|
|
- kolla-ansible
|
|
- kolla-ansible-user
|
|
vars:
|
|
# kolla_overcloud_inventory_top_level_group_map looks like:
|
|
# kolla_overcloud_inventory_top_level_group_map:
|
|
# control:
|
|
# groups:
|
|
# - controllers
|
|
hosts_in_kolla_inventory: >-
|
|
{{ kolla_overcloud_inventory_top_level_group_map.values() |
|
|
map(attribute='groups') | flatten | unique | union(['seed']) | join(':') }}
|
|
tasks:
|
|
- block:
|
|
- name: Ensure the Kolla Ansible user account exists
|
|
include_role:
|
|
name: singleplatform-eng.users
|
|
apply:
|
|
become: True
|
|
vars:
|
|
groups_to_create:
|
|
- name: docker
|
|
- name: "{{ kolla_ansible_group }}"
|
|
- name: sudo
|
|
users:
|
|
- username: "{{ kolla_ansible_user }}"
|
|
group: "{{ kolla_ansible_group }}"
|
|
groups:
|
|
- docker
|
|
- sudo
|
|
append: True
|
|
ssh_key:
|
|
- "{{ kolla_ansible_custom_passwords.kolla_ssh_key.public_key }}"
|
|
|
|
- name: Ensure the Kolla Ansible user has passwordless sudo
|
|
copy:
|
|
content: "{{ kolla_ansible_user }} ALL=(ALL) NOPASSWD: ALL"
|
|
dest: "/etc/sudoers.d/kolla-ansible-users"
|
|
mode: 0640
|
|
become: True
|
|
when:
|
|
- inventory_hostname in query('inventory_hostnames', hosts_in_kolla_inventory)
|
|
- kolla_ansible_create_user | bool
|