summaryrefslogtreecommitdiff
path: root/docs/automation
diff options
context:
space:
mode:
Diffstat (limited to 'docs/automation')
-rw-r--r--docs/automation/cloud-init.rst7
-rw-r--r--docs/automation/command-scripting.rst12
-rw-r--r--docs/automation/index.rst3
-rw-r--r--docs/automation/vyos-ansible.rst2
-rw-r--r--docs/automation/vyos-api.rst20
-rw-r--r--docs/automation/vyos-napalm.rst2
-rw-r--r--docs/automation/vyos-netmiko.rst2
-rw-r--r--docs/automation/vyos-salt.rst216
8 files changed, 250 insertions, 14 deletions
diff --git a/docs/automation/cloud-init.rst b/docs/automation/cloud-init.rst
index 7d0cc036..2fa102b1 100644
--- a/docs/automation/cloud-init.rst
+++ b/docs/automation/cloud-init.rst
@@ -50,7 +50,7 @@ In VyOS, by default, enables only two modules:
* ``write_files`` - this module allows to insert any files into the filesystem
before the first boot, for example, pre-generated encryption keys,
- certificates, or even a whole ``config.boot`` file.
+ certificates, or even a whole ``config.boot`` file. The format is described in the cloudinit documentation `Cloud-init-write_files`_.
* ``vyos_userdata`` - the module accepts a list of CLI configuration commands in
a ``vyos_config_commands`` section, which gives an easy way to configure the
@@ -267,7 +267,7 @@ Most important keys that needs to be considered:
Generate qcow image
-------------------
-A VyOS qcow image with cloud-init options is needed. This can be obteined
+A VyOS qcow image with cloud-init options is needed. This can be obtained
using `vyos-vm-images`_ repo. After clonning the repo, edit the file
**qemu.yml** and comment the **download-iso** role.
@@ -427,5 +427,6 @@ References
.. _vyos-vm-images: https://github.com/vyos/vyos-vm-images
.. _cloud-init-docs: https://docs.vyos.io/en/equuleus/automation/cloud-init.html?highlight=cloud-init#vyos-cloud-init
.. _Cloud-init-Support: https://pve.proxmox.com/pve-docs/pve-admin-guide.html#qm_cloud_init
+.. _Cloud-init-write_files: https://cloudinit.readthedocs.io/en/latest/topics/examples.html#writing-out-arbitrary-files
-.. start_vyoslinter \ No newline at end of file
+.. start_vyoslinter
diff --git a/docs/automation/command-scripting.rst b/docs/automation/command-scripting.rst
index 7cf31232..64564e5a 100644
--- a/docs/automation/command-scripting.rst
+++ b/docs/automation/command-scripting.rst
@@ -1,4 +1,4 @@
-:lastproofread: 2021-06-27
+:lastproofread: 2023-01-16
.. _command-scripting:
@@ -28,7 +28,7 @@ example, if you want to disable a BGP peer on VRRP transition to backup:
#!/bin/vbash
source /opt/vyatta/etc/functions/script-template
configure
- set protocols bgp local-as 65536
+ set protocols bgp system-as 65536
set protocols bgp neighbor 192.168.2.1 shutdown
commit
exit
@@ -83,10 +83,10 @@ Here is a simple example:
.. code-block:: python
- #!/usr/bin/env python
- print "delete firewall group address-group somehosts"
- print "set firewall group address-group somehosts address '192.0.2.3'"
- print "set firewall group address-group somehosts address '203.0.113.55'"
+ #!/usr/bin/env python3
+ print("delete firewall group address-group somehosts")
+ print("set firewall group address-group somehosts address '192.0.2.3'")
+ print("set firewall group address-group somehosts address '203.0.113.55'")
.. code-block:: none
diff --git a/docs/automation/index.rst b/docs/automation/index.rst
index f9049c48..dd7b596a 100644
--- a/docs/automation/index.rst
+++ b/docs/automation/index.rst
@@ -3,7 +3,7 @@ VyOS Automation
###############
- * Saltstack
+ * Nornir
* startup scripts
@@ -14,5 +14,6 @@ VyOS Automation
vyos-ansible
vyos-napalm
vyos-netmiko
+ vyos-salt
command-scripting
cloud-init
diff --git a/docs/automation/vyos-ansible.rst b/docs/automation/vyos-ansible.rst
index e02d06a9..0ebcb924 100644
--- a/docs/automation/vyos-ansible.rst
+++ b/docs/automation/vyos-ansible.rst
@@ -1,4 +1,4 @@
-:lastproofread: 2021-06-28
+:lastproofread: 2023-01-16
.. _vyos-ansible:
diff --git a/docs/automation/vyos-api.rst b/docs/automation/vyos-api.rst
index 8bc33d53..efd00dd8 100644
--- a/docs/automation/vyos-api.rst
+++ b/docs/automation/vyos-api.rst
@@ -1,4 +1,4 @@
-:lastproofread: 2021-06-28
+:lastproofread: 2023-01-16
.. _vyosapi:
@@ -125,6 +125,24 @@ For example, get the addresses of a ``dum0`` interface.
"error": null
}
+/reset
+======
+
+The ``reset`` endpoint run a ``reset`` command.
+
+.. code-block:: none
+
+ curl --location --request POST 'https://vyos/reset' \
+ --form data='{"op": "reset", "path": ["ip", "bgp", "192.0.2.11"]}' \
+ --form key='MY-HTTPS-API-PLAINTEXT-KEY'
+
+ respone:
+ {
+ "success": true,
+ "data": "",
+ "error": null
+ }
+
/image
======
diff --git a/docs/automation/vyos-napalm.rst b/docs/automation/vyos-napalm.rst
index 5ff7c01f..75e20b3c 100644
--- a/docs/automation/vyos-napalm.rst
+++ b/docs/automation/vyos-napalm.rst
@@ -1,4 +1,4 @@
-:lastproofread: 2021-06-28
+:lastproofread: 2023-01-16
.. _vyos-napalm:
diff --git a/docs/automation/vyos-netmiko.rst b/docs/automation/vyos-netmiko.rst
index 3627e5c3..e57e0c78 100644
--- a/docs/automation/vyos-netmiko.rst
+++ b/docs/automation/vyos-netmiko.rst
@@ -1,4 +1,4 @@
-:lastproofread: 2021-06-28
+:lastproofread: 2023-01-16
.. _vyos-netmiko:
diff --git a/docs/automation/vyos-salt.rst b/docs/automation/vyos-salt.rst
new file mode 100644
index 00000000..12be32a1
--- /dev/null
+++ b/docs/automation/vyos-salt.rst
@@ -0,0 +1,216 @@
+:lastproofread: 2023-01-16
+
+.. _vyos-salt:
+
+.. include:: /_include/need_improvement.txt
+
+Salt
+====
+
+VyOS supports op-mode and configuration via salt_.
+
+Without proxy it requires VyOS minion configuration
+and supports op-mode data:
+
+.. code-block:: none
+
+ set service salt-minion id 'r14'
+ set service salt-minion master '192.0.2.250'
+
+Check salt-keys on the salt master
+
+.. code-block:: none
+
+ / # salt-key --list-all
+ Accepted Keys:
+ r11
+ Denied Keys:
+ Unaccepted Keys:
+ r14
+ Rejected Keys:
+
+Accept minion key
+
+.. code-block:: none
+
+ / # salt-key --accept r14
+ The following keys are going to be accepted:
+ Unaccepted Keys:
+ r14
+ Proceed? [n/Y] y
+ Key for minion r14 accepted.
+
+
+
+Check that salt master can communicate with minions
+
+.. code-block:: none
+
+ / # salt '*' test.ping
+ r14:
+ True
+ r11:
+ True
+
+At this step we can get some op-mode information from VyOS nodes:
+
+.. code-block:: none
+
+ / # salt '*' network.interface eth0
+ r11:
+ |_
+ ----------
+ address:
+ 192.0.2.11
+ broadcast:
+ 192.0.2.255
+ label:
+ eth0
+ netmask:
+ 255.255.255.0
+ r14:
+ |_
+ ----------
+ address:
+ 192.0.2.14
+ broadcast:
+ 192.0.2.255
+ label:
+ eth0
+ netmask:
+ 255.255.255.0
+
+
+ / # salt r14 network.arp
+ r14:
+ ----------
+ aa:bb:cc:dd:f3:db:
+ 192.0.2.1
+ aa:bb:cc:dd:2e:80:
+ 203.0.113.1
+
+
+
+
+Netmiko-proxy
+-------------
+
+It is possible to configure VyOS via netmiko_ proxy module.
+It requires a minion with installed packet ``python3-netmiko`` module
+who has a connection to VyOS nodes. Salt-minion have to communicate
+with salt master
+
+Configuration
+^^^^^^^^^^^^^
+
+Salt master configuration:
+
+.. code-block:: none
+
+ / # cat /etc/salt/master
+ file_roots:
+ base:
+ - /srv/salt/states
+
+ pillar_roots:
+ base:
+ - /srv/salt/pillars
+
+Structure of /srv/salt:
+
+.. code-block:: none
+
+ / # tree /srv/salt/
+ /srv/salt/
+ |___ pillars
+ | |__ r11-proxy.sls
+ | |__ top.sls
+ |___ states
+ |__ commands.txt
+
+top.sls
+
+.. code-block:: none
+
+ / # cat /srv/salt/pillars/top.sls
+ base:
+ r11-proxy:
+ - r11-proxy
+
+
+r11-proxy.sls Includes parameters for connecting to salt-proxy minion
+
+.. code-block:: none
+
+ / # cat /srv/salt/pillars/r11-proxy.sls
+ proxy:
+ proxytype: netmiko # how to connect to proxy minion, change it
+ device_type: vyos #
+ host: 192.0.2.250
+ username: user
+ password: secret_passwd
+
+commands.txt
+
+.. code-block:: none
+
+ / # cat /srv/salt/states/commands.txt
+ set interfaces ethernet eth0 description 'WAN'
+ set interfaces ethernet eth1 description 'LAN'
+
+Check that proxy minion is alive:
+
+.. code-block:: none
+
+ / # salt r11-proxy test.ping
+ r11-proxy:
+ True
+ / #
+
+Examples
+^^^^^^^^
+
+Example of op-mode:
+
+.. code-block:: none
+
+ / # salt r11-proxy netmiko.send_command 'show interfaces ethernet eth0 brief' host=192.0.2.14 device_type=vyos username=vyos password=vyos
+ r11-proxy:
+ Codes: S - State, L - Link, u - Up, D - Down, A - Admin Down
+ Interface IP Address S/L Description
+ --------- ---------- --- -----------
+ eth0 192.0.2.14/24 u/u Upstream
+ / #
+
+Example of configuration:
+
+.. code-block:: none
+
+ / # salt r11-proxy netmiko.send_config config_commands=['set interfaces ethernet eth0 description Link_to_WAN'] commit=True host=192.0.2.14 device_type=vyos username=vyos password=vyos
+ r11-proxy:
+ configure
+ set interfaces ethernet eth0 description Link_to_WAN
+ [edit]
+ vyos@r14# commit
+ [edit]
+ vyos@r14#
+ / #
+
+Example of configuration commands from the file "/srv/salt/states/commands.txt"
+
+.. code-block:: none
+
+ / # salt r11-proxy netmiko.send_config config_file=salt://commands.txt commit=True host=192.0.2.11 device_type=vyos username=vyos password=vyos
+ r11-proxy:
+ configure
+ set interfaces ethernet eth0 description 'WAN'
+ [edit]
+ vyos@r1# set interfaces ethernet eth1 description 'LAN'
+ [edit]
+ vyos@r1# commit
+ [edit]
+ vyos@r1#
+ / #
+
+.. _salt: https://docs.saltproject.io/en/latest/contents.html
+.. _netmiko: https://docs.saltproject.io/en/latest/ref/modules/all/salt.modules.netmiko_mod.html#module-salt.modules.netmiko_mod \ No newline at end of file