diff options
Diffstat (limited to 'docs/automation')
-rw-r--r-- | docs/automation/cloud-init.rst | 28 | ||||
-rw-r--r-- | docs/automation/command-scripting.rst | 69 | ||||
-rw-r--r-- | docs/automation/vyos-ansible.rst | 2 | ||||
-rw-r--r-- | docs/automation/vyos-api.rst | 21 |
4 files changed, 92 insertions, 28 deletions
diff --git a/docs/automation/cloud-init.rst b/docs/automation/cloud-init.rst index be585321..7b2d53fb 100644 --- a/docs/automation/cloud-init.rst +++ b/docs/automation/cloud-init.rst @@ -1,29 +1,31 @@ -.. _cloud-init: +:lastproofread: 2021-06-27 + +. _cloud-init: ############### VyOS cloud-init ############### -Cloud instances of VyOS are initialized using the industry-standard cloud-init. -Via cloud-init, the system performs tasks such as injecting SSH keys and -configuring the network. In addition, the user can supply a custom +Cloud instances of VyOS are initialized using the industry-standard +cloud-init. Via cloud-init, the system performs tasks such as injecting +SSH keys and configuring the network. In addition, the user can supply a custom configuration at the time of instance launch. ************** Config Sources ************** -VyOS support three type of config sources. - -.. stop_vyoslinter - -* Metadata - Metadata is sourced by the cloud platform or hypervisor. In some clouds, there is implemented as an HTTP endpoint at http://169.254.169.254. +VyOS support three types of config sources. -* Network configuration - Ths config source informs the system about the network. +* Metadata - Metadata is sourced by the cloud platform or hypervisor. + In some clouds, there is implemented as an HTTP endpoint at + http://169.254.169.254. -* User-data - User-data is specified by the user. This config source offers the most flexibility and will be the focus of this documentation. +* Network configuration - This config source informs the system about the + network. -.. start_vyoslinter +* User-data - User-data is specified by the user. This config source offers the + most flexibility and will be the focus of this documentation. ********* @@ -86,7 +88,7 @@ These are the VyOS defaults and fallbacks. * DHCP on first Ethernet interface if no network configuration is provided -All of these can be overridden using configuration in user-data. +All of these can be overridden using the configuration in user-data. *************** diff --git a/docs/automation/command-scripting.rst b/docs/automation/command-scripting.rst index 6bc6690c..14f2edfa 100644 --- a/docs/automation/command-scripting.rst +++ b/docs/automation/command-scripting.rst @@ -1,3 +1,5 @@ +:lastproofread: 2021-06-27 + .. _command-scripting: Command Scripting @@ -34,7 +36,7 @@ example, if you want to disable a BGP peer on VRRP transition to backup: Run operational commands ------------------------ -Unlike a normal configuration sessions, all operational commands must be +Unlike a normal configuration session, all operational commands must be prepended with ``run``, even if you haven't created a session with configure. .. code-block:: none @@ -44,8 +46,8 @@ prepended with ``run``, even if you haven't created a session with configure. run show interfaces exit -Other script language ---------------------- +Other script languages +---------------------- If you want to script the configs in a language other than bash you can have your script output commands and then source them in a bash script. @@ -105,14 +107,71 @@ group, the script can be safeguarded like this: exec sg vyattacfg -c "/bin/vbash $(readlink -f $0) $@" fi +Executing pre-hooks/post-hooks Scripts +-------------------------------------- + +VyOS has the ability to run custom scripts before and after each commit + +The default directories where your custom Scripts should be located are: + +.. code-block:: none + + /config/scripts/commit/pre-hooks.d - Directory with scripts that run before + each commit. + + /config/scripts/commit/post-hooks.d - Directory with scripts that run after + each commit. + +Scripts are run in alphabetical order. Their names must consist entirely of +ASCII upper- and lower-case letters,ASCII digits, ASCII underscores, and +ASCII minus-hyphens.No other characters are allowed. + +.. note:: Custom scripts are not executed with root privileges + (Use sudo inside if this is necessary). + +A simple example is shown below, where the ops command executed in +the post-hook script is "show interfaces". + +.. code-block:: none + + vyos@vyos# set interfaces ethernet eth1 address 192.0.2.3/24 + vyos@vyos# commit + Codes: S - State, L - Link, u - Up, D - Down, A - Admin Down + Interface IP Address S/L Description + --------- ---------- --- ----------- + eth0 198.51.100.10/24 u/u + eth1 192.0.2.3/24 u/u + eth2 - u/u + eth3 - u/u + lo 203.0.113.5/24 u/u + +Preconfig on boot +----------------- + +The ``/config/scripts/vyos-preconfig-bootup.script`` script is called on boot +before the VyOS configuration during boot process. + +Any modifications were done to work around unfixed bugs and implement +enhancements that are not complete in the VyOS system can be placed here. + +The default file looks like this: + +.. code-block:: none + + #!/bin/sh + # This script is executed at boot time before VyOS configuration is applied. + # Any modifications required to work around unfixed bugs or use + # services not available through the VyOS CLI system can be placed here. + + Postconfig on boot ------------------ The ``/config/scripts/vyos-postconfig-bootup.script`` script is called on boot after the VyOS configuration is fully applied. -Any modifications done to work around unfixed bugs and implement enhancements -which are not complete in the VyOS system can be placed here. +Any modifications were done to work around unfixed bugs and implement +enhancements that are not complete in the VyOS system can be placed here. The default file looks like this: diff --git a/docs/automation/vyos-ansible.rst b/docs/automation/vyos-ansible.rst index a199152f..e02d06a9 100644 --- a/docs/automation/vyos-ansible.rst +++ b/docs/automation/vyos-ansible.rst @@ -1,3 +1,5 @@ +:lastproofread: 2021-06-28 + .. _vyos-ansible: Ansible diff --git a/docs/automation/vyos-api.rst b/docs/automation/vyos-api.rst index 988ff010..27655483 100644 --- a/docs/automation/vyos-api.rst +++ b/docs/automation/vyos-api.rst @@ -1,3 +1,5 @@ +:lastproofread: 2021-06-28 + .. _vyosapi: ######## @@ -10,11 +12,11 @@ For configuration and enabling the API see :ref:`http-api` Authentication ************** -All Endpoint only listen on HTTP POST requests and the API KEY must set as +All endpoints only listen on HTTP POST requests and the API KEY must set as ``key`` in the formdata. Below see one example for curl and one for python. -In the following, the documentation is reduced to curl. +The rest of the documentation is reduced to curl. .. code-block:: none @@ -74,8 +76,7 @@ To get the whole configuration, pass an empty list to the ``path`` field } -only get a part of the configuration, -for example ``system syslog``. +To only get a part of the configuration, for example ``system syslog``. .. code-block:: none @@ -105,7 +106,7 @@ for example ``system syslog``. if you just want the Value of a multi-valued node, use the ``returnValues`` operation. -for example get the addresses of a ``dum0`` interface +For example, get the addresses of a ``dum0`` interface. .. code-block:: none @@ -165,9 +166,9 @@ delete an image, for example ``1.3-rolling-202006070117`` /show ===== -The ``/show`` endpoint is to show everthing in operational mode +The ``/show`` endpoint is to show everything in the operational mode. -for example which images are installed +For example, show which images are installed. .. code-block:: none @@ -189,7 +190,7 @@ for example which images are installed /generate ========= -to run a ``generate`` command use the +THe ``generate`` endpoint run a ``generate`` command. .. code-block:: none @@ -242,10 +243,10 @@ You can pass a ``set``, ``delete`` or ``comment`` command to the "error": null } -The API push every request to a session and commit it. +The API pushes every request to a session and commit it. But some of VyOS components like DHCP and PPPoE Servers, IPSec, VXLAN, and other tunnels require full configuration for commit. -The Endpoint will process multiple commands when you pass them as a list to +The endpoint will process multiple commands when you pass them as a list to the ``data`` field. .. code-block:: none |