https://hub.docker.com/r/juniper/pyez-ansible/
...
|
|
---|
Start by clicking on the docker icon ( windows ) | |
search for available container | docker search juniper |
pull the image ( optional) | docker pull juniper/pyez-ansible
docker images
|
Create an directory ( on the windows host ) +
| mkdir facts_playbooks cd facts_playbook/
|
and create the hosts | vi hosts Code Block |
---|
| [vMX]
192.168.99.11 |
|
and create playbook.yml | vi playbook.yml Code Block |
---|
title | playbook.yml |
---|
collapse | true |
---|
| ---
- name: Get facts
hosts: vMX
connection: local
gather_facts: no
roles:
- Juniper.junos
#vars_prompt:
#- name: ADMUSER
# prompt: Username
# private: no
#- name: ADMPASS
# prompt: password
# private: yes
tasks:
- name: Get junos facts
junos_get_facts:
#host: "{{ inventory_hostname }}"
host: vMX
#user: "{{ ADMUSER }}"
user: "ansible"
#passwd: "{{ ADMPASS }}"
passwd: "ansible123"
register: junos
- name: Print facts
debug:
var: junos |
|
|
|
Start the container: |
cd ~/Documents/ansiblescript/facts_playbook
docker run -it --rm -v $PWD:/project juniper/pyez-ansible ash
-it --rm -v $PWD is the host directory :/project is the container directory juniper/pyez-ansible is the docker image
### see below, with mounted folder ###
docker run -it --rm -v $PWD:/project juniper/pyez-ansible ash
docker run -it --rm juniper/pyez-ansible ash
|
Juniper.junos role is hosted on the Ansible Galaxy website
install module | ansible-galaxy install Juniper.junos
ansible-galaxy list -p roles
Code Block |
---|
title | list roles |
---|
collapse | true |
---|
| /project # ansible-galaxy list -p roles
# /root/.ansible/roles
- Juniper.junos, 2.3.2
# /etc/ansible/roles
- Juniper.junos, (unknown version)
[WARNING]: - the configured path /project/roles does not exist.
[WARNING]: - the configured path /usr/share/ansible/roles does not exist.
/project # |
|
Basic test with hosts & playbook.yml file: | cd project ansible-playbook -i hosts playbook.yml
|
|
|
|
|
Basic check netconfig | ansible-playbook -i hosts chk_netconf.yml -k -u Netbox
Code Block |
---|
title | check netconfig |
---|
collapse | true |
---|
| more chk_netconf.yml
---
- name: Get Device Facts
hosts: All-srx
roles:
- Juniper.junos
connection: local
gather_facts: no
tasks:
- name: Checking NETCONF connectivity
wait_for:
host: "{{ inventory_hostname }}"
port: 830
timeout: 5
- name: Retrieving information from devices running Junos OS
juniper_junos_facts:
host: "{{ inventory_hostname }}"
- name: Print version
debug:
var: junos.version
|
|
|
|
|
|
|
|
|
|
|
|
|
|
...