commandscripting: fix "make latexpdf" errors

This commit is contained in:
Christian Poessinger 2019-11-23 17:51:10 +01:00
parent c8c81a6807
commit a9c488dcbf

View File

@ -1,59 +1,53 @@
.. _commandscripting: .. _commandscripting:
Command scripting Command scripting
================= =================
VyOS supports executing configuration and operational commands non-interactively from shell scripts. VyOS supports executing configuration and operational commands non-interactively
from shell scripts.
To include VyOS-specific functions and aliases you need to ``source /opt/vyatta/etc/functions/script-template`` files at the top of your script. To include VyOS specific functions and aliases you need to ``source
/opt/vyatta/etc/functions/script-template`` files at the top of your script.
.. code-block:: sh .. code-block:: sh
#!/bin/vbash #!/bin/vbash
source /opt/vyatta/etc/functions/script-template source /opt/vyatta/etc/functions/script-template
exit exit
Run configuration commands Run configuration commands
-------------------------- --------------------------
Configuration commands are executed just like from a normal config session. Configuration commands are executed just like from a normal config session. For
example, if you want to disable a BGP peer on VRRP transition to backup:
For example, if you want to disable a BGP peer on VRRP transition to backup:
.. code-block:: sh .. code-block:: sh
#!/bin/vbash #!/bin/vbash
source /opt/vyatta/etc/functions/script-template source /opt/vyatta/etc/functions/script-template
configure configure
set protocols bgp 65536 neighbor 192.168.2.1 shutdown set protocols bgp 65536 neighbor 192.168.2.1 shutdown
commit commit
exit exit
Run operational commands Run operational commands
------------------------ ------------------------
Unlike a normal configuration sessions, all operational commands must be prepended with ``run``, even if you haven't created a session with configure. Unlike a normal configuration sessions, all operational commands must be
prepended with ``run``, even if you haven't created a session with configure.
.. code-block:: sh .. code-block:: sh
#!/bin/vbash #!/bin/vbash
source /opt/vyatta/etc/functions/script-template source /opt/vyatta/etc/functions/script-template
run show interfaces run show interfaces
exit exit
Other script language Other script language
--------------------- ---------------------
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. 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.
Here is a simple example: Here is a simple example:
@ -69,18 +63,21 @@ Here is a simple example:
#!/bin/vbash #!/bin/vbash
source /opt/vyatta/etc/functions/script-template source /opt/vyatta/etc/functions/script-template
configure configure
source <(/config/scripts/setfirewallgroup.py) source < /config/scripts/setfirewallgroup.py
commit commit
Executing Configuration Scripts Executing Configuration Scripts
------------------------------- -------------------------------
There is a pitfall when working with configuration scripts. It is tempting to call configuration scripts with "sudo" (i.e., temporary root permissions), because that's the common way on most Linux platforms to call system commands. There is a pitfall when working with configuration scripts. It is tempting to
call configuration scripts with "sudo" (i.e., temporary root permissions),
because that's the common way on most Linux platforms to call system commands.
On VyOS this will cause the following problem: After modifying the configuration via script like this once, it is not possible to manually modify the config anymore: On VyOS this will cause the following problem: After modifying the configuration
via script like this once, it is not possible to manually modify the config
anymore:
.. code-block:: sh .. code-block:: sh
@ -88,17 +85,18 @@ On VyOS this will cause the following problem: After modifying the configuration
configure configure
set ... # Any configuration parameter set ... # Any configuration parameter
| This will result in the following error message: ``Set failed`` This will result in the following error message: ``Set failed`` If this happens,
| If this happens, a reboot is required to be able to edit the config manually again. a reboot is required to be able to edit the config manually again.
To avoid these problems, the proper way is to call a script with the ``vyattacfg`` group, e.g., by using the ``sg`` (switch group) command: To avoid these problems, the proper way is to call a script with the
``vyattacfg`` group, e.g., by using the ``sg`` (switch group) command:
.. code-block:: sh .. code-block:: sh
sg vyattacfg -c ./myscript.sh sg vyattacfg -c ./myscript.sh
To make sure that a script is not accidentally called without the ``vyattacfg``
To make sure that a script is not accidentally called without the ``vyattacfg`` group, the script can be safeguarded like this: group, the script can be safeguarded like this:
.. code-block:: sh .. code-block:: sh
@ -109,18 +107,21 @@ To make sure that a script is not accidentally called without the ``vyattacfg``
Postconfig on boot Postconfig on boot
------------------ ------------------
The ``/config/scripts/vyos-postconfig-bootup.script`` script is called on boot after the VyOS configuration is fully applied. 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 done to work around unfixed bugs and implement enhancements
which are not complete in the VyOS system can be placed here.
The default file looks like this: The default file looks like this:
.. code-block:: sh .. code-block:: sh
#!/bin/sh #!/bin/sh
# This script is executed at boot time after VyOS configuration is fully applied. # This script is executed at boot time after VyOS configuration is fully
# Any modifications required to work around unfixed bugs # applied. Any modifications required to work around unfixed bugs or use
# or use services not available through the VyOS CLI system can be placed here. # services not available through the VyOS CLI system can be placed here.
.. hint:: .. hint:: For configuration/upgrade management issues, modification of this
For configuration/upgrade management issues, modification of this script should be the last option. Always try to find solutions based on CLI commands first. script should be the last option. Always try to find solutions based on CLI
commands first.