File manager - Edit - /opt/saltstack/salt/lib/python3.10/site-packages/salt/roster/__pycache__/ansible.cpython-310.pyc
Back
o ;j& � @ sl d Z ddlZddlZddlZddlZddlmZ dddddd d �ZdZ dd � Z ddd�Zdd� Zdd� Z dS )aE Read in an Ansible inventory file or script. Flat inventory files should be in the regular ansible inventory format. .. code-block:: ini # /tmp/example_roster [servers] salt.gtmanfred.com ansible_ssh_user=gtmanfred ansible_ssh_host=127.0.0.1 ansible_ssh_port=22 ansible_ssh_pass='password' ansible_sudo_pass='password' [desktop] home ansible_ssh_user=gtmanfred ansible_ssh_host=12.34.56.78 ansible_ssh_port=23 ansible_ssh_pass='password' ansible_sudo_pass='password' [computers:children] desktop servers [computers:vars] http_port=80 then salt-ssh can be used to hit any of them .. code-block:: bash [~]# salt-ssh --roster=ansible --roster-file=/tmp/example_roster -N all test.ping salt.gtmanfred.com: True home: True [~]# salt-ssh --roster=ansible --roster-file=/tmp/example_roster -N desktop test.ping home: True [~]# salt-ssh --roster=ansible --roster-file=/tmp/example_roster -N computers test.ping salt.gtmanfred.com: True home: True [~]# salt-ssh --roster=ansible --roster-file=/tmp/example_roster salt.gtmanfred.com test.ping salt.gtmanfred.com: True There is also the option of specifying a dynamic inventory, and generating it on the fly .. code-block:: bash #!/bin/bash # filename: /etc/salt/hosts echo '{ "servers": [ "salt.gtmanfred.com" ], "desktop": [ "home" ], "computers": { "hosts": [], "children": [ "desktop", "servers" ], "vars": { "http_port": 80 } }, "_meta": { "hostvars": { "salt.gtmanfred.com": { "ansible_ssh_user": "gtmanfred", "ansible_ssh_host": "127.0.0.1", "ansible_sudo_pass": "password", "ansible_ssh_pass": "password", "ansible_ssh_port": 22 }, "home": { "ansible_ssh_user": "gtmanfred", "ansible_ssh_host": "12.34.56.78", "ansible_sudo_pass": "password", "ansible_ssh_pass": "password", "ansible_ssh_port": 23 } } } }' This is the format that an inventory script needs to output to work with ansible, and thus here. .. code-block:: bash [~]# salt-ssh --roster=ansible --roster-file /etc/salt/hosts salt.gtmanfred.com test.ping salt.gtmanfred.com: True .. note:: A dynamic inventory script must have the executable bit set. In the above example, ``chmod +x /etc/salt/hosts``. Any of the [groups] or direct hostnames will return. The 'all' is special, and returns everything. � N)�get_roster_file�host�port�user�passwdZsudoZpriv)Zansible_ssh_hostZansible_ssh_portZansible_ssh_userZansible_ssh_passZansible_sudo_passZansible_ssh_private_key_file�ansiblec C s t jj�d�r tS dS )Nzansible-inventory)Fz"Install `ansible` to use inventory)�salt�utils�path�which�__virtualname__� r r �G/opt/saltstack/salt/lib/python3.10/site-packages/salt/roster/ansible.py�__virtual__y s r �globc s| t jjjtt�d�td<