Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.


https://hub.docker.com/r/juniper/pyez-ansible/

...



Start by clicking on the docker icon ( windows ) 

search for available containerdocker 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
titlehosts
collapsetrue
[vMX]
192.168.99.11


and create playbook.yml 

vi playbook.yml

Code Block
titleplaybook.yml
collapsetrue
---
- 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
titlelist roles
collapsetrue
/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
titlecheck netconfig
collapsetrue
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














...