summaryrefslogtreecommitdiff
path: root/docs/automation/command-scripting.rst
diff options
context:
space:
mode:
Diffstat (limited to 'docs/automation/command-scripting.rst')
-rw-r--r--docs/automation/command-scripting.rst69
1 files changed, 64 insertions, 5 deletions
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: