On Mon, 28 Feb 2022 at 20:31, Jeremy Tourville <[email protected]> wrote:
> Hi everyone > I am trying to use Ansible for the first time with an API. Normally I > have learned to manage a specific device with ansible where you are > connecting to the device. > > I have been following this guide(s) to help provide some automation for > oVirt virtualization. > https://www.redhat.com/sysadmin//deployment-ansible-design > https://www.redhat.com/sysadmin/deployment-ansible-automation > https://www.redhat.com/sysadmin/deployment-ansible-playbooks > > I have copied what the author did except that I customized it for my > environment. > When I try to run the playbook I am getting errors. My first question is > what should the host parameter be listed as? Shouldn't it be the oVirt > manager? I see the article author chose to use localhost and I'm not sure > why. (perhaps this was a generic placeholder?) > > Please see the playbook and resulting run below. > - name: Create Many VMs > hosts: localhost > connection: local > gather_facts: false > tasks: > # Check if all config files exist > - name: Check if passwords.yml exists > stat: > path: vars/passwords.yml > register: passwordsfile > - name: Check if file vms.csv exists > stat: > path: vars/vms.csv > register: vmsfile > - name: Check if file vmtemplates.csv exists > stat: > path: vars/vmtemplates.csv > register: vmtemplatesfile > - name: Check if file vmflavours.csv exists > stat: > path: vars/vmflavours.csv > register: vmflavoursfile > - name: Check if file permissions.csv exists > stat: > path: vars/permissions.csv > register: permissionsfile > # Check if there is a missing config file terminates the play > - name: Terminate the play is any variable file is missing > fail: msg="Variable file is missing" > when: passwordsfile.stat.exists is undefined or vmsfile.stat.exists > is undefined or vmtemplatesfile.stat.exists is undefined or > vmflavoursfile.stat.exists is undefined or permissionsfile.stat.exists is > undefined > # Parse Config files > - name: Parse vms.csv file > read_csv: > path: vars/vms.csv > key: name > register: vms > # All the variables are null, then terminate the play. > - name: Test variables used to deploy multiple VMs > fail: msg="Please enter either site or system" > when: site is undefined and system is undefined > # Iterate Over the first and second plays based upon the non-null > variables > - name: Deploy VMs for certain site > shell: > cmd: ansible-playbook -e "vmchoice={{ item.value.name }}" > --vault-password-file --vault-password-file /path/to/my/vault-password-file > This seems to supply --vault-password-file twice > loop: "{{ vms.dict|dict2items }}" > ignore_errors: yes > when: item.value.site==site and site is defined and system is > undefined > - name: Deploy VMs for certain system > shell: > cmd: ansible-playbook -e "vmchoice={{ item.value.name }}" > --vault-password-file --vault-password-file /path/to/my/vault-password-file > loop: "{{ vms.dict|dict2items }}" > ignore_errors: yes > when: item.value.system==system and site is undefined and system is > defined > > [student@workstation ansible]$ ansible-playbook -e "site=Default" > --ask-vault-pass many-vms.yml > Vault password: > > PLAY [Create Many VMs] > ********************************************************************************************************************************************************************** > > TASK [Check if passwords.yml exists] > ******************************************************************************************************************************************************** > ok: [localhost] > > TASK [Check if file vms.csv exists] > ********************************************************************************************************************************************************* > ok: [localhost] > > TASK [Check if file vmtemplates.csv exists] > ************************************************************************************************************************************************* > ok: [localhost] > > TASK [Check if file vmflavours.csv exists] > ************************************************************************************************************************************************** > ok: [localhost] > > TASK [Check if file permissions.csv exists] > ************************************************************************************************************************************************* > ok: [localhost] > > TASK [Terminate the play is any variable file is missing] > *********************************************************************************************************************************** > skipping: [localhost] > > TASK [Parse vms.csv file] > ******************************************************************************************************************************************************************* > ok: [localhost] > > TASK [Test variables used to deploy multiple VMs] > ******************************************************************************************************************************************* > skipping: [localhost] > > TASK [Deploy VMs for certain site] > ********************************************************************************************************************************************************** > failed: [localhost] (item={'key': 'ansible01', 'value': {'name': > 'ansible01', 'vmflavour': 'small_vm', 'type': 'small', 'site': 'Default', > 'cluster': 'Default', 'class': 'server', 'os': 'rhel_8x64', 'nic': 'eth0', > 'ip': '172.30.50.50', 'gw': '172.30.50.1', 'mask': '255.255.255.0', > 'system': 'ansible', 'fqdn': 'ansible01.idm.nac-issa.org', 'dns1': > '172.30.50.5', 'dns2': '172.30.50.8', 'dns_domain': 'idm.nac-issa.org'}}) > => {"ansible_loop_var": "item", "changed": true, "cmd": "ansible-playbook > -e \"vmchoice=ansible01\" --vault-password-file --vault-password-file > /path/to/my/vault-password-file", "delta": "0:00:00.426266", "end": > "2022-02-25 14:44:24.057347", "item": {"key": "ansible01", "value": > {"class": "server", "cluster": "Default", "dns1": "172.30.50.5", "dns2": > "172.30.50.8", "dns_domain": "idm.nac-issa.org", "fqdn": " > ansible01.idm.nac-issa.org", "gw": "172.30.50.1", "ip": "172.30.50.50", > "mask": "255.255.255.0", "name": "ansible01", "nic": "eth0", "os": > "rhel_8x64", "site": "Default", "system": "ansible", "type": "small", > "vmflavour": "small_vm"}}, "msg": "non-zero return code", "rc": 2, "start": > "2022-02-25 14:44:23.631081", "stderr": "usage: ansible-playbook [-h] > [--version] [-v] [-k]\n [--private-key > PRIVATE_KEY_FILE] [-u REMOTE_USER]\n [-c CONNECTION] > [-T TIMEOUT]\n [--ssh-common-args SSH_COMMON_ARGS]\n > [--sftp-extra-args SFTP_EXTRA_ARGS]\n > [--scp-extra-args SCP_EXTRA_ARGS]\n > [--ssh-extra-args SSH_EXTRA_ARGS] [--force-handlers]\n > [--flush-cache] [-b] [--become-method BECOME_METHOD]\n > [--become-user BECOME_USER] [-K] [-t TAGS]\n > [--skip-tags SKIP_TAGS] [-C] [--syntax-check] [-D]\n > [-i INVENTORY] [--list-hosts] [-l SUBSET]\n [-e > EXTRA_VARS] [--vault-id VAULT_IDS]\n > [--ask-vault-pass | --vault-password-file VAULT_PASSWORD_FILES]\n > [-f FORKS] [-M MODULE_PATH] [--list-tasks]\n > [--list-tags] [--step] [--start-at-task START_AT_TASK]\n > playbook [playbook ...]\nansible-playbook: error: argument > --vault-password-file: expected one argument", "stderr_lines": ["usage: > ansible-playbook [-h] [--version] [-v] [-k]", " > [--private-key PRIVATE_KEY_FILE] [-u REMOTE_USER]", " > [-c CONNECTION] [-T TIMEOUT]", " > [--ssh-common-args SSH_COMMON_ARGS]", " > [--sftp-extra-args SFTP_EXTRA_ARGS]", " > [--scp-extra-args SCP_EXTRA_ARGS]", " > [--ssh-extra-args SSH_EXTRA_ARGS] [--force-handlers]", " > [--flush-cache] [-b] [--become-method BECOME_METHOD]", " > [--become-user BECOME_USER] [-K] [-t TAGS]", " > [--skip-tags SKIP_TAGS] [-C] [--syntax-check] [-D]", " > [-i INVENTORY] [--list-hosts] [-l SUBSET]", " > [-e EXTRA_VARS] [--vault-id VAULT_IDS]", " > [--ask-vault-pass | --vault-password-file VAULT_PASSWORD_FILES]", " > [-f FORKS] [-M MODULE_PATH] [--list-tasks]", " > [--list-tags] [--step] [--start-at-task START_AT_TASK]", " > playbook [playbook ...]", "ansible-playbook: error: > argument --vault-password-file: expected one argument"], "stdout": "", > "stdout_lines": []} > > ... > ansible02, 03, etc > ...ignoring > > TASK [Deploy VMs for certain system] > ******************************************************************************************************************************************************** > skipping: [localhost] => (item={'key': 'ansible01', 'value': {'name': > 'ansible01', 'vmflavour': 'small_vm', 'type': 'small', 'site': 'Default', > 'cluster': 'Default', 'class': 'server', 'os': 'rhel_8x64', 'nic': 'eth0', > 'ip': '172.30.50.50', 'gw': '172.30.50.1', 'mask': '255.255.255.0', > 'system': 'ansible', 'fqdn': 'ansible01.idm.nac-issa.org', 'dns1': > '172.30.50.5', 'dns2': '172.30.50.8', 'dns_domain': 'idm.nac-issa.org'}}) > skipping: [localhost] => (item={'key': 'ansible02', 'value': {'name': > 'ansible02', 'vmflavour': 'small_vm', 'type': 'small', 'site': 'Default', > 'cluster': 'Default', 'class': 'server', 'os': 'rhel_8x64', 'nic': 'eth0', > 'ip': '172.30.50.50', 'gw': '172.30.55.1', 'mask': '255.255.255.0', > 'system': 'ansible', 'fqdn': 'ansible02.idm.nac-issa.org', 'dns1': > '172.30.50.5', 'dns2': '172.30.50.8', 'dns_domain': 'idm.nac-issa.org'}}) > skipping: [localhost] => (item={'key': 'ansible03', 'value': {'name': > 'ansible03', 'vmflavour': 'small_vm', 'type': 'small', 'site': 'Default', > 'cluster': 'Default', 'class': 'server', 'os': 'rhel_8x64', 'nic': 'eth0', > 'ip': '172.30.50.50', 'gw': '172.30.60.1', 'mask': '255.255.255.0', > 'system': 'ansible', 'fqdn': 'ansible03.idm.nac-issa.org', 'dns1': > '172.30.50.5', 'dns2': '172.30.50.8', 'dns_domain': 'idm.nac-issa.org'}}) > skipping: [localhost] => (item={'key': 'ansible04', 'value': {'name': > 'ansible04', 'vmflavour': 'small_vm', 'type': 'small', 'site': 'Default', > 'cluster': 'Default', 'class': 'server', 'os': 'rhel_8x64', 'nic': 'eth0', > 'ip': '172.30.50.50', 'gw': '172.30.65.1', 'mask': '255.255.255.0', > 'system': 'ansible', 'fqdn': 'ansible04.idm.nac-issa.org', 'dns1': > '172.30.50.5', 'dns2': '172.30.50.8', 'dns_domain': 'idm.nac-issa.org'}}) > skipping: [localhost] => (item={'key': 'ansible05', 'value': {'name': > 'ansible05', 'vmflavour': 'small_vm', 'type': 'small', 'site': 'Default', > 'cluster': 'Default', 'class': 'server', 'os': 'rhel_8x64', 'nic': 'eth0', > 'ip': '172.30.50.50', 'gw': '172.30.70.1', 'mask': '255.255.255.0', > 'system': 'ansible', 'fqdn': 'ansible05.idm.nac-issa.org', 'dns1': > '172.30.50.5', 'dns2': '172.30.50.8', 'dns_domain': 'idm.nac-issa.org'}}) > skipping: [localhost] => (item={'key': 'ansible06', 'value': {'name': > 'ansible06', 'vmflavour': 'small_vm', 'type': 'small', 'site': 'Default', > 'cluster': 'Default', 'class': 'server', 'os': 'rhel_8x64', 'nic': 'eth0', > 'ip': '172.30.50.50', 'gw': '172.30.75.1', 'mask': '255.255.255.0', > 'system': 'ansible', 'fqdn': 'ansible06.idm.nac-issa.org', 'dns1': > '172.30.50.5', 'dns2': '172.30.50.8', 'dns_domain': 'idm.nac-issa.org'}}) > skipping: [localhost] => (item={'key': 'ansible07', 'value': {'name': > 'ansible07', 'vmflavour': 'small_vm', 'type': 'small', 'site': 'Default', > 'cluster': 'Default', 'class': 'server', 'os': 'rhel_8x64', 'nic': 'eth0', > 'ip': '172.30.50.50', 'gw': '172.30.80.1', 'mask': '255.255.255.0', > 'system': 'ansible', 'fqdn': 'ansible07.idm.nac-issa.org', 'dns1': > '172.30.50.5', 'dns2': '172.30.50.8', 'dns_domain': 'idm.nac-issa.org'}}) > skipping: [localhost] => (item={'key': 'ansible08', 'value': {'name': > 'ansible08', 'vmflavour': 'small_vm', 'type': 'small', 'site': 'Default', > 'cluster': 'Default', 'class': 'server', 'os': 'rhel_8x64', 'nic': 'eth0', > 'ip': '172.30.50.50', 'gw': '172.30.85.1', 'mask': '255.255.255.0', > 'system': 'ansible', 'fqdn': 'ansible08.idm.nac-issa.org', 'dns1': > '172.30.50.5', 'dns2': '172.30.50.8', 'dns_domain': 'idm.nac-issa.org'}}) > skipping: [localhost] => (item={'key': 'ansible09', 'value': {'name': > 'ansible09', 'vmflavour': 'small_vm', 'type': 'small', 'site': 'Default', > 'cluster': 'Default', 'class': 'server', 'os': 'rhel_8x64', 'nic': 'eth0', > 'ip': '172.30.50.50', 'gw': '172.30.90.1', 'mask': '255.255.255.0', > 'system': 'ansible', 'fqdn': 'ansible09.idm.nac-issa.org', 'dns1': > '172.30.50.5', 'dns2': '172.30.50.8', 'dns_domain': 'idm.nac-issa.org'}}) > skipping: [localhost] => (item={'key': 'ansible10', 'value': {'name': > 'ansible10', 'vmflavour': 'small_vm', 'type': 'small', 'site': 'Default', > 'cluster': 'Default', 'class': 'server', 'os': 'rhel_8x64', 'nic': 'eth0', > 'ip': '172.30.50.50', 'gw': '172.30.95.1', 'mask': '255.255.255.0', > 'system': 'ansible', 'fqdn': 'ansible01.idm.nac-issa.org', 'dns1': > '172.30.50.5', 'dns2': '172.30.50.8', 'dns_domain': 'idm.nac-issa.org'}}) > > PLAY RECAP > ********************************************************************************************************************************************************************************** > localhost : ok=7 changed=1 unreachable=0 > failed=0 skipped=3 rescued=0 ignored=1 > > > > -- > You received this message because you are subscribed to the Google Groups > "Ansible Project" group. > To unsubscribe from this group and stop receiving emails from it, send an > email to [email protected]. > To view this discussion on the web visit > https://groups.google.com/d/msgid/ansible-project/9237121a-028b-47c9-ab2d-1bfbc945256dn%40googlegroups.com > <https://groups.google.com/d/msgid/ansible-project/9237121a-028b-47c9-ab2d-1bfbc945256dn%40googlegroups.com?utm_medium=email&utm_source=footer> > . > -- Sent from a mobile device - please excuse the brevity, spelling and punctuation. -- You received this message because you are subscribed to the Google Groups "Ansible Project" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. To view this discussion on the web visit https://groups.google.com/d/msgid/ansible-project/CAL8fbwOsNP9yTB8-qcX9w-BO0%2B5_Sdd7UfNjj5j_A%2Bbp9RJMjg%40mail.gmail.com.
