mirror of
https://github.com/vyos/vyos-documentation.git
synced 2025-10-26 08:41:46 +01:00
476 lines
14 KiB
ReStructuredText
476 lines
14 KiB
ReStructuredText
.. _configuration-overview:
|
|
|
|
######################
|
|
Configuration Overview
|
|
######################
|
|
|
|
VyOS makes use of a unified configuration file for the entire systems
|
|
configuration: ``/config/config.boot``. This allows easy template creation,
|
|
backup, and replication of system configuration. A sytem can thus also be
|
|
easily cloned by simply copying the required configuration files.
|
|
|
|
Terminology
|
|
===========
|
|
|
|
A VyOS system has three major types of configurations:
|
|
|
|
* **Active/Running** configuration is the system configuration that is loaded
|
|
and currently active (used by VyOS). Any change in the configuration will
|
|
have to be committed to belong to the active/running configuration.
|
|
|
|
* **Working** - is the configuration which is currently being modified in
|
|
configuration mode. Changes made to the working configuration do not go into
|
|
effect until the changes are committed with the :cfgcmd:`commit` command. At
|
|
which time the working configuration will become the active or running
|
|
configuration.
|
|
|
|
* **Saved** - is a configuration saved to a file using the :cfgcmd:`save`
|
|
command. It allows you to keep safe a configuration for future uses. There
|
|
can be multiple configuration files. The default or "boot" configuration is
|
|
saved and loaded from the file ``/config/config.boot``.
|
|
|
|
Work the Config
|
|
===============
|
|
|
|
.. opcmd:: show configuration
|
|
|
|
View the current active configuration, also known as the running
|
|
configuration.
|
|
|
|
.. code-block:: none
|
|
|
|
vyos@vyos:~$ show configuration
|
|
interfaces {
|
|
ethernet eth0 {
|
|
address dhcp
|
|
hw-id 00:53:00:00:aa:01
|
|
}
|
|
loopback lo {
|
|
}
|
|
}
|
|
service {
|
|
ssh {
|
|
port 22
|
|
}
|
|
}
|
|
system {
|
|
config-management {
|
|
commit-revisions 20
|
|
}
|
|
console {
|
|
device ttyS0 {
|
|
speed 9600
|
|
}
|
|
}
|
|
login {
|
|
user vyos {
|
|
authentication {
|
|
encrypted-password ****************
|
|
}
|
|
level admin
|
|
}
|
|
}
|
|
ntp {
|
|
server 0.pool.ntp.org {
|
|
}
|
|
server 1.pool.ntp.org {
|
|
}
|
|
server 2.pool.ntp.org {
|
|
}
|
|
}
|
|
syslog {
|
|
global {
|
|
facility all {
|
|
level notice
|
|
}
|
|
facility protocols {
|
|
level debug
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
By default, the configuration is displayed in a hierarchy like the above
|
|
example, this is only one of the possible ways to display the configuration.
|
|
When the configuration is generated and the device is configured, changes are
|
|
added through a collection of :cfgcmd:`set` and :cfgcmd:`delete` commands.
|
|
|
|
.. opcmd:: show configuration commands
|
|
|
|
Get a collection of all the set commands required which led to this
|
|
running configuration.
|
|
|
|
.. code-block:: none
|
|
|
|
vyos@vyos:~$ show configuration commands
|
|
set interfaces ethernet eth0 address 'dhcp'
|
|
set interfaces ethernet eth0 hw-id '00:53:dd:44:3b:0f'
|
|
set interfaces loopback 'lo'
|
|
set service ssh port '22'
|
|
set system config-management commit-revisions '20'
|
|
set system console device ttyS0 speed '9600'
|
|
set system login user vyos authentication encrypted-password '$6$Vt68...QzF0'
|
|
set system login user vyos level 'admin'
|
|
set system ntp server '0.pool.ntp.org'
|
|
set system ntp server '1.pool.ntp.org'
|
|
set system ntp server '2.pool.ntp.org'
|
|
set system syslog global facility all level 'notice'
|
|
set system syslog global facility protocols level 'debug'
|
|
|
|
Both these commands should be executed when in operational mode, they do not
|
|
work directly in configuration mode. The is a special way on how to
|
|
:ref:`run_opmode_from_config_mode`.
|
|
|
|
Navigating
|
|
==========
|
|
|
|
When entering the configuration mode you are navigating inside the tree
|
|
structure exported in the overview above, to enter configuration mode enter
|
|
the command :opcmd:`configure` when in operational mode.
|
|
|
|
.. code-block:: none
|
|
|
|
vyos@vyos$ configure
|
|
[edit]
|
|
vyos@vyos#
|
|
|
|
All commands executed here are relative to the configuration level you have
|
|
entered. You can do everything from the top level, but commands will be quite
|
|
lengthy when manually typing them.
|
|
|
|
The current hierarchy level can be changed by the :cfgcmd:`edit` command.
|
|
|
|
.. code-block:: none
|
|
|
|
[edit]
|
|
vyos@vyos# edit interfaces ethernet eth0
|
|
|
|
[edit interfaces ethernet eth0]
|
|
vyos@vyos#
|
|
|
|
You are now in a sublevel relative to ``interfaces ethernet eth0``, all
|
|
commands executed from this point on are relative to this sublevel. Use either
|
|
the :cfgcmd:`top` or :cfgcmd:`exit` command to go back to the top of the
|
|
hierarchy. You can also use the :cfgcmd:`up` command to move only one level up
|
|
at a time.
|
|
|
|
The :cfgcmd:`show` command within configuration mode will show the working
|
|
configuration indicating line changes with ``+`` for additions, ``>`` for
|
|
replacements and ``-`` for deletions.
|
|
|
|
.. note:: When going into configuration mode, prompt changes from
|
|
``$`` to ``#``.
|
|
|
|
**Example:**
|
|
|
|
.. code-block:: none
|
|
|
|
vyos@vyos:~$ configure
|
|
[edit]
|
|
vyos@vyos# show interfaces
|
|
ethernet eth0 {
|
|
description MY_OLD_DESCRIPTION
|
|
disable
|
|
hw-id 00:53:dd:44:3b:03
|
|
}
|
|
loopback lo {
|
|
}
|
|
[edit]
|
|
vyos@vyos# set interfaces ethernet eth0 address dhcp
|
|
[edit]
|
|
vyos@vyos# set interfaces ethernet eth0 description MY_NEW_DESCRIPTION
|
|
[edit]
|
|
vyos@vyos# delete interfaces ethernet eth0 disable
|
|
[edit]
|
|
vyos@vyos# show interfaces
|
|
ethernet eth0 {
|
|
+ address dhcp
|
|
> description MY_NEW_DESCRIPTION
|
|
- disable
|
|
hw-id 00:53:dd:44:3b:03
|
|
}
|
|
loopback lo {
|
|
}
|
|
|
|
It is also possible to display all `set` commands within configuration mode
|
|
using :cfgcmd:`show | commands`
|
|
|
|
.. code-block:: none
|
|
|
|
vyos@vyos# show interfaces ethernet eth0 | commands
|
|
set address dhcp
|
|
set hw-id 00:53:ad:44:3b:03
|
|
|
|
These commands are also relative to the level you are inside and only relevant
|
|
configuration blocks will be displayed when entering a sub-level.
|
|
|
|
.. code-block:: none
|
|
|
|
[edit interfaces ethernet eth0]
|
|
vyos@vyos# show
|
|
address dhcp
|
|
hw-id 00:53:ad:44:3b:03
|
|
|
|
Exiting from the configuration mode is done via the :cfgcmd:`exit` command from
|
|
the top level, executing :cfgcmd:`exit` from within a sub-level takes you back
|
|
to the top level.
|
|
|
|
.. code-block:: none
|
|
|
|
[edit interfaces ethernet eth0]
|
|
vyos@vyos# exit
|
|
[edit]
|
|
vyos@vyos# exit
|
|
Warning: configuration changes have not been saved.
|
|
|
|
Managing
|
|
========
|
|
|
|
The configuration is managed by the use of :cfgcmd:`set` and :cfgcmd:`delete`
|
|
commands from within configuration mode. Configuration commands are flattened
|
|
from the tree into 'one-liner' commands shown in :opcmd:`show configuration
|
|
commands` from operation mode.
|
|
|
|
Commands are relative to the level where they are executed and all redundant
|
|
information from the current level is removed from the command entered.
|
|
|
|
.. code-block:: none
|
|
|
|
[edit]
|
|
vyos@vyos# set interface ethernet eth0 address 192.0.2.100/24
|
|
|
|
[edit interfaces ethernet eth0]
|
|
vyos@vyos# set address 203.0.113.6/24
|
|
|
|
These two commands above are essentially the same, just executed from different
|
|
levels in the hierarchy.
|
|
|
|
.. cfgcmd:: delete
|
|
|
|
To delete a configuration entry use the :cfgcmd:`delete` command, this also
|
|
deletes all sub-levels under the current level you've specified in the
|
|
:cfgcmd:`delete` command. Deleting an entry will also result in the element
|
|
reverting back to its default value if one exists.
|
|
|
|
.. code-block:: none
|
|
|
|
[edit interfaces ethernet eth0]
|
|
vyos@vyos# delete address 192.0.2.100/24
|
|
|
|
.. cfgcmd:: commit
|
|
|
|
Any change you do on the configuration, will not take effect until committed
|
|
using the :cfgcmd:`commit` command in configuration mode.
|
|
|
|
.. code-block:: none
|
|
|
|
vyos@vyos# commit
|
|
[edit]
|
|
vyos@vyos# exit
|
|
Warning: configuration changes have not been saved.
|
|
vyos@vyos:~$
|
|
|
|
.. cfgcmd:: save
|
|
|
|
In order to preserve configuration changes upon reboot, the configuration
|
|
must also be saved once applied. This is done using the :cfgcmd:`save`
|
|
command in configuration mode.
|
|
|
|
.. code-block:: none
|
|
|
|
vyos@vyos# save
|
|
Saving configuration to '/config/config.boot'...
|
|
Done
|
|
|
|
.. code-block:: none
|
|
|
|
vyos@vyos# save [tab]
|
|
Possible completions:
|
|
<Enter> Save to system config file
|
|
<file> Save to file on local machine
|
|
scp://<user>:<passwd>@<host>/<file> Save to file on remote machine
|
|
ftp://<user>:<passwd>@<host>/<file> Save to file on remote machine
|
|
tftp://<host>/<file> Save to file on remote machine
|
|
vyos@vyos# save tftp://192.168.0.100/vyos-test.config.boot
|
|
Saving configuration to 'tftp://192.168.0.100/vyos-test.config.boot'...
|
|
######################################################################## 100.0%
|
|
Done
|
|
|
|
.. cfgcmd:: exit [discard]
|
|
|
|
Configuration mode can not be exited while uncommitted changes exist. To
|
|
exit configuration mode without applying changes, the :cfgcmd:`exit discard`
|
|
command must be used.
|
|
|
|
All changes in the working config will thus be lost.
|
|
|
|
.. code-block:: none
|
|
|
|
vyos@vyos# exit
|
|
Cannot exit: configuration modified.
|
|
Use 'exit discard' to discard the changes and exit.
|
|
[edit]
|
|
vyos@vyos# exit discard
|
|
|
|
.. _run_opmode_from_config_mode:
|
|
|
|
Access opmode from config mode
|
|
==============================
|
|
|
|
When inside configuration mode you are not directly able to execute operational
|
|
commands.
|
|
|
|
.. cfgcmd:: run
|
|
|
|
Access to these commands are possible through the use of the ``run [command]``
|
|
command. From this command you will have access to everything accessible from
|
|
operational mode.
|
|
|
|
Command completion and syntax help with ``?`` and ``[tab]`` will also work.
|
|
|
|
.. code-block:: none
|
|
|
|
[edit]
|
|
vyos@vyos# run show interfaces
|
|
Codes: S - State, L - Link, u - Up, D - Down, A - Admin Down
|
|
Interface IP Address S/L Description
|
|
--------- ---------- --- -----------
|
|
eth0 0.0.0.0/0 u/u
|
|
|
|
Config Archive
|
|
==============
|
|
|
|
VyOS automatically maintains backups of every previous configurations which
|
|
has been comitted to the system.
|
|
|
|
Local Archive
|
|
-------------
|
|
|
|
Revisions are stored on disk. You can view, compare and rollback them to any
|
|
previous revisions if something goes wrong.
|
|
|
|
.. opcmd:: show system commit
|
|
|
|
View all existing revisions on the local system.
|
|
|
|
.. code-block:: none
|
|
|
|
vyos@vyos:~$ show system commit
|
|
0 2015-03-30 08:53:03 by vyos via cli
|
|
1 2015-03-30 08:52:20 by vyos via cli
|
|
2 2015-03-26 21:26:01 by root via boot-config-loader
|
|
3 2015-03-26 20:43:18 by root via boot-config-loader
|
|
4 2015-03-25 11:06:14 by root via boot-config-loader
|
|
5 2015-03-25 01:04:28 by root via boot-config-loader
|
|
6 2015-03-25 00:16:47 by vyos via cli
|
|
7 2015-03-24 23:43:45 by root via boot-config-loader
|
|
|
|
.. cfgcmd:: compare <saved | N> <M>
|
|
|
|
Compare difference in configuration revisions.
|
|
|
|
.. code-block:: none
|
|
|
|
vyos@vyos# compare [tab]
|
|
Possible completions:
|
|
<Enter> Compare working & active configurations
|
|
saved Compare working & saved configurations
|
|
<N> Compare working with revision N
|
|
<N> <M> Compare revision N with M
|
|
Revisions:
|
|
0 2013-12-17 20:01:37 root by boot-config-loader
|
|
1 2013-12-13 15:59:31 root by boot-config-loader
|
|
2 2013-12-12 21:56:22 vyos by cli
|
|
3 2013-12-12 21:55:11 vyos by cli
|
|
4 2013-12-12 21:27:54 vyos by cli
|
|
5 2013-12-12 21:23:29 vyos by cli
|
|
6 2013-12-12 21:13:59 root by boot-config-loader
|
|
7 2013-12-12 16:25:19 vyos by cli
|
|
8 2013-12-12 15:44:36 vyos by cli
|
|
9 2013-12-12 15:42:07 root by boot-config-loader
|
|
10 2013-12-12 15:42:06 root by init
|
|
|
|
Revisions can be compared with :cfgcmd:`compare N M` command, where N and M
|
|
are revision numbers. The output will describe how the configuration N is
|
|
when compared to YM indicating with a plus sign (``+``) the additional parts
|
|
N has when compared to M, and indicating with a minus sign (``-``) the
|
|
lacking parts N misses when compared to Y.
|
|
|
|
.. code-block:: none
|
|
|
|
vyos@vyos# compare 0 6
|
|
[edit interfaces]
|
|
+dummy dum1 {
|
|
+ address 10.189.0.1/31
|
|
+}
|
|
[edit interfaces ethernet eth0]
|
|
+vif 99 {
|
|
+ address 10.199.0.1/31
|
|
+}
|
|
-vif 900 {
|
|
- address 192.0.2.4/24
|
|
-}
|
|
|
|
.. cfgcmd:: set system config-management commit-revisions <N>
|
|
|
|
You can specify the number of revisions stored on disk. N can be in the
|
|
range of 0 - 65535. When the number of revisions exceeds the configured
|
|
value, the oldest revision is removed.
|
|
|
|
Rollback Changes
|
|
----------------
|
|
|
|
You can rollback configuration changes using the rollback command. This will
|
|
apply the selected revision and trigger a system reboot.
|
|
|
|
.. cfgcmd:: rollback <N>
|
|
|
|
Rollback to revision N (currently requires reboot)
|
|
|
|
.. code-block:: none
|
|
|
|
vyos@vyos# compare 1
|
|
[edit system]
|
|
>host-name vyos-1
|
|
[edit]
|
|
|
|
vyos@vyos# rollback 1
|
|
Proceed with reboot? [confirm][y]
|
|
Broadcast message from root@vyos-1 (pts/0) (Tue Dec 17 21:07:45 2013):
|
|
The system is going down for reboot NOW!
|
|
|
|
Remote Archive
|
|
--------------
|
|
|
|
VyOS can upload the configuration to a remote location after each call to
|
|
:cfgcmd:`commit`. TFTP, FTP, and SFTP servers are supported.
|
|
|
|
.. cfgcmd set system config-management commit-archive location <URI>
|
|
|
|
Specify remote location of commit archive.
|
|
|
|
* scp://<user>:<passwd>@<host>/<dir>
|
|
* sftp://<user>:<passwd>@<host>/<dir>
|
|
* ftp://<user>:<passwd>@<host>/<dir>
|
|
* tftp://<host>/<dir>
|
|
|
|
Restore Default
|
|
===============
|
|
|
|
In the case you want to completely delete your configuration and restore the
|
|
default one, you can enter the following command in configuration mode:
|
|
|
|
.. code-block:: none
|
|
|
|
load /opt/vyatta/etc/config.boot.default
|
|
|
|
You will be asked if you want to continue. If you accept, you will have to use
|
|
:cfgcmd:`commit` if you want to make the changes active.
|
|
|
|
Then you may want to :cfgcmd:`save` in order to delete the saved configuration
|
|
too.
|
|
|
|
.. note:: If you are remotely connected, you will lose your connection. You may
|
|
want to copy first the config, edit it to ensure connectivity, and load the
|
|
edited config.
|