I almost forgot. . .
It's generally unsafe to store credentials in cleartext on your hard drive,
so the documentation on the Ansible Vault
<http://docs.ansible.com/ansible/playbooks_vault.html> may also be of some
use to you.
On Wednesday, October 19, 2016 at 3:42:47 PM UTC-7, Alexander H. Laughlin
wrote:
>
> [duchess@cody:tmp] cat /etc/ansible/hosts
>
> [juniper]
>
> localhost
>
> Make sure you have localhost in the juniper group in your inventory.
>
> [duchess@cody:tmp] cat group_vars/juniper
>
> ---
>
> username: admin
>
> password: This is not a good password.
>
> ...
>
> And if you're going to use group variables you need to place them in the
> correct group.
>
> [duchess@cody:tmp] cat playbook.yml
>
> ---
> - name: Execute a show command on a junos device.
>
> hosts: juniper
>
> gather_facts: no
>
> connection: local
>
> tasks:
>
> - name: Define the provider.
>
> set_fact:
>
> hostinfo:
>
> host: "{{ inventory_hostname }}"
>
> password: "{{ password }}"
>
> username: "{{ username }}"
>
> - name: Output the hostname.
>
> debug:
>
> var: hostvars[inventory_hostname]
>
> # I don't have a junos device handy so I can't test this, but. . .
>
> #- name: show command
>
> # junos_command:
>
> # provider: "{{ hostinfo }}"
>
> # commands:
>
> # - show version
>
> # register: version
>
> #- name: Output the version.
>
> # debug:
>
> # var: version
>
> - name: Output the username and password from group_vars/juniper.
>
> debug:
>
> msg: "The username is {{ username }}. The password is '{{ password
> }}'."
>
> ...
>
> Please excuse the odd indentation, the code macro in Google Groups doesn't
> seem to like yaml very much.
>
> [duchess@cody:tmp] ansible-playbook playbook.yml
>
> PLAY [Execute a show command on a junos device.]
> *******************************
>
> TASK [Define the provider.]
> ****************************************************
>
> ok: [localhost]
>
> TASK [Output the hostname.]
> ****************************************************
>
> ok: [localhost] => {
>
> "hostvars[inventory_hostname]": {
>
> "ansible_check_mode": false,
>
> "ansible_version": {
>
> "full": "2.1.2.0",
>
> "major": 2,
>
> "minor": 1,
>
> "revision": 2,
>
> "string": "2.1.2.0"
>
> },
>
> "group_names": [
>
> "juniper"
>
> ],
>
> "groups": {
>
> "all": [
>
> "localhost"
>
> ],
>
> "juniper": [
>
> "localhost"
>
> ],
>
> "ungrouped": []
>
> },
>
> "hostinfo": {
>
> "host": "localhost",
>
> "password": "This is not a good password.",
>
> "username": "admin"
>
> },
>
> "inventory_dir": "/etc/ansible",
>
> "inventory_file": "/etc/ansible/hosts",
>
> "inventory_hostname": "localhost",
>
> "inventory_hostname_short": "localhost",
>
> "omit":
> "__omit_place_holder__fe3ea0370d6ef7ffad66e4a8a81c05821adcfe79",
>
> "password": "This is not a good password.",
>
> "playbook_dir": "/private/tmp",
>
> "username": "admin"
>
> }
>
> }
>
>
> TASK [Output the username and password from group_vars/juniper.]
> ***************
>
> ok: [localhost] => {
>
> "msg": "The username is admin. The password is 'This is not a good
> password.'."
>
> }
>
>
> PLAY RECAP
> *********************************************************************
>
> localhost : ok=3 changed=0 unreachable=0 failed=
> 0
>
> As you can see the username and password are now readily available.
>
> I should like to suggest that you take some time to review the
> documentation on inventory
> <http://docs.ansible.com/ansible/intro_inventory.html> and variables
> <http://docs.ansible.com/ansible/playbooks_variables.html>.
>
> Also, if you would be so kind as to review the community guidelines
> <http://docs.ansible.com/ansible/community.html> and follow them a bit
> more closely in the future I believe everyone would benefit.
>
> Good luck!
>
>
> On Wednesday, October 19, 2016 at 8:07:24 AM UTC-7, RK wrote:
>>
>> I have a pretty easy playbook to connect to a Juniper switch and provide
>> me the show version output. All works when I place the username and
>> password into the playbook no problem. What I would prefer to do is set the
>> username and password in group_vars/all and have the username and password
>> read from there. Any tips? I can't seem to get this going. I think I may
>> need to pass along a hostvars but can't seem to figure it out.
>>
>> playbook:
>>
>> - hosts: juniper
>> gather_facts: no
>> connection: local
>>
>> tasks:
>> - name: DEFINE PROVIDER
>> set_fact:
>> hostinfo:
>> host: "{{ inventory_hostname }}"
>> password: xxxxx
>> username: admin
>> - debug: var=hostvars[inventory_hostname]
>> - name: show command
>> junos_command:
>> provider: "{{ hostinfo }}"
>> commands:
>> - show version
>> register: version
>> - debug: msg="{{ version.stdout }}"
>>
>> group_vars/all
>> username=admin
>> password=xxxxxx
>>
>>
--
--
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 post to this group, send email to [email protected].
To view this discussion on the web visit
https://groups.google.com/d/msgid/ansible-project/871ca0bd-997b-4b75-8a8a-8a20fda9fe52%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.