Ansible
VyOS supports configuration via ansible.
Need to install ansible
and python3-paramiko
module
Structure of files
.
├── ansible.cfg
├── files
│ └── id_rsa_docker.pub
├── hosts
└── main.yml
File contents
ansible.cfg
[defaults]
host_key_checking = no
retry_files_enabled = False
ANSIBLE_INVENTORY_UNPARSED_FAILED = true
id_rsa_docker.pub. Needs to declare only public key exactly.
AAAAB3NzaC1yc2EAAAADAQABAAABAQCoDgfhQJuJRFWJijHn7ZinZ3NWp4hWVrt7HFcvn0kgtP/5PeCtMt
hosts
[vyos_hosts]
r11 ansible_ssh_host=192.0.2.11
[vyos_hosts:vars]
ansible_python_interpreter=/usr/bin/python3
ansible_user=vyos
ansible_ssh_pass=vyos
ansible_network_os=vyos
ansible_connection=network_cli
main.yml
---
- hosts: r11
connection: network_cli
gather_facts: 'no'
tasks:
- name: Configure remote r11
vyos_config:
lines:
- set system host-name r11
- set system name-server 203.0.113.254
- set service ssh disable-host-validation
- set system login user vyos authentication public-keys docker@work type ssh-rsa
- set system login user vyos authentication public-keys docker@work key "{{ lookup('file', 'id_rsa_docker.pub') }}"
- set system time-zone America/Los_Angeles
- set interfaces ethernet eth0 description WAN
Run ansible
$ ansible-playbook -i hosts main.yml
PLAY [r11] ******************************************************************************************************************************************************************************************************
TASK [Configure remote r11] *************************************************************************************************************************************************************************************
changed: [r11]
PLAY RECAP *****************************************************************************************************************************************************************************************************
r11 : ok=1 changed=1 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0