Install dynamic-inventory as console_script
If you want to store openstack_deploy content you want it's content to be relevant. However, at the moment it's quite hard to predict how inventory will be generated if/when adding some new host to it. Installing dynamic_inventory script as a console_script will allow you to create quite simple tox env to update openstack_inventory.json on local machine right after changing config and simplify life of operator. Also this way you don't need to clone openstack-ansible Change-Id: I6119b0bfc27d173610657f39ebb717e0a18b247e
This commit is contained in:
parent
79fc2a604d
commit
9dc3e8b213
@ -2,7 +2,8 @@ Generating the Inventory
|
||||
========================
|
||||
|
||||
The script that creates the inventory is located at
|
||||
``inventory/dynamic_inventory.py``.
|
||||
``inventory/dynamic_inventory.py`` and installed into the ansible-runtime
|
||||
virtualenv as ``openstack-ansible-inventory``.
|
||||
|
||||
This section explains how ansible runs the inventory, and how
|
||||
you can run it manually to see its behavior.
|
||||
@ -22,6 +23,14 @@ Run the following command:
|
||||
# from the root folder of cloned OpenStack-Ansible repository
|
||||
inventory/dynamic_inventory.py --config /etc/openstack_deploy/
|
||||
|
||||
Dynamic inventory script is also installed inside virtualenv as a script. So
|
||||
alternatively you can run following:
|
||||
|
||||
.. code-block:: bash
|
||||
|
||||
source /opt/ansible-runtime/bin/activate
|
||||
openstack-ansible-inventory --config /etc/openstack_deploy/
|
||||
|
||||
This invocation is useful when testing changes to the dynamic inventory script.
|
||||
|
||||
Inputs
|
||||
@ -125,3 +134,40 @@ debugging the inventory script's behavior. The output is written to
|
||||
The ``inventory.log`` file is appended to, not overwritten.
|
||||
|
||||
Like ``--check``, this flag is not invoked when running from ansible.
|
||||
|
||||
|
||||
Running with tox
|
||||
~~~~~~~~~~~~~~~~
|
||||
|
||||
In some cases you might want to generate inventory on operator local machines
|
||||
after altering openstack_user_config.yml or env.d/conf.d files. Given that
|
||||
you already have ``openstack_deploy`` directory on such machine, you can create
|
||||
tox.ini file in that directory with following content:
|
||||
|
||||
.. code-block::
|
||||
|
||||
[tox]
|
||||
envlist = generate_inventory
|
||||
|
||||
[testenv]
|
||||
skip_install = True
|
||||
usedevelop = True
|
||||
allowlist_externals =
|
||||
bash
|
||||
|
||||
[testenv:generate_inventory]
|
||||
basepython = python3
|
||||
deps = -rhttps://opendev.org/openstack/openstack-ansible/raw/branch/master/requirements.txt
|
||||
install_command =
|
||||
pip install -c https://releases.openstack.org/constraints/upper/master {packages} git+https://opendev.org/openstack/openstack-ansible@master
|
||||
commands =
|
||||
osa-dynamic-inventory --config {toxinidir}
|
||||
|
||||
Then you can run a command to generate inventory using tox:
|
||||
|
||||
.. code-block:: bash
|
||||
|
||||
tox -e generate_inventory
|
||||
|
||||
As a result you will get your openstack_user_config.json updated. You can use
|
||||
this method also to verify validity of the inventory.
|
||||
|
@ -75,7 +75,11 @@ def args(arg_list):
|
||||
return vars(parser.parse_args(arg_list))
|
||||
|
||||
|
||||
if __name__ == '__main__':
|
||||
def main():
|
||||
all_args = args(sys.argv[1:])
|
||||
output = generate.main(**all_args)
|
||||
print(output)
|
||||
|
||||
|
||||
if __name__ == '__main__':
|
||||
main()
|
||||
|
Loading…
Reference in New Issue
Block a user