Skip to content
Snippets Groups Projects
  • Mark Goddard's avatar
    40e43e23
    Run kolla-ansible bootstrap-servers as kolla user · 40e43e23
    Mark Goddard authored
    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
    40e43e23
    History
    Run kolla-ansible bootstrap-servers as kolla user
    Mark Goddard authored
    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
bootstrap-servers-user-8cb5114de1dd10ec.yaml 1.17 KiB
---
upgrade:
  - |
    The ``kolla-ansible bootstrap-servers`` command is used by Kayobe during
    the ``kayobe seed host configure`` and ``kayobe overcloud host configure``
    tasks. In previous releases it was executed as the Kayobe Ansible user
    (``kayobe_ansible_user``) and using the remote Kayobe Python interpreter
    (``ansible_python_interpreter``) since it was responsible for creation of
    the Kolla Ansible user account (``kolla_ansible_user``) and Python virtual
    environment (``kolla_ansible_target_venv``). This mix of environments
    causes problems for Ansible fact caching. To avoid this issue, Kayobe is
    now responsible for creation of the Kolla Ansible user and Python virtual
    environment, and ``kolla-ansible bootstrap-servers`` is run using the
    normal Kolla Ansible user and remote Python interpreter.

    Previously it was possible to avoid creation of the user account during
    ``kolla-ansible bootstrap-servers`` by setting ``create_kolla_user`` to
    ``false`` in ``${KAYOBE_CONFIG_PATH}/kolla/globals.yml``. The same may now
    be achieved by setting ``kolla_ansible_create_user`` to ``false`` in
    ``${KAYOBE_CONFIG_PATH}/kolla.yml``.