Issue #77681 revamp getting started guide (#77897)

pull/77967/head
Don Naro 3 years ago committed by GitHub
parent 058a69e6b0
commit 89e4fb71e6
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

@ -24,6 +24,12 @@ This documentation covers the version of Ansible noted in the upper left corner
Ansible releases a new major release approximately twice a year. The core application evolves somewhat conservatively, valuing simplicity in language design and setup. Contributors develop and change modules and plugins hosted in collections since version 2.10 much more quickly.
.. toctree::
:maxdepth: 2
:caption: Ansible getting started
getting_started/index
.. toctree::
:maxdepth: 2
:caption: Installation, Upgrade & Configuration

@ -31,7 +31,11 @@ This documentation covers the version of ``ansible-core`` noted in the upper lef
``ansible-core`` releases a new major release approximately twice a year. The core application evolves somewhat conservatively, valuing simplicity in language design and setup. Contributors develop and change modules and plugins, hosted in collections since version 2.10, much more quickly.
.. toctree::
:maxdepth: 2
:caption: Ansible getting started
getting_started/index
.. toctree::
:maxdepth: 2

@ -0,0 +1,27 @@
PLAY [My first play] **********************************************************************
TASK [Gathering Facts] ********************************************************************
ok: [vm01]
ok: [vm02]
ok: [vm03]
TASK [Ping my hosts] **********************************************************************
ok: [vm01]
ok: [vm02]
ok: [vm03]
TASK [Print message] **********************************************************************
ok: [vm01] => {
"msg": "Hello world"
}
ok: [vm02] => {
"msg": "Hello world"
}
ok: [vm03] => {
"msg": "Hello world"
}
PLAY RECAP ********************************************************************************
vm01: ok=3 changed=0 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0
vm02: ok=3 changed=0 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0
vm03: ok=3 changed=0 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0

@ -0,0 +1,21 @@
vm03 | SUCCESS => {
"ansible_facts": {
"discovered_interpreter_python": "/usr/bin/python3"
},
"changed": false,
"ping": "pong"
}
vm02 | SUCCESS => {
"ansible_facts": {
"discovered_interpreter_python": "/usr/bin/python3"
},
"changed": false,
"ping": "pong"
}
vm01 | SUCCESS => {
"ansible_facts": {
"discovered_interpreter_python": "/usr/bin/python3"
},
"changed": false,
"ping": "pong"
}

@ -0,0 +1,21 @@
192.0.2.50 | SUCCESS => {
"ansible_facts": {
"discovered_interpreter_python": "/usr/bin/python3"
},
"changed": false,
"ping": "pong"
}
192.0.2.51 | SUCCESS => {
"ansible_facts": {
"discovered_interpreter_python": "/usr/bin/python3"
},
"changed": false,
"ping": "pong"
}
192.0.2.52 | SUCCESS => {
"ansible_facts": {
"discovered_interpreter_python": "/usr/bin/python3"
},
"changed": false,
"ping": "pong"
}

@ -0,0 +1,102 @@
.. _get_started_inventory:
*********************
Building an inventory
*********************
Inventories organize managed nodes in centralized files that provide Ansible with system information and network locations.
Using an inventory file, Ansible can manage a large number of hosts with a single command.
Inventories also help you use Ansible more efficiently by reducing the number of command-line options you need to specify.
For example, inventories usually contain the SSH user so you do not need to include the ``-u`` flag when running Ansible commands.
In the previous section, you added managed nodes directly to the ``/etc/ansible/hosts`` file.
Now let's create an inventory file that you can add to source control for flexibility, reuse, and for sharing with other users.
.. note::
Inventory files can be in ``INI`` or ``YAML`` format.
For demonstration purposes this section uses ``YAML`` format only.
Complete the following steps:
#. Open a terminal window on your control node.
#. Create a new inventory file named ``inventory.yaml`` in any directory and open it for editing.
#. Add a new group for your hosts then specify the IP address or fully qualified domain name (FQDN) of each managed node with the ``ansible_host`` field.
The following example adds the IP addresses of three virtual machines in KVM:
.. literalinclude:: yaml/inventory_example_vms.yaml
:language: yaml
#. Verify your inventory.
If you created your inventory in a directory other than your home directory, specify the full path with the ``-i`` option.
.. code-block:: bash
ansible-inventory -i inventory.yaml --list
#. Ping the managed nodes in your inventory.
In this example, the group name is ``virtualmachines`` which you can specify with the ``ansible`` command instead of ``all``.
.. code-block:: bash
ansible virtualmachines -m ping -i inventory.yaml
.. literalinclude:: ansible_output/ping_inventory_output.txt
:language: text
Congratulations! You have successfully built an inventory.
Tips for building inventories
=============================
* Ensure that group names are meaningful and unique. Group names are also case sensitive.
* Avoid spaces, hyphens, and preceding numbers (use ``floor_19``, not ``19th_floor``) in group names.
* Group hosts in your inventory logically according to their **What**, **Where**, and **When**.
What
Group hosts according to the topology, for example: db, web, leaf, spine.
Where
Group hosts by geographic location, for example: datacenter, region, floor, building.
When
Group hosts by stage, for example: development, test, staging, production.
Use metagroups
--------------
Create a metagroup that organizes multiple groups in your inventory with the following syntax:
.. code-block:: yaml
metagroupname:
children:
The following inventory illustrates a basic structure for a data center.
This example inventory contains a ``network`` metagroup that includes all network devices and a ``datacenter`` metagroup that includes the ``network`` group and all webservers.
.. literalinclude:: yaml/inventory_group_structure.yaml
:language: yaml
Create variables
----------------
Variables set values for managed nodes, such as the IP address, FQDN, operating system, and SSH user, so you do not need to pass them when running Ansible commands.
Variables can apply to specific hosts.
.. literalinclude:: yaml/inventory_variables_host.yaml
:language: yaml
Variables can also apply to all hosts in a group.
.. literalinclude:: yaml/inventory_variables_group.yaml
:language: yaml
Now that you know how to build an inventory, continue by :ref:`learning how to create a playbook<get_started_playbook>`.
.. seealso::
:ref:`intro_inventory`
Learn more about inventories in ``YAML`` or ``INI`` format.
:ref:`variables_in_inventory`
Find out more about inventory variables and their syntax.
:ref:`vault`
Find out how to encrypt sensitive content in your inventory such as passwords and keys.

@ -0,0 +1,70 @@
.. _get_started_playbook:
*******************
Creating a playbook
*******************
Playbooks are automation blueprints, in ``YAML`` format, that Ansible uses to deploy and configure managed nodes.
Playbook
A list of plays that define the order in which Ansible performs operations, from top to bottom, to achieve an overall goal.
Play
An ordered list of tasks that maps to managed nodes in an inventory.
Task
A list of one or more modules that defines the operations that Ansible performs.
Module
A unit of code or binary that Ansible runs on managed nodes.
Ansible modules are grouped in collections with a :term:`Fully Qualified Collection Name (FQCN)` for each module.
In the previous section, you used the ``ansible`` command to ping hosts in your inventory.
Now let's create a playbook that pings your hosts and also prints a "Hello world" message.
Complete the following steps:
#. Open a terminal window on your control node.
#. Create a new playbook file named ``playbook.yaml`` in any directory and open it for editing.
#. Add the following content to ``playbook.yaml``:
.. literalinclude:: yaml/first_playbook.yaml
:language: yaml
#. Run your playbook.
.. code-block:: bash
ansible-playbook -i inventory.yaml playbook.yaml
Ansible returns the following output:
.. literalinclude:: ansible_output/first_playbook_output.txt
:language: text
In this output you can see:
* The names that you give the play and each task.
You should always use descriptive names that make it easy to verify and troubleshoot playbooks.
* The ``Gather Facts`` task runs implicitly.
By default Ansible gathers information about your inventory that it can use in the playbook.
* The status of each task.
Each task has a status of ``ok`` which means it ran successfully.
* The play recap that summarizes results of all tasks in the playbook per host.
In this example, there are three tasks so ``ok=3`` indicates that each task ran successfully.
Congratulations! You have just created your first Ansible playbook.
.. seealso::
:ref:`playbooks_intro`
Start building playbooks for real world scenarios.
:ref:`working_with_playbooks`
Go into more detail with Ansible playbooks.
:ref:`playbooks_best_practices`
Get tips and tricks for using playbooks.
:ref:`vars_and_facts`
Learn more about the ``gather_facts`` keyword in playbooks.

@ -0,0 +1,98 @@
.. _getting_started_index:
############################
Getting started with Ansible
############################
Ansible automates the management of remote systems and controls their desired state.
A basic Ansible environment has three main components:
Control node
A system on which Ansible is installed.
You run Ansible commands such as ``ansible`` or ``ansible-inventory`` on a control node.
Managed node
A remote system, or host, that Ansible controls.
Inventory
A list of managed nodes that are logically organized.
You create an inventory on the control node to describe host deployments to Ansible.
.. image:: ../images/ansible_basic.svg
:width: 400px
:align: center
:height: 200px
:alt: Basic components of an Ansible environment include a control node, an inventory of managed nodes, and a module copied to each managed node.
Ready to start using Ansible?
Complete the following steps to get up and running:
#. Install Ansible. Visit the :ref:`installation guide<installation_guide>` for complete details.
.. code-block:: bash
python3 -m pip install --user ansible
#. Create an inventory by adding the IP address or fully qualified domain name (FQDN) of one or more remote systems to ``/etc/ansible/hosts``.
The following example adds the IP addresses of three virtual machines in KVM:
.. code-block:: ini
[myvirtualmachines]
192.0.2.50
192.0.2.51
192.0.2.52
#. Verify the hosts in your inventory.
.. code-block:: bash
ansible all --list-hosts
.. code-block:: ansible-output
hosts (1):
192.0.2.50
192.0.2.51
192.0.2.52
#. Set up SSH connections so Ansible can connect to the managed nodes.
a. Add your public SSH key to the ``authorized_keys`` file on each remote system.
b. Test the SSH connections, for example:
.. code-block:: bash
ssh username@192.0.2.50
If the username on the control node is different on the host, you need to pass the ``-u`` option with the ``ansible`` command.
#. Ping the managed nodes.
.. code-block:: bash
ansible all -m ping
.. literalinclude:: ansible_output/ping_output.txt
:language: text
Congratulations! You are now using Ansible.
Continue by :ref:`learning how to build an inventory<get_started_inventory>`.
.. seealso::
`Ansible Demos <https://github.com/ansible/product-demos>`_
Demonstrations of different Ansible usecases
`RHEL Labs <https://katacoda.com/rhel-labs>`_
Labs to provide further knowledge on different topics
`Mailing List <https://groups.google.com/group/ansible-project>`_
Questions? Help? Ideas? Stop by the list on Google Groups
:ref:`communication_irc`
How to join Ansible chat channels
.. toctree::
:maxdepth: 1
get_started_inventory
get_started_playbook

@ -0,0 +1,8 @@
- name: My first play
hosts: virtualmachines
tasks:
- name: Ping my hosts
ansible.builtin.ping:
- name: Print message
ansible.builtin.debug:
msg: Hello world

@ -0,0 +1,8 @@
virtualmachines:
hosts:
vm01:
ansible_host: 192.0.2.50
vm02:
ansible_host: 192.0.2.51
vm03:
ansible_host: 192.0.2.52

@ -0,0 +1,30 @@
leafs:
hosts:
leaf01:
ansible_host: 192.0.2.100
leaf02:
ansible_host: 192.0.2.110
spines:
hosts:
spine01:
ansible_host: 192.0.2.120
spine02:
ansible_host: 192.0.2.130
network:
children:
leafs:
spines:
webservers:
hosts:
webserver01:
ansible_host: 192.0.2.140
webserver02:
ansible_host: 192.0.2.150
datacenter:
children:
network:
webservers:

@ -0,0 +1,10 @@
webservers:
hosts:
webserver01:
ansible_host: 192.0.2.140
http_port: 80
webserver02:
ansible_host: 192.0.2.150
http_port: 443
vars:
ansible_user: my_server_user

@ -0,0 +1,8 @@
webservers:
hosts:
webserver01:
ansible_host: 192.0.2.140
http_port: 80
webserver02:
ansible_host: 192.0.2.150
http_port: 443

@ -0,0 +1,332 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->
<svg
width="849.49353"
height="1023.4333"
viewBox="0 0 224.76183 270.78332"
version="1.1"
id="svg348"
inkscape:version="1.2 (dc2aedaf03, 2022-05-15)"
sodipodi:docname="ansible_basic.svg"
xml:space="preserve"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns="http://www.w3.org/2000/svg"
xmlns:svg="http://www.w3.org/2000/svg"><sodipodi:namedview
id="namedview350"
pagecolor="#ffffff"
bordercolor="#111111"
borderopacity="1"
inkscape:showpageshadow="0"
inkscape:pageopacity="0"
inkscape:pagecheckerboard="1"
inkscape:deskcolor="#d1d1d1"
inkscape:document-units="px"
showgrid="false"
inkscape:zoom="0.84096521"
inkscape:cx="332.3562"
inkscape:cy="355.54384"
inkscape:window-width="1920"
inkscape:window-height="979"
inkscape:window-x="0"
inkscape:window-y="32"
inkscape:window-maximized="1"
inkscape:current-layer="layer1" /><defs
id="defs345"><marker
style="overflow:visible"
id="marker10543"
refX="0"
refY="0"
orient="auto-start-reverse"
inkscape:stockid="RoundedArrow"
markerWidth="6.1347523"
markerHeight="5.9304948"
viewBox="0 0 6.1347524 5.9304951"
inkscape:isstock="true"
inkscape:collect="always"
preserveAspectRatio="xMidYMid"><path
transform="scale(0.7)"
d="m -0.21114562,-4.1055728 6.42229122,3.21114561 a 1,1 90 0 1 0,1.78885438 L -0.21114562,4.1055728 A 1.236068,1.236068 31.717474 0 1 -2,3 v -6 a 1.236068,1.236068 148.28253 0 1 1.78885438,-1.1055728 z"
style="fill:#4d4d4dff;fill-rule:evenodd;stroke:none"
id="path10541" /></marker><marker
style="overflow:visible"
id="RoundedArrow"
refX="0"
refY="0"
orient="auto-start-reverse"
inkscape:stockid="RoundedArrow"
markerWidth="6.1347523"
markerHeight="5.9304953"
viewBox="0 0 6.1347524 5.9304951"
inkscape:isstock="true"
inkscape:collect="always"
preserveAspectRatio="xMidYMid"><path
transform="scale(0.7)"
d="m -0.21114562,-4.1055728 6.42229122,3.21114561 a 1,1 90 0 1 0,1.78885438 L -0.21114562,4.1055728 A 1.236068,1.236068 31.717474 0 1 -2,3 v -6 a 1.236068,1.236068 148.28253 0 1 1.78885438,-1.1055728 z"
style="fill:#4d4d4dff;fill-rule:evenodd;stroke:none"
id="path1367" /></marker></defs><g
inkscape:label="control node"
inkscape:groupmode="layer"
id="layer1"
transform="translate(-143.23061,-11.064939)"><path
id="rect404"
style="opacity:1;fill:#e6e6e6;stroke-width:0.331667;stroke-linejoin:bevel;stroke-opacity:0"
d="M 143.23061,11.064939 H 367.9924 V 107.25983 H 143.23061 Z" /><g
aria-label="Control node"
id="text2650"
style="font-size:7.7611px;line-height:1.25;-inkscape-font-specification:sans-serif;letter-spacing:0px;word-spacing:0px;stroke-width:0.264583"><path
d="m 152.74789,19.329369 v 0.807185 q -0.38654,-0.360012 -0.82614,-0.538123 -0.4358,-0.178111 -0.92845,-0.178111 -0.97014,0 -1.48552,0.594967 -0.51539,0.591177 -0.51539,1.712899 0,1.117932 0.51539,1.712899 0.51538,0.591177 1.48552,0.591177 0.49265,0 0.92845,-0.178111 0.4396,-0.178111 0.82614,-0.538123 v 0.799605 q -0.4017,0.272852 -0.85266,0.409277 -0.44718,0.136426 -0.9474,0.136426 -1.28468,0 -2.02365,-0.784447 -0.73897,-0.788237 -0.73897,-2.148703 0,-1.364256 0.73897,-2.148703 0.73897,-0.788237 2.02365,-0.788237 0.5078,0 0.95498,0.136426 0.45096,0.132636 0.84508,0.401697 z"
id="path10832" /><path
d="m 155.54461,20.795944 q -0.56086,0 -0.88677,0.439594 -0.3259,0.435804 -0.3259,1.197513 0,0.76171 0.32212,1.201303 0.3259,0.435804 0.89055,0.435804 0.55707,0 0.88298,-0.439593 0.3259,-0.439594 0.3259,-1.197514 0,-0.75413 -0.3259,-1.193724 -0.32591,-0.443383 -0.88298,-0.443383 z m 0,-0.591177 q 0.90951,0 1.42868,0.591177 0.51918,0.591178 0.51918,1.637107 0,1.04214 -0.51918,1.637107 -0.51917,0.591178 -1.42868,0.591178 -0.91329,0 -1.43247,-0.591178 -0.51538,-0.594967 -0.51538,-1.637107 0,-1.045929 0.51538,-1.637107 0.51918,-0.591177 1.43247,-0.591177 z"
id="path10834" /><path
d="m 162.17641,21.989668 v 2.561769 h -0.69729 v -2.539031 q 0,-0.602547 -0.23495,-0.901925 -0.23496,-0.299378 -0.70487,-0.299378 -0.56465,0 -0.89055,0.360012 -0.32591,0.360012 -0.32591,0.981506 v 2.398816 h -0.70107 v -4.244351 h 0.70107 v 0.65939 q 0.25012,-0.382749 0.58739,-0.572229 0.34106,-0.18948 0.78445,-0.18948 0.73139,0 1.10656,0.454752 0.37517,0.450962 0.37517,1.330149 z"
id="path10836" /><path
d="m 164.2569,19.101993 v 1.205093 h 1.43626 v 0.541913 h -1.43626 v 2.304076 q 0,0.519175 0.14022,0.66697 0.144,0.147794 0.5798,0.147794 h 0.71624 v 0.583598 h -0.71624 q -0.80718,0 -1.11414,-0.299378 -0.30696,-0.303168 -0.30696,-1.098984 v -2.304076 h -0.51159 v -0.541913 h 0.51159 v -1.205093 z"
id="path10838" /><path
d="m 169.06969,20.958897 q -0.11748,-0.06821 -0.25769,-0.09853 -0.13643,-0.03411 -0.30317,-0.03411 -0.59118,0 -0.9095,0.386539 -0.31454,0.38275 -0.31454,1.102774 v 2.235863 h -0.70108 v -4.244351 h 0.70108 v 0.65939 q 0.2198,-0.386539 0.57223,-0.572229 0.35243,-0.18948 0.85645,-0.18948 0.072,0 0.15916,0.01137 0.0872,0.0076 0.19327,0.02653 z"
id="path10840" /><path
d="m 171.27524,20.795944 q -0.56086,0 -0.88677,0.439594 -0.3259,0.435804 -0.3259,1.197513 0,0.76171 0.32211,1.201303 0.32591,0.435804 0.89056,0.435804 0.55707,0 0.88298,-0.439593 0.3259,-0.439594 0.3259,-1.197514 0,-0.75413 -0.3259,-1.193724 -0.32591,-0.443383 -0.88298,-0.443383 z m 0,-0.591177 q 0.9095,0 1.42868,0.591177 0.51917,0.591178 0.51917,1.637107 0,1.04214 -0.51917,1.637107 -0.51918,0.591178 -1.42868,0.591178 -0.91329,0 -1.43247,-0.591178 -0.51538,-0.594967 -0.51538,-1.637107 0,-1.045929 0.51538,-1.637107 0.51918,-0.591177 1.43247,-0.591177 z"
id="path10842" /><path
d="m 174.37892,18.654821 h 0.69729 v 5.896616 h -0.69729 z"
id="path10844" /><path
d="m 182.53035,21.989668 v 2.561769 h -0.69729 v -2.539031 q 0,-0.602547 -0.23495,-0.901925 -0.23496,-0.299378 -0.70487,-0.299378 -0.56465,0 -0.89055,0.360012 -0.32591,0.360012 -0.32591,0.981506 v 2.398816 h -0.70107 v -4.244351 h 0.70107 v 0.65939 q 0.25011,-0.382749 0.58739,-0.572229 0.34106,-0.18948 0.78445,-0.18948 0.73139,0 1.10656,0.454752 0.37517,0.450962 0.37517,1.330149 z"
id="path10846" /><path
d="m 185.56582,20.795944 q -0.56086,0 -0.88677,0.439594 -0.3259,0.435804 -0.3259,1.197513 0,0.76171 0.32211,1.201303 0.32591,0.435804 0.89056,0.435804 0.55707,0 0.88297,-0.439593 0.32591,-0.439594 0.32591,-1.197514 0,-0.75413 -0.32591,-1.193724 -0.3259,-0.443383 -0.88297,-0.443383 z m 0,-0.591177 q 0.9095,0 1.42868,0.591177 0.51917,0.591178 0.51917,1.637107 0,1.04214 -0.51917,1.637107 -0.51918,0.591178 -1.42868,0.591178 -0.9133,0 -1.43247,-0.591178 -0.51539,-0.594967 -0.51539,-1.637107 0,-1.045929 0.51539,-1.637107 0.51917,-0.591177 1.43247,-0.591177 z"
id="path10848" /><path
d="m 191.46243,20.951318 v -2.296497 h 0.69729 v 5.896616 h -0.69729 v -0.636652 q -0.21979,0.37896 -0.55707,0.56465 -0.33348,0.181901 -0.80339,0.181901 -0.76929,0 -1.25436,-0.613915 -0.48128,-0.613915 -0.48128,-1.61437 0,-1.000454 0.48128,-1.614369 0.48507,-0.613915 1.25436,-0.613915 0.46991,0 0.80339,0.18569 0.33728,0.181901 0.55707,0.560861 z m -2.37607,1.481733 q 0,0.769289 0.31453,1.208882 0.31833,0.435804 0.87161,0.435804 0.55328,0 0.87161,-0.435804 0.31832,-0.439593 0.31832,-1.208882 0,-0.769288 -0.31832,-1.205092 -0.31833,-0.439594 -0.87161,-0.439594 -0.55328,0 -0.87161,0.439594 -0.31453,0.435804 -0.31453,1.205092 z"
id="path10850" /><path
d="m 197.22641,22.25494 v 0.341064 h -3.206 q 0.0455,0.720024 0.43202,1.098984 0.39033,0.37517 1.08382,0.37517 0.4017,0 0.77687,-0.09853 0.37896,-0.09853 0.75034,-0.295589 v 0.65939 q -0.37517,0.159163 -0.76929,0.242535 -0.39411,0.08337 -0.7996,0.08337 -1.01561,0 -1.61058,-0.591178 -0.59118,-0.591177 -0.59118,-1.599211 0,-1.04214 0.56086,-1.652265 0.56465,-0.613915 1.51963,-0.613915 0.85645,0 1.35289,0.553281 0.50022,0.549492 0.50022,1.496892 z m -0.69728,-0.204638 q -0.008,-0.57223 -0.32212,-0.913294 -0.31074,-0.341064 -0.82613,-0.341064 -0.5836,0 -0.93603,0.329695 -0.34864,0.329696 -0.4017,0.928452 z"
id="path10852" /></g><path
id="rect2702"
style="opacity:1;fill:#ffffff;stroke:#0063e1;stroke-width:0.185208;stroke-linejoin:bevel"
d="m 154.74631,41.449078 h 87.2262 v 47.307228 h -87.2262 z" /><g
id="g6733"
style="fill:#666666"
transform="matrix(1.636514,0,0,1.7495284,259.6675,33.984901)"><path
d="M 28,4.38 H 8 A 0.61,0.61 0 0 0 7.38,5 V 31 A 0.61,0.61 0 0 0 8,31.62 H 28 A 0.61,0.61 0 0 0 28.62,31 V 5 A 0.61,0.61 0 0 0 28,4.38 Z m -0.62,26 H 8.62 V 5.62 h 18.76 z"
id="path6719"
style="fill:#666666" /><path
d="m 12,13.62 h 6 a 0.62,0.62 0 0 0 0,-1.24 h -6 a 0.62,0.62 0 0 0 0,1.24 z"
id="path6725"
style="fill:#666666" /><path
d="m 12,16.62 h 12 a 0.62,0.62 0 1 0 0,-1.24 H 12 a 0.62,0.62 0 0 0 0,1.24 z"
id="path6727"
style="fill:#666666" /><path
d="m 12,19.62 h 12 a 0.62,0.62 0 0 0 0,-1.24 H 12 a 0.62,0.62 0 0 0 0,1.24 z"
id="path6729"
style="fill:#666666" /><path
d="m 12,22.62 h 12 a 0.62,0.62 0 0 0 0,-1.24 H 12 a 0.62,0.62 0 1 0 0,1.24 z"
id="path6731"
style="fill:#666666" /></g><g
aria-label="Ansible"
id="text9111"
style="font-size:7.7611px;line-height:1.25;-inkscape-font-specification:sans-serif;letter-spacing:0px;word-spacing:0px;stroke-width:0.264583"
transform="translate(-11.641666)"><path
d="m 185.30447,62.418646 -1.03835,2.815672 h 2.08049 z m -0.43202,-0.75413 h 0.86782 l 2.15628,5.657872 h -0.79581 l -0.51539,-1.451417 h -2.5504 l -0.51538,1.451417 h -0.80719 z"
id="path10816" /><path
d="m 192.22049,64.760618 v 2.56177 h -0.69729 v -2.539032 q 0,-0.602546 -0.23495,-0.901925 -0.23496,-0.299378 -0.70487,-0.299378 -0.56465,0 -0.89056,0.360012 -0.3259,0.360012 -0.3259,0.981506 v 2.398817 h -0.70108 v -4.244352 h 0.70108 v 0.659391 q 0.25011,-0.38275 0.58739,-0.57223 0.34106,-0.18948 0.78444,-0.18948 0.7314,0 1.10657,0.454752 0.37517,0.450962 0.37517,1.330149 z"
id="path10818" /><path
d="m 196.31704,63.203093 v 0.65939 q -0.29558,-0.151584 -0.61391,-0.227376 -0.31833,-0.07579 -0.65939,-0.07579 -0.51918,0 -0.78066,0.159164 -0.25769,0.159163 -0.25769,0.477489 0,0.242534 0.18569,0.38275 0.18569,0.136425 0.74655,0.261482 l 0.23874,0.05305 q 0.74277,0.159164 1.05351,0.450963 0.31454,0.288009 0.31454,0.807184 0,0.591178 -0.46991,0.936032 -0.46612,0.344853 -1.28467,0.344853 -0.34107,0 -0.71245,-0.06821 -0.36759,-0.06442 -0.77687,-0.197059 V 66.44699 q 0.38654,0.200849 0.76171,0.303168 0.37517,0.09853 0.74276,0.09853 0.49265,0 0.75792,-0.166743 0.26528,-0.170532 0.26528,-0.477489 0,-0.28422 -0.19327,-0.435804 -0.18948,-0.151584 -0.83751,-0.291799 l -0.24253,-0.05684 q -0.64802,-0.136426 -0.93603,-0.416856 -0.28801,-0.28422 -0.28801,-0.776868 0,-0.598757 0.42443,-0.924662 0.42444,-0.325906 1.2051,-0.325906 0.38654,0 0.7276,0.05684 0.34106,0.05684 0.62907,0.170532 z"
id="path10820" /><path
d="m 197.65477,63.078036 h 0.69729 v 4.244352 h -0.69729 z m 0,-1.652265 h 0.69729 v 0.882977 h -0.69729 z"
id="path10822" /><path
d="m 202.85789,65.204002 q 0,-0.769289 -0.31832,-1.205093 -0.31454,-0.439594 -0.86782,-0.439594 -0.55328,0 -0.87161,0.439594 -0.31454,0.435804 -0.31454,1.205093 0,0.769288 0.31454,1.208882 0.31833,0.435804 0.87161,0.435804 0.55328,0 0.86782,-0.435804 0.31832,-0.439594 0.31832,-1.208882 z m -2.37229,-1.481734 q 0.2198,-0.37896 0.55329,-0.560861 0.33727,-0.18569 0.80339,-0.18569 0.77308,0 1.25436,0.613915 0.48507,0.613915 0.48507,1.61437 0,1.000454 -0.48507,1.614369 -0.48128,0.613915 -1.25436,0.613915 -0.46612,0 -0.80339,-0.181901 -0.33349,-0.18569 -0.55329,-0.56465 v 0.636653 h -0.70107 v -5.896617 h 0.70107 z"
id="path10824" /><path
d="m 204.73753,61.425771 h 0.69729 v 5.896617 h -0.69729 z"
id="path10826" /><path
d="m 210.52425,65.02589 v 0.341064 h -3.206 q 0.0455,0.720024 0.43202,1.098984 0.39033,0.375171 1.08382,0.375171 0.4017,0 0.77687,-0.09853 0.37896,-0.09853 0.75034,-0.295589 v 0.659391 q -0.37517,0.159163 -0.76929,0.242534 -0.39412,0.08337 -0.7996,0.08337 -1.01562,0 -1.61058,-0.591177 -0.59118,-0.591178 -0.59118,-1.599211 0,-1.04214 0.56086,-1.652266 0.56465,-0.613915 1.51963,-0.613915 0.85645,0 1.35289,0.553282 0.50022,0.549492 0.50022,1.496892 z m -0.69728,-0.204638 q -0.008,-0.57223 -0.32212,-0.913293 -0.31075,-0.341064 -0.82613,-0.341064 -0.5836,0 -0.93603,0.329695 -0.34865,0.329695 -0.4017,0.928452 z"
id="path10828" /></g><g
aria-label="Inventory"
id="text9115"
style="font-size:7.7611px;line-height:1.25;-inkscape-font-specification:sans-serif;letter-spacing:0px;word-spacing:0px;stroke-width:0.264583"><path
d="m 310.82775,61.326327 h 0.7655 V 66.9842 h -0.7655 z"
id="path10797" /><path
d="m 316.61447,64.42243 v 2.56177 h -0.69729 v -2.539032 q 0,-0.602546 -0.23495,-0.901925 -0.23496,-0.299378 -0.70487,-0.299378 -0.56465,0 -0.89055,0.360012 -0.32591,0.360012 -0.32591,0.981506 V 66.9842 h -0.70108 v -4.244352 h 0.70108 v 0.65939 q 0.25011,-0.382749 0.58739,-0.572229 0.34106,-0.18948 0.78444,-0.18948 0.7314,0 1.10657,0.454752 0.37517,0.450962 0.37517,1.330149 z"
id="path10799" /><path
d="m 317.50502,62.739848 h 0.73898 l 1.32636,3.562224 1.32636,-3.562224 h 0.73897 l -1.59163,4.244352 h -0.9474 z"
id="path10801" /><path
d="m 326.22868,64.687702 v 0.341064 h -3.206 q 0.0455,0.720024 0.43201,1.098984 0.39033,0.37517 1.08383,0.37517 0.4017,0 0.77687,-0.09853 0.37896,-0.09853 0.75034,-0.295589 v 0.65939 q -0.37517,0.159164 -0.76929,0.242535 -0.39412,0.08337 -0.79961,0.08337 -1.01561,0 -1.61057,-0.591178 -0.59118,-0.591177 -0.59118,-1.599211 0,-1.042139 0.56086,-1.652265 0.56465,-0.613915 1.51963,-0.613915 0.85645,0 1.35288,0.553281 0.50023,0.549492 0.50023,1.496892 z m -0.69728,-0.204638 q -0.008,-0.57223 -0.32212,-0.913294 -0.31075,-0.341064 -0.82613,-0.341064 -0.5836,0 -0.93603,0.329696 -0.34865,0.329695 -0.4017,0.928451 z"
id="path10803" /><path
d="m 330.90126,64.42243 v 2.56177 h -0.69729 v -2.539032 q 0,-0.602546 -0.23495,-0.901925 -0.23496,-0.299378 -0.70487,-0.299378 -0.56465,0 -0.89055,0.360012 -0.32591,0.360012 -0.32591,0.981506 V 66.9842 h -0.70108 v -4.244352 h 0.70108 v 0.65939 q 0.25011,-0.382749 0.58739,-0.572229 0.34106,-0.18948 0.78444,-0.18948 0.7314,0 1.10657,0.454752 0.37517,0.450962 0.37517,1.330149 z"
id="path10805" /><path
d="m 332.98175,61.534755 v 1.205093 h 1.43626 v 0.541913 h -1.43626 v 2.304076 q 0,0.519175 0.14021,0.66697 0.14401,0.147794 0.57981,0.147794 h 0.71624 V 66.9842 h -0.71624 q -0.80718,0 -1.11414,-0.299379 -0.30696,-0.303168 -0.30696,-1.098984 v -2.304076 h -0.51159 v -0.541913 h 0.51159 v -1.205093 z"
id="path10807" /><path
d="m 336.97978,63.228706 q -0.56087,0 -0.88677,0.439594 -0.32591,0.435804 -0.32591,1.197513 0,0.76171 0.32212,1.201303 0.32591,0.435804 0.89056,0.435804 0.55707,0 0.88297,-0.439593 0.32591,-0.439594 0.32591,-1.197514 0,-0.75413 -0.32591,-1.193723 -0.3259,-0.443384 -0.88297,-0.443384 z m 0,-0.591177 q 0.9095,0 1.42867,0.591177 0.51918,0.591178 0.51918,1.637107 0,1.04214 -0.51918,1.637107 -0.51917,0.591178 -1.42867,0.591178 -0.9133,0 -1.43247,-0.591178 -0.51539,-0.594967 -0.51539,-1.637107 0,-1.045929 0.51539,-1.637107 0.51917,-0.591177 1.43247,-0.591177 z"
id="path10809" /><path
d="m 342.54291,63.391659 q -0.11748,-0.06821 -0.2577,-0.09853 -0.13642,-0.03411 -0.30316,-0.03411 -0.59118,0 -0.90951,0.386539 -0.31453,0.38275 -0.31453,1.102774 V 66.9842 h -0.70108 v -4.244352 h 0.70108 v 0.65939 q 0.21979,-0.386539 0.57223,-0.572229 0.35243,-0.18948 0.85644,-0.18948 0.072,0 0.15917,0.01137 0.0872,0.0076 0.19327,0.02653 z"
id="path10811" /><path
d="m 345.04025,67.378318 q -0.29558,0.75792 -0.57602,0.989085 -0.28043,0.231166 -0.75034,0.231166 h -0.55707 v -0.583598 h 0.40928 q 0.28801,0 0.44717,-0.136426 0.15917,-0.136426 0.35244,-0.644232 l 0.12505,-0.318326 -1.71669,-4.176139 h 0.73898 l 1.32636,3.319689 1.32635,-3.319689 h 0.73898 z"
id="path10813" /></g><g
id="g452"
transform="matrix(0.61225773,0,0,0.52463712,206.64886,55.548447)"
style="fill:#4d4d4d"><path
d="m 23.82,19.52 h -2.25 a 8.43,8.43 0 0 0 -0.44,-1.08 l 1.6,-1.6 A 0.62,0.62 0 0 0 22.8,16.05 10.65,10.65 0 0 0 20,13.26 0.62,0.62 0 0 0 19.2,13.33 l -1.59,1.59 a 8.27,8.27 0 0 0 -1.1,-0.47 v -2.26 a 0.61,0.61 0 0 0 -0.5,-0.61 10.22,10.22 0 0 0 -3.94,0 0.63,0.63 0 0 0 -0.51,0.62 v 2.24 A 8.89,8.89 0 0 0 10.41,14.9 L 8.81,13.3 A 0.62,0.62 0 0 0 8.02,13.23 10.65,10.65 0 0 0 5.26,16 0.62,0.62 0 0 0 5.33,16.8 l 1.59,1.59 A 7.91,7.91 0 0 0 6.43,19.55 H 4.18 a 0.64,0.64 0 0 0 -0.62,0.51 10.87,10.87 0 0 0 0,3.94 0.64,0.64 0 0 0 0.62,0.51 h 2.25 a 7.91,7.91 0 0 0 0.49,1.16 l -1.59,1.56 a 0.62,0.62 0 0 0 -0.07,0.8 10.36,10.36 0 0 0 2.79,2.77 0.62,0.62 0 0 0 0.79,-0.07 l 1.6,-1.6 a 8.89,8.89 0 0 0 1.15,0.46 v 2.24 a 0.63,0.63 0 0 0 0.51,0.62 10.64,10.64 0 0 0 1.9,0.17 10.15,10.15 0 0 0 2,-0.2 0.61,0.61 0 0 0 0.5,-0.61 v -2.26 a 8.27,8.27 0 0 0 1.1,-0.47 l 1.59,1.59 a 0.62,0.62 0 0 0 0.8,0.07 A 10.65,10.65 0 0 0 22.8,28 0.62,0.62 0 0 0 22.73,27.21 l -1.6,-1.6 a 8.43,8.43 0 0 0 0.44,-1.08 h 2.25 a 0.64,0.64 0 0 0 0.62,-0.51 10.87,10.87 0 0 0 0,-3.94 0.64,0.64 0 0 0 -0.62,-0.56 z m -0.53,3.71 H 21.1 a 0.62,0.62 0 0 0 -0.6,0.47 7.1,7.1 0 0 1 -0.69,1.66 0.62,0.62 0 0 0 0.1,0.75 l 1.56,1.56 a 9.82,9.82 0 0 1 -1.73,1.74 l -1.55,-1.55 a 0.62,0.62 0 0 0 -0.76,-0.09 6.73,6.73 0 0 1 -1.68,0.71 0.62,0.62 0 0 0 -0.46,0.6 v 2.2 a 8.73,8.73 0 0 1 -2.45,0 v -2.16 a 0.63,0.63 0 0 0 -0.47,-0.61 6.68,6.68 0 0 1 -1.73,-0.7 0.62,0.62 0 0 0 -0.75,0.1 L 8.33,29.47 A 9.82,9.82 0 0 1 6.59,27.74 L 8.14,26.19 A 0.62,0.62 0 0 0 8.23,25.43 6.68,6.68 0 0 1 7.5,23.69 0.62,0.62 0 0 0 6.9,23.23 H 4.71 a 8.45,8.45 0 0 1 0,-2.46 H 6.9 A 0.62,0.62 0 0 0 7.5,20.31 6.68,6.68 0 0 1 8.23,18.57 0.62,0.62 0 0 0 8.14,17.81 L 6.59,16.26 a 9.82,9.82 0 0 1 1.74,-1.73 l 1.56,1.56 a 0.62,0.62 0 0 0 0.75,0.1 6.68,6.68 0 0 1 1.73,-0.7 0.63,0.63 0 0 0 0.47,-0.61 V 12.7 a 8.73,8.73 0 0 1 2.45,0 v 2.2 a 0.62,0.62 0 0 0 0.46,0.6 6.73,6.73 0 0 1 1.68,0.71 0.62,0.62 0 0 0 0.76,-0.09 l 1.55,-1.55 a 9.82,9.82 0 0 1 1.73,1.74 l -1.56,1.56 a 0.62,0.62 0 0 0 -0.1,0.75 7.1,7.1 0 0 1 0.69,1.66 0.62,0.62 0 0 0 0.6,0.47 h 2.19 a 8.45,8.45 0 0 1 0,2.46 z"
id="path444"
style="fill:#4d4d4d" /><path
d="M 14,18.52 A 3.48,3.48 0 1 0 17.48,22 3.48,3.48 0 0 0 14,18.52 Z m 0,5.71 A 2.23,2.23 0 1 1 16.23,22 2.23,2.23 0 0 1 14,24.23 Z"
id="path446"
style="fill:#4d4d4d" /><path
d="M 32.47,10.4 A 0.62,0.62 0 0 0 31.86,9.89 H 30.14 A 6.22,6.22 0 0 0 29.85,9.18 L 31.07,8 A 0.63,0.63 0 0 0 31.15,7.21 8.83,8.83 0 0 0 28.9,4.9 0.63,0.63 0 0 0 28.1,4.97 L 26.89,6.18 A 6.66,6.66 0 0 0 26.16,5.87 V 4.15 a 0.61,0.61 0 0 0 -0.51,-0.61 8.34,8.34 0 0 0 -3.19,0 0.61,0.61 0 0 0 -0.51,0.61 V 5.84 A 5.16,5.16 0 0 0 21.18,6.15 L 20,4.93 A 0.63,0.63 0 0 0 19.21,4.85 8.83,8.83 0 0 0 16.9,7.1 0.63,0.63 0 0 0 16.97,7.9 l 1.21,1.21 a 7.83,7.83 0 0 0 -0.47,1.25 0.63,0.63 0 0 0 0.45,0.76 0.62,0.62 0 0 0 0.76,-0.44 A 5.44,5.44 0 0 1 19.49,9.32 0.62,0.62 0 0 0 19.4,8.56 L 18.24,7.4 a 7.35,7.35 0 0 1 1.22,-1.21 l 1.16,1.17 a 0.63,0.63 0 0 0 0.76,0.1 4.92,4.92 0 0 1 1.34,-0.55 0.63,0.63 0 0 0 0.48,-0.6 V 4.67 a 7,7 0 0 1 1.71,0 v 1.66 a 0.63,0.63 0 0 0 0.46,0.61 5.2,5.2 0 0 1 1.31,0.55 0.62,0.62 0 0 0 0.76,-0.09 L 28.6,6.24 a 7.35,7.35 0 0 1 1.21,1.22 l -1.17,1.16 a 0.63,0.63 0 0 0 -0.1,0.76 5,5 0 0 1 0.54,1.3 0.62,0.62 0 0 0 0.6,0.46 h 1.64 a 6.19,6.19 0 0 1 0,1.72 h -1.64 a 0.62,0.62 0 0 0 -0.6,0.46 5,5 0 0 1 -0.54,1.3 0.63,0.63 0 0 0 0.1,0.76 l 1.17,1.16 A 7.35,7.35 0 0 1 28.6,17.76 L 27.44,16.6 a 0.62,0.62 0 0 0 -0.76,-0.09 5.2,5.2 0 0 1 -1.31,0.55 0.63,0.63 0 0 0 0.33,1.21 6.33,6.33 0 0 0 1.19,-0.45 L 28.1,19 a 0.62,0.62 0 0 0 0.44,0.18 0.69,0.69 0 0 0 0.36,-0.11 8.83,8.83 0 0 0 2.25,-2.27 0.63,0.63 0 0 0 -0.08,-0.79 l -1.22,-1.22 a 6.22,6.22 0 0 0 0.29,-0.71 h 1.72 a 0.62,0.62 0 0 0 0.61,-0.51 8.61,8.61 0 0 0 0,-3.2 z"
id="path448"
style="fill:#4d4d4d" /><path
d="M 24,13.66 A 0.63,0.63 0 0 0 24,14.91 2.91,2.91 0 1 0 21.09,12 0.63,0.63 0 0 0 22.34,12 1.66,1.66 0 1 1 24,13.66 Z"
id="path450"
style="fill:#4d4d4d" /></g></g><g
inkscape:label="managed node 1"
inkscape:groupmode="layer"
id="layer1-2"
transform="translate(-154.12628,34.333078)" /><g
inkscape:label="managed node 2"
inkscape:groupmode="layer"
id="g10044"
transform="translate(-154.12628,34.333078)" /><g
inkscape:label="managed node 3"
inkscape:groupmode="layer"
id="g10073"
transform="translate(-154.12628,34.333078)" /><g
inkscape:groupmode="layer"
id="layer3"
inkscape:label="arrows"
transform="translate(-143.23061,-11.064939)"><g
id="g10723"
transform="translate(-12.170833)"><g
id="g10676"><g
id="g10119"
transform="translate(7.625169,40.10635)"><g
id="g10026"
transform="translate(39.687516,-33.86668)"><g
aria-label="Managed node 1"
id="text2650-6"
style="font-size:7.7611px;line-height:1.25;-inkscape-font-specification:sans-serif;text-align:center;letter-spacing:0px;word-spacing:0px;text-anchor:middle;stroke-width:0.264583"><path
d="m 170.84965,134.92073 h 1.14067 l 1.44384,3.85023 1.45142,-3.85023 h 1.14066 v 5.65787 h -0.74655 v -4.96817 l -1.45899,3.88055 h -0.76929 l -1.459,-3.88055 v 4.96817 h -0.74276 z"
id="path10856" /><path
d="m 179.44446,138.44505 q -0.84508,0 -1.17098,0.19327 -0.32591,0.19327 -0.32591,0.65939 0,0.37138 0.24254,0.59118 0.24632,0.21601 0.66697,0.21601 0.5798,0 0.92845,-0.40928 0.35243,-0.41307 0.35243,-1.09519 v -0.15538 z m 1.39079,-0.28801 v 2.42156 h -0.69729 v -0.64423 q -0.23874,0.38654 -0.59497,0.57223 -0.35622,0.1819 -0.87161,0.1819 -0.65181,0 -1.03835,-0.36381 -0.38274,-0.36759 -0.38274,-0.9815 0,-0.71624 0.47748,-1.08004 0.48128,-0.3638 1.43247,-0.3638 h 0.97772 v -0.0682 q 0,-0.48128 -0.31833,-0.74276 -0.31453,-0.26528 -0.88676,-0.26528 -0.3638,0 -0.70866,0.0872 -0.34485,0.0872 -0.66318,0.26148 v -0.64423 q 0.38275,-0.1478 0.74276,-0.2198 0.36002,-0.0758 0.70108,-0.0758 0.92087,0 1.37562,0.47749 0.45476,0.47749 0.45476,1.44762 z"
id="path10858" /><path
d="m 185.79962,138.01683 v 2.56177 h -0.69728 v -2.53903 q 0,-0.60255 -0.23496,-0.90193 -0.23496,-0.29938 -0.70487,-0.29938 -0.56465,0 -0.89055,0.36002 -0.32591,0.36001 -0.32591,0.9815 v 2.39882 h -0.70107 v -4.24435 h 0.70107 v 0.65939 q 0.25012,-0.38275 0.58739,-0.57223 0.34106,-0.18948 0.78445,-0.18948 0.73139,0 1.10656,0.45475 0.37517,0.45096 0.37517,1.33015 z"
id="path10860" /><path
d="m 189.11931,138.44505 q -0.84508,0 -1.17098,0.19327 -0.32591,0.19327 -0.32591,0.65939 0,0.37138 0.24253,0.59118 0.24633,0.21601 0.66697,0.21601 0.57981,0 0.92846,-0.40928 0.35243,-0.41307 0.35243,-1.09519 v -0.15538 z m 1.39078,-0.28801 v 2.42156 h -0.69728 v -0.64423 q -0.23875,0.38654 -0.59497,0.57223 -0.35622,0.1819 -0.87161,0.1819 -0.65181,0 -1.03835,-0.36381 -0.38275,-0.36759 -0.38275,-0.9815 0,-0.71624 0.47749,-1.08004 0.48128,-0.3638 1.43247,-0.3638 h 0.97772 v -0.0682 q 0,-0.48128 -0.31833,-0.74276 -0.31453,-0.26528 -0.88676,-0.26528 -0.36381,0 -0.70866,0.0872 -0.34485,0.0872 -0.66318,0.26148 v -0.64423 q 0.38275,-0.1478 0.74276,-0.2198 0.36001,-0.0758 0.70108,-0.0758 0.92087,0 1.37562,0.47749 0.45475,0.47749 0.45475,1.44762 z"
id="path10862" /><path
d="m 194.73929,138.40716 q 0,-0.75792 -0.31454,-1.17478 -0.31075,-0.41685 -0.8754,-0.41685 -0.56086,0 -0.87539,0.41685 -0.31075,0.41686 -0.31075,1.17478 0,0.75413 0.31075,1.17098 0.31453,0.41686 0.87539,0.41686 0.56465,0 0.8754,-0.41686 0.31454,-0.41685 0.31454,-1.17098 z m 0.69728,1.64468 q 0,1.08383 -0.48128,1.61058 -0.48127,0.53055 -1.47415,0.53055 -0.36759,0 -0.6935,-0.0568 -0.3259,-0.0531 -0.63286,-0.16674 v -0.67834 q 0.30696,0.16675 0.60634,0.24633 0.29938,0.0796 0.61012,0.0796 0.68592,0 1.02698,-0.36001 0.34107,-0.35623 0.34107,-1.08004 v -0.34485 q -0.21601,0.37517 -0.55328,0.56086 -0.33728,0.18569 -0.80719,0.18569 -0.78066,0 -1.25815,-0.59497 -0.47749,-0.59497 -0.47749,-1.57647 0,-0.9853 0.47749,-1.58027 0.47749,-0.59496 1.25815,-0.59496 0.46991,0 0.80719,0.18569 0.33727,0.18569 0.55328,0.56086 v -0.64423 h 0.69728 z"
id="path10864" /><path
d="m 200.50327,138.2821 v 0.34106 h -3.206 q 0.0455,0.72003 0.43201,1.09899 0.39033,0.37517 1.08383,0.37517 0.40169,0 0.77686,-0.0985 0.37896,-0.0985 0.75035,-0.29559 v 0.65939 q -0.37517,0.15916 -0.76929,0.24254 -0.39412,0.0834 -0.79961,0.0834 -1.01561,0 -1.61058,-0.59118 -0.59118,-0.59118 -0.59118,-1.59921 0,-1.04214 0.56086,-1.65227 0.56466,-0.61391 1.51963,-0.61391 0.85645,0 1.35289,0.55328 0.50023,0.54949 0.50023,1.49689 z m -0.69729,-0.20464 q -0.008,-0.57223 -0.32211,-0.91329 -0.31075,-0.34107 -0.82614,-0.34107 -0.58359,0 -0.93603,0.3297 -0.34864,0.3297 -0.4017,0.92845 z"
id="path10866" /><path
d="m 204.44066,136.97848 v -2.2965 h 0.69729 v 5.89662 h -0.69729 v -0.63665 q -0.2198,0.37896 -0.55707,0.56465 -0.33348,0.1819 -0.80339,0.1819 -0.76929,0 -1.25436,-0.61392 -0.48128,-0.61391 -0.48128,-1.61437 0,-1.00045 0.48128,-1.61437 0.48507,-0.61391 1.25436,-0.61391 0.46991,0 0.80339,0.18569 0.33727,0.1819 0.55707,0.56086 z m -2.37608,1.48173 q 0,0.76929 0.31454,1.20888 0.31833,0.43581 0.87161,0.43581 0.55328,0 0.87161,-0.43581 0.31832,-0.43959 0.31832,-1.20888 0,-0.76929 -0.31832,-1.20509 -0.31833,-0.43959 -0.87161,-0.43959 -0.55328,0 -0.87161,0.43959 -0.31454,0.4358 -0.31454,1.20509 z"
id="path10868" /><path
d="m 178.83813,147.7182 v 2.56177 h -0.69729 v -2.53903 q 0,-0.60255 -0.23495,-0.90192 -0.23496,-0.29938 -0.70487,-0.29938 -0.56465,0 -0.89056,0.36001 -0.3259,0.36001 -0.3259,0.98151 v 2.39881 h -0.70108 v -4.24435 h 0.70108 v 0.65939 q 0.25011,-0.38275 0.58739,-0.57223 0.34106,-0.18948 0.78444,-0.18948 0.7314,0 1.10657,0.45475 0.37517,0.45097 0.37517,1.33015 z"
id="path10870" /><path
d="m 181.8736,146.52448 q -0.56086,0 -0.88677,0.43959 -0.32591,0.43581 -0.32591,1.19752 0,0.76171 0.32212,1.2013 0.32591,0.4358 0.89056,0.4358 0.55707,0 0.88297,-0.43959 0.32591,-0.43959 0.32591,-1.19751 0,-0.75413 -0.32591,-1.19373 -0.3259,-0.44338 -0.88297,-0.44338 z m 0,-0.59118 q 0.9095,0 1.42868,0.59118 0.51917,0.59118 0.51917,1.63711 0,1.04214 -0.51917,1.6371 -0.51918,0.59118 -1.42868,0.59118 -0.9133,0 -1.43247,-0.59118 -0.51539,-0.59496 -0.51539,-1.6371 0,-1.04593 0.51539,-1.63711 0.51917,-0.59118 1.43247,-0.59118 z"
id="path10872" /><path
d="m 187.77021,146.67985 v -2.29649 h 0.69729 v 5.89661 h -0.69729 v -0.63665 q -0.21979,0.37896 -0.55707,0.56465 -0.33348,0.1819 -0.80339,0.1819 -0.76929,0 -1.25436,-0.61391 -0.48128,-0.61392 -0.48128,-1.61437 0,-1.00046 0.48128,-1.61437 0.48507,-0.61392 1.25436,-0.61392 0.46991,0 0.80339,0.18569 0.33728,0.1819 0.55707,0.56086 z m -2.37608,1.48174 q 0,0.76929 0.31454,1.20888 0.31833,0.4358 0.87161,0.4358 0.55328,0 0.87161,-0.4358 0.31832,-0.43959 0.31832,-1.20888 0,-0.76929 -0.31832,-1.2051 -0.31833,-0.43959 -0.87161,-0.43959 -0.55328,0 -0.87161,0.43959 -0.31454,0.43581 -0.31454,1.2051 z"
id="path10874" /><path
d="m 193.53419,147.98348 v 0.34106 h -3.206 q 0.0455,0.72002 0.43202,1.09898 0.39033,0.37517 1.08382,0.37517 0.4017,0 0.77687,-0.0985 0.37896,-0.0985 0.75034,-0.29558 v 0.65939 q -0.37517,0.15916 -0.76929,0.24253 -0.39412,0.0834 -0.7996,0.0834 -1.01562,0 -1.61058,-0.59118 -0.59118,-0.59117 -0.59118,-1.59921 0,-1.04214 0.56086,-1.65226 0.56465,-0.61392 1.51963,-0.61392 0.85645,0 1.35289,0.55328 0.50022,0.5495 0.50022,1.4969 z m -0.69728,-0.20464 q -0.008,-0.57223 -0.32212,-0.9133 -0.31074,-0.34106 -0.82613,-0.34106 -0.5836,0 -0.93603,0.32969 -0.34864,0.3297 -0.4017,0.92846 z"
id="path10876" /><path
d="m 197.37685,149.63574 h 1.25057 v -4.31635 l -1.36047,0.27285 v -0.69729 l 1.35289,-0.27285 h 0.7655 v 5.01364 h 1.25056 v 0.64423 h -3.25905 z"
id="path10878" /></g><g
id="g9222"
style="fill:#4d4d4d"
transform="matrix(1.6265445,0,0,1.8941561,158.96282,108.29438)"><path
d="M 25,8.37 A 0.63,0.63 0 0 0 24.38,9 0.63,0.63 0 0 0 25.63,9 0.63,0.63 0 0 0 25,8.37 Z"
id="path9216"
style="fill:#4d4d4d" /><path
d="M 27,8.37 A 0.63,0.63 0 0 0 26.38,9 0.63,0.63 0 0 0 27.63,9 0.63,0.63 0 0 0 27,8.37 Z"
id="path9218"
style="fill:#4d4d4d" /><path
d="M 31,4.38 H 5 A 0.61,0.61 0 0 0 4.38,5 V 31 A 0.61,0.61 0 0 0 5,31.62 H 31 A 0.61,0.61 0 0 0 31.62,31 V 5 A 0.61,0.61 0 0 0 31,4.38 Z m -0.62,26 H 5.62 V 5.62 h 24.76 z"
id="path9220"
style="fill:#4d4d4d" /></g></g><g
id="g10042"
transform="translate(84.137546,17.991671)"><g
id="g10053"
transform="translate(8.9958322,1.5874998)"><g
aria-label="Managed node 2"
id="text10032"
style="font-size:7.7611px;line-height:1.25;-inkscape-font-specification:sans-serif;text-align:center;letter-spacing:0px;word-spacing:0px;text-anchor:middle;stroke-width:0.264583"><path
d="m 170.84965,134.92073 h 1.14067 l 1.44384,3.85023 1.45142,-3.85023 h 1.14066 v 5.65787 h -0.74655 v -4.96817 l -1.45899,3.88055 h -0.76929 l -1.459,-3.88055 v 4.96817 h -0.74276 z"
id="path10881" /><path
d="m 179.44446,138.44505 q -0.84508,0 -1.17098,0.19327 -0.32591,0.19327 -0.32591,0.65939 0,0.37138 0.24254,0.59118 0.24632,0.21601 0.66697,0.21601 0.5798,0 0.92845,-0.40928 0.35243,-0.41307 0.35243,-1.09519 v -0.15538 z m 1.39079,-0.28801 v 2.42156 h -0.69729 v -0.64423 q -0.23874,0.38654 -0.59497,0.57223 -0.35622,0.1819 -0.87161,0.1819 -0.65181,0 -1.03835,-0.36381 -0.38274,-0.36759 -0.38274,-0.9815 0,-0.71624 0.47748,-1.08004 0.48128,-0.3638 1.43247,-0.3638 h 0.97772 v -0.0682 q 0,-0.48128 -0.31833,-0.74276 -0.31453,-0.26528 -0.88676,-0.26528 -0.3638,0 -0.70866,0.0872 -0.34485,0.0872 -0.66318,0.26148 v -0.64423 q 0.38275,-0.1478 0.74276,-0.2198 0.36002,-0.0758 0.70108,-0.0758 0.92087,0 1.37562,0.47749 0.45476,0.47749 0.45476,1.44762 z"
id="path10883" /><path
d="m 185.79962,138.01683 v 2.56177 h -0.69728 v -2.53903 q 0,-0.60255 -0.23496,-0.90193 -0.23496,-0.29938 -0.70487,-0.29938 -0.56465,0 -0.89055,0.36002 -0.32591,0.36001 -0.32591,0.9815 v 2.39882 h -0.70107 v -4.24435 h 0.70107 v 0.65939 q 0.25012,-0.38275 0.58739,-0.57223 0.34106,-0.18948 0.78445,-0.18948 0.73139,0 1.10656,0.45475 0.37517,0.45096 0.37517,1.33015 z"
id="path10885" /><path
d="m 189.11931,138.44505 q -0.84508,0 -1.17098,0.19327 -0.32591,0.19327 -0.32591,0.65939 0,0.37138 0.24253,0.59118 0.24633,0.21601 0.66697,0.21601 0.57981,0 0.92846,-0.40928 0.35243,-0.41307 0.35243,-1.09519 v -0.15538 z m 1.39078,-0.28801 v 2.42156 h -0.69728 v -0.64423 q -0.23875,0.38654 -0.59497,0.57223 -0.35622,0.1819 -0.87161,0.1819 -0.65181,0 -1.03835,-0.36381 -0.38275,-0.36759 -0.38275,-0.9815 0,-0.71624 0.47749,-1.08004 0.48128,-0.3638 1.43247,-0.3638 h 0.97772 v -0.0682 q 0,-0.48128 -0.31833,-0.74276 -0.31453,-0.26528 -0.88676,-0.26528 -0.36381,0 -0.70866,0.0872 -0.34485,0.0872 -0.66318,0.26148 v -0.64423 q 0.38275,-0.1478 0.74276,-0.2198 0.36001,-0.0758 0.70108,-0.0758 0.92087,0 1.37562,0.47749 0.45475,0.47749 0.45475,1.44762 z"
id="path10887" /><path
d="m 194.73929,138.40716 q 0,-0.75792 -0.31454,-1.17478 -0.31075,-0.41685 -0.8754,-0.41685 -0.56086,0 -0.87539,0.41685 -0.31075,0.41686 -0.31075,1.17478 0,0.75413 0.31075,1.17098 0.31453,0.41686 0.87539,0.41686 0.56465,0 0.8754,-0.41686 0.31454,-0.41685 0.31454,-1.17098 z m 0.69728,1.64468 q 0,1.08383 -0.48128,1.61058 -0.48127,0.53055 -1.47415,0.53055 -0.36759,0 -0.6935,-0.0568 -0.3259,-0.0531 -0.63286,-0.16674 v -0.67834 q 0.30696,0.16675 0.60634,0.24633 0.29938,0.0796 0.61012,0.0796 0.68592,0 1.02698,-0.36001 0.34107,-0.35623 0.34107,-1.08004 v -0.34485 q -0.21601,0.37517 -0.55328,0.56086 -0.33728,0.18569 -0.80719,0.18569 -0.78066,0 -1.25815,-0.59497 -0.47749,-0.59497 -0.47749,-1.57647 0,-0.9853 0.47749,-1.58027 0.47749,-0.59496 1.25815,-0.59496 0.46991,0 0.80719,0.18569 0.33727,0.18569 0.55328,0.56086 v -0.64423 h 0.69728 z"
id="path10889" /><path
d="m 200.50327,138.2821 v 0.34106 h -3.206 q 0.0455,0.72003 0.43201,1.09899 0.39033,0.37517 1.08383,0.37517 0.40169,0 0.77686,-0.0985 0.37896,-0.0985 0.75035,-0.29559 v 0.65939 q -0.37517,0.15916 -0.76929,0.24254 -0.39412,0.0834 -0.79961,0.0834 -1.01561,0 -1.61058,-0.59118 -0.59118,-0.59118 -0.59118,-1.59921 0,-1.04214 0.56086,-1.65227 0.56466,-0.61391 1.51963,-0.61391 0.85645,0 1.35289,0.55328 0.50023,0.54949 0.50023,1.49689 z m -0.69729,-0.20464 q -0.008,-0.57223 -0.32211,-0.91329 -0.31075,-0.34107 -0.82614,-0.34107 -0.58359,0 -0.93603,0.3297 -0.34864,0.3297 -0.4017,0.92845 z"
id="path10891" /><path
d="m 204.44066,136.97848 v -2.2965 h 0.69729 v 5.89662 h -0.69729 v -0.63665 q -0.2198,0.37896 -0.55707,0.56465 -0.33348,0.1819 -0.80339,0.1819 -0.76929,0 -1.25436,-0.61392 -0.48128,-0.61391 -0.48128,-1.61437 0,-1.00045 0.48128,-1.61437 0.48507,-0.61391 1.25436,-0.61391 0.46991,0 0.80339,0.18569 0.33727,0.1819 0.55707,0.56086 z m -2.37608,1.48173 q 0,0.76929 0.31454,1.20888 0.31833,0.43581 0.87161,0.43581 0.55328,0 0.87161,-0.43581 0.31832,-0.43959 0.31832,-1.20888 0,-0.76929 -0.31832,-1.20509 -0.31833,-0.43959 -0.87161,-0.43959 -0.55328,0 -0.87161,0.43959 -0.31454,0.4358 -0.31454,1.20509 z"
id="path10893" /><path
d="m 178.83813,147.7182 v 2.56177 h -0.69729 v -2.53903 q 0,-0.60255 -0.23495,-0.90192 -0.23496,-0.29938 -0.70487,-0.29938 -0.56465,0 -0.89056,0.36001 -0.3259,0.36001 -0.3259,0.98151 v 2.39881 h -0.70108 v -4.24435 h 0.70108 v 0.65939 q 0.25011,-0.38275 0.58739,-0.57223 0.34106,-0.18948 0.78444,-0.18948 0.7314,0 1.10657,0.45475 0.37517,0.45097 0.37517,1.33015 z"
id="path10895" /><path
d="m 181.8736,146.52448 q -0.56086,0 -0.88677,0.43959 -0.32591,0.43581 -0.32591,1.19752 0,0.76171 0.32212,1.2013 0.32591,0.4358 0.89056,0.4358 0.55707,0 0.88297,-0.43959 0.32591,-0.43959 0.32591,-1.19751 0,-0.75413 -0.32591,-1.19373 -0.3259,-0.44338 -0.88297,-0.44338 z m 0,-0.59118 q 0.9095,0 1.42868,0.59118 0.51917,0.59118 0.51917,1.63711 0,1.04214 -0.51917,1.6371 -0.51918,0.59118 -1.42868,0.59118 -0.9133,0 -1.43247,-0.59118 -0.51539,-0.59496 -0.51539,-1.6371 0,-1.04593 0.51539,-1.63711 0.51917,-0.59118 1.43247,-0.59118 z"
id="path10897" /><path
d="m 187.77021,146.67985 v -2.29649 h 0.69729 v 5.89661 h -0.69729 v -0.63665 q -0.21979,0.37896 -0.55707,0.56465 -0.33348,0.1819 -0.80339,0.1819 -0.76929,0 -1.25436,-0.61391 -0.48128,-0.61392 -0.48128,-1.61437 0,-1.00046 0.48128,-1.61437 0.48507,-0.61392 1.25436,-0.61392 0.46991,0 0.80339,0.18569 0.33728,0.1819 0.55707,0.56086 z m -2.37608,1.48174 q 0,0.76929 0.31454,1.20888 0.31833,0.4358 0.87161,0.4358 0.55328,0 0.87161,-0.4358 0.31832,-0.43959 0.31832,-1.20888 0,-0.76929 -0.31832,-1.2051 -0.31833,-0.43959 -0.87161,-0.43959 -0.55328,0 -0.87161,0.43959 -0.31454,0.43581 -0.31454,1.2051 z"
id="path10899" /><path
d="m 193.53419,147.98348 v 0.34106 h -3.206 q 0.0455,0.72002 0.43202,1.09898 0.39033,0.37517 1.08382,0.37517 0.4017,0 0.77687,-0.0985 0.37896,-0.0985 0.75034,-0.29558 v 0.65939 q -0.37517,0.15916 -0.76929,0.24253 -0.39412,0.0834 -0.7996,0.0834 -1.01562,0 -1.61058,-0.59118 -0.59118,-0.59117 -0.59118,-1.59921 0,-1.04214 0.56086,-1.65226 0.56465,-0.61392 1.51963,-0.61392 0.85645,0 1.35289,0.55328 0.50022,0.5495 0.50022,1.4969 z m -0.69728,-0.20464 q -0.008,-0.57223 -0.32212,-0.9133 -0.31074,-0.34106 -0.82613,-0.34106 -0.5836,0 -0.93603,0.32969 -0.34864,0.3297 -0.4017,0.92846 z"
id="path10901" /><path
d="m 197.9036,149.63574 h 2.67167 v 0.64423 h -3.59254 v -0.64423 q 0.4358,-0.45096 1.18614,-1.20888 0.75413,-0.76171 0.9474,-0.98151 0.3676,-0.41306 0.5116,-0.69728 0.14779,-0.28801 0.14779,-0.56465 0,-0.45097 -0.31832,-0.73519 -0.31454,-0.28422 -0.82234,-0.28422 -0.36002,0 -0.76171,0.12506 -0.39791,0.12506 -0.85266,0.37896 v -0.77308 q 0.46233,-0.18569 0.86402,-0.28043 0.4017,-0.0947 0.73519,-0.0947 0.87918,0 1.40215,0.4396 0.52296,0.43959 0.52296,1.17477 0,0.34864 -0.13263,0.66318 -0.12885,0.31075 -0.4737,0.73518 -0.0947,0.1099 -0.60255,0.63666 -0.50781,0.52296 -1.43247,1.46657 z"
id="path10903" /></g><g
id="g10040"
style="fill:#4d4d4d"
transform="matrix(1.6265445,0,0,1.8941561,158.96282,108.29438)"><path
d="M 25,8.37 A 0.63,0.63 0 0 0 24.38,9 0.63,0.63 0 0 0 25.63,9 0.63,0.63 0 0 0 25,8.37 Z"
id="path10034"
style="fill:#4d4d4d" /><path
d="M 27,8.37 A 0.63,0.63 0 0 0 26.38,9 0.63,0.63 0 0 0 27.63,9 0.63,0.63 0 0 0 27,8.37 Z"
id="path10036"
style="fill:#4d4d4d" /><path
d="M 31,4.38 H 5 A 0.61,0.61 0 0 0 4.38,5 V 31 A 0.61,0.61 0 0 0 5,31.62 H 31 A 0.61,0.61 0 0 0 31.62,31 V 5 A 0.61,0.61 0 0 0 31,4.38 Z m -0.62,26 H 5.62 V 5.62 h 24.76 z"
id="path10038"
style="fill:#4d4d4d" /></g></g></g><g
id="g10071"
transform="translate(137.05445,71.966704)"><g
id="g10069"
transform="translate(8.9958322,1.5874998)"><g
aria-label="Managed node 2"
id="text10059"
style="font-size:7.7611px;line-height:1.25;-inkscape-font-specification:sans-serif;text-align:center;letter-spacing:0px;word-spacing:0px;text-anchor:middle;stroke-width:0.264583"><path
d="m 170.84965,134.92073 h 1.14067 l 1.44384,3.85023 1.45142,-3.85023 h 1.14066 v 5.65787 h -0.74655 v -4.96817 l -1.45899,3.88055 h -0.76929 l -1.459,-3.88055 v 4.96817 h -0.74276 z"
id="path10906" /><path
d="m 179.44446,138.44505 q -0.84508,0 -1.17098,0.19327 -0.32591,0.19327 -0.32591,0.65939 0,0.37138 0.24254,0.59118 0.24632,0.21601 0.66697,0.21601 0.5798,0 0.92845,-0.40928 0.35243,-0.41307 0.35243,-1.09519 v -0.15538 z m 1.39079,-0.28801 v 2.42156 h -0.69729 v -0.64423 q -0.23874,0.38654 -0.59497,0.57223 -0.35622,0.1819 -0.87161,0.1819 -0.65181,0 -1.03835,-0.36381 -0.38274,-0.36759 -0.38274,-0.9815 0,-0.71624 0.47748,-1.08004 0.48128,-0.3638 1.43247,-0.3638 h 0.97772 v -0.0682 q 0,-0.48128 -0.31833,-0.74276 -0.31453,-0.26528 -0.88676,-0.26528 -0.3638,0 -0.70866,0.0872 -0.34485,0.0872 -0.66318,0.26148 v -0.64423 q 0.38275,-0.1478 0.74276,-0.2198 0.36002,-0.0758 0.70108,-0.0758 0.92087,0 1.37562,0.47749 0.45476,0.47749 0.45476,1.44762 z"
id="path10908" /><path
d="m 185.79962,138.01683 v 2.56177 h -0.69728 v -2.53903 q 0,-0.60255 -0.23496,-0.90193 -0.23496,-0.29938 -0.70487,-0.29938 -0.56465,0 -0.89055,0.36002 -0.32591,0.36001 -0.32591,0.9815 v 2.39882 h -0.70107 v -4.24435 h 0.70107 v 0.65939 q 0.25012,-0.38275 0.58739,-0.57223 0.34106,-0.18948 0.78445,-0.18948 0.73139,0 1.10656,0.45475 0.37517,0.45096 0.37517,1.33015 z"
id="path10910" /><path
d="m 189.11931,138.44505 q -0.84508,0 -1.17098,0.19327 -0.32591,0.19327 -0.32591,0.65939 0,0.37138 0.24253,0.59118 0.24633,0.21601 0.66697,0.21601 0.57981,0 0.92846,-0.40928 0.35243,-0.41307 0.35243,-1.09519 v -0.15538 z m 1.39078,-0.28801 v 2.42156 h -0.69728 v -0.64423 q -0.23875,0.38654 -0.59497,0.57223 -0.35622,0.1819 -0.87161,0.1819 -0.65181,0 -1.03835,-0.36381 -0.38275,-0.36759 -0.38275,-0.9815 0,-0.71624 0.47749,-1.08004 0.48128,-0.3638 1.43247,-0.3638 h 0.97772 v -0.0682 q 0,-0.48128 -0.31833,-0.74276 -0.31453,-0.26528 -0.88676,-0.26528 -0.36381,0 -0.70866,0.0872 -0.34485,0.0872 -0.66318,0.26148 v -0.64423 q 0.38275,-0.1478 0.74276,-0.2198 0.36001,-0.0758 0.70108,-0.0758 0.92087,0 1.37562,0.47749 0.45475,0.47749 0.45475,1.44762 z"
id="path10912" /><path
d="m 194.73929,138.40716 q 0,-0.75792 -0.31454,-1.17478 -0.31075,-0.41685 -0.8754,-0.41685 -0.56086,0 -0.87539,0.41685 -0.31075,0.41686 -0.31075,1.17478 0,0.75413 0.31075,1.17098 0.31453,0.41686 0.87539,0.41686 0.56465,0 0.8754,-0.41686 0.31454,-0.41685 0.31454,-1.17098 z m 0.69728,1.64468 q 0,1.08383 -0.48128,1.61058 -0.48127,0.53055 -1.47415,0.53055 -0.36759,0 -0.6935,-0.0568 -0.3259,-0.0531 -0.63286,-0.16674 v -0.67834 q 0.30696,0.16675 0.60634,0.24633 0.29938,0.0796 0.61012,0.0796 0.68592,0 1.02698,-0.36001 0.34107,-0.35623 0.34107,-1.08004 v -0.34485 q -0.21601,0.37517 -0.55328,0.56086 -0.33728,0.18569 -0.80719,0.18569 -0.78066,0 -1.25815,-0.59497 -0.47749,-0.59497 -0.47749,-1.57647 0,-0.9853 0.47749,-1.58027 0.47749,-0.59496 1.25815,-0.59496 0.46991,0 0.80719,0.18569 0.33727,0.18569 0.55328,0.56086 v -0.64423 h 0.69728 z"
id="path10914" /><path
d="m 200.50327,138.2821 v 0.34106 h -3.206 q 0.0455,0.72003 0.43201,1.09899 0.39033,0.37517 1.08383,0.37517 0.40169,0 0.77686,-0.0985 0.37896,-0.0985 0.75035,-0.29559 v 0.65939 q -0.37517,0.15916 -0.76929,0.24254 -0.39412,0.0834 -0.79961,0.0834 -1.01561,0 -1.61058,-0.59118 -0.59118,-0.59118 -0.59118,-1.59921 0,-1.04214 0.56086,-1.65227 0.56466,-0.61391 1.51963,-0.61391 0.85645,0 1.35289,0.55328 0.50023,0.54949 0.50023,1.49689 z m -0.69729,-0.20464 q -0.008,-0.57223 -0.32211,-0.91329 -0.31075,-0.34107 -0.82614,-0.34107 -0.58359,0 -0.93603,0.3297 -0.34864,0.3297 -0.4017,0.92845 z"
id="path10916" /><path
d="m 204.44066,136.97848 v -2.2965 h 0.69729 v 5.89662 h -0.69729 v -0.63665 q -0.2198,0.37896 -0.55707,0.56465 -0.33348,0.1819 -0.80339,0.1819 -0.76929,0 -1.25436,-0.61392 -0.48128,-0.61391 -0.48128,-1.61437 0,-1.00045 0.48128,-1.61437 0.48507,-0.61391 1.25436,-0.61391 0.46991,0 0.80339,0.18569 0.33727,0.1819 0.55707,0.56086 z m -2.37608,1.48173 q 0,0.76929 0.31454,1.20888 0.31833,0.43581 0.87161,0.43581 0.55328,0 0.87161,-0.43581 0.31832,-0.43959 0.31832,-1.20888 0,-0.76929 -0.31832,-1.20509 -0.31833,-0.43959 -0.87161,-0.43959 -0.55328,0 -0.87161,0.43959 -0.31454,0.4358 -0.31454,1.20509 z"
id="path10918" /><path
d="m 178.83813,147.7182 v 2.56177 h -0.69729 v -2.53903 q 0,-0.60255 -0.23495,-0.90192 -0.23496,-0.29938 -0.70487,-0.29938 -0.56465,0 -0.89056,0.36001 -0.3259,0.36001 -0.3259,0.98151 v 2.39881 h -0.70108 v -4.24435 h 0.70108 v 0.65939 q 0.25011,-0.38275 0.58739,-0.57223 0.34106,-0.18948 0.78444,-0.18948 0.7314,0 1.10657,0.45475 0.37517,0.45097 0.37517,1.33015 z"
id="path10920" /><path
d="m 181.8736,146.52448 q -0.56086,0 -0.88677,0.43959 -0.32591,0.43581 -0.32591,1.19752 0,0.76171 0.32212,1.2013 0.32591,0.4358 0.89056,0.4358 0.55707,0 0.88297,-0.43959 0.32591,-0.43959 0.32591,-1.19751 0,-0.75413 -0.32591,-1.19373 -0.3259,-0.44338 -0.88297,-0.44338 z m 0,-0.59118 q 0.9095,0 1.42868,0.59118 0.51917,0.59118 0.51917,1.63711 0,1.04214 -0.51917,1.6371 -0.51918,0.59118 -1.42868,0.59118 -0.9133,0 -1.43247,-0.59118 -0.51539,-0.59496 -0.51539,-1.6371 0,-1.04593 0.51539,-1.63711 0.51917,-0.59118 1.43247,-0.59118 z"
id="path10922" /><path
d="m 187.77021,146.67985 v -2.29649 h 0.69729 v 5.89661 h -0.69729 v -0.63665 q -0.21979,0.37896 -0.55707,0.56465 -0.33348,0.1819 -0.80339,0.1819 -0.76929,0 -1.25436,-0.61391 -0.48128,-0.61392 -0.48128,-1.61437 0,-1.00046 0.48128,-1.61437 0.48507,-0.61392 1.25436,-0.61392 0.46991,0 0.80339,0.18569 0.33728,0.1819 0.55707,0.56086 z m -2.37608,1.48174 q 0,0.76929 0.31454,1.20888 0.31833,0.4358 0.87161,0.4358 0.55328,0 0.87161,-0.4358 0.31832,-0.43959 0.31832,-1.20888 0,-0.76929 -0.31832,-1.2051 -0.31833,-0.43959 -0.87161,-0.43959 -0.55328,0 -0.87161,0.43959 -0.31454,0.43581 -0.31454,1.2051 z"
id="path10924" /><path
d="m 193.53419,147.98348 v 0.34106 h -3.206 q 0.0455,0.72002 0.43202,1.09898 0.39033,0.37517 1.08382,0.37517 0.4017,0 0.77687,-0.0985 0.37896,-0.0985 0.75034,-0.29558 v 0.65939 q -0.37517,0.15916 -0.76929,0.24253 -0.39412,0.0834 -0.7996,0.0834 -1.01562,0 -1.61058,-0.59118 -0.59118,-0.59117 -0.59118,-1.59921 0,-1.04214 0.56086,-1.65226 0.56465,-0.61392 1.51963,-0.61392 0.85645,0 1.35289,0.55328 0.50022,0.5495 0.50022,1.4969 z m -0.69728,-0.20464 q -0.008,-0.57223 -0.32212,-0.9133 -0.31074,-0.34106 -0.82613,-0.34106 -0.5836,0 -0.93603,0.32969 -0.34864,0.3297 -0.4017,0.92846 z"
id="path10926" /><path
d="m 197.9036,149.63574 h 2.67167 v 0.64423 h -3.59254 v -0.64423 q 0.4358,-0.45096 1.18614,-1.20888 0.75413,-0.76171 0.9474,-0.98151 0.3676,-0.41306 0.5116,-0.69728 0.14779,-0.28801 0.14779,-0.56465 0,-0.45097 -0.31832,-0.73519 -0.31454,-0.28422 -0.82234,-0.28422 -0.36002,0 -0.76171,0.12506 -0.39791,0.12506 -0.85266,0.37896 v -0.77308 q 0.46233,-0.18569 0.86402,-0.28043 0.4017,-0.0947 0.73519,-0.0947 0.87918,0 1.40215,0.4396 0.52296,0.43959 0.52296,1.17477 0,0.34864 -0.13263,0.66318 -0.12885,0.31075 -0.4737,0.73518 -0.0947,0.1099 -0.60255,0.63666 -0.50781,0.52296 -1.43247,1.46657 z"
id="path10928" /></g><g
id="g10067"
style="fill:#4d4d4d"
transform="matrix(1.6265445,0,0,1.8941561,158.96282,108.29438)"><path
d="M 25,8.37 A 0.63,0.63 0 0 0 24.38,9 0.63,0.63 0 0 0 25.63,9 0.63,0.63 0 0 0 25,8.37 Z"
id="path10061"
style="fill:#4d4d4d" /><path
d="M 27,8.37 A 0.63,0.63 0 0 0 26.38,9 0.63,0.63 0 0 0 27.63,9 0.63,0.63 0 0 0 27,8.37 Z"
id="path10063"
style="fill:#4d4d4d" /><path
d="M 31,4.38 H 5 A 0.61,0.61 0 0 0 4.38,5 V 31 A 0.61,0.61 0 0 0 5,31.62 H 31 A 0.61,0.61 0 0 0 31.62,31 V 5 A 0.61,0.61 0 0 0 31,4.38 Z m -0.62,26 H 5.62 V 5.62 h 24.76 z"
id="path10065"
style="fill:#4d4d4d" /></g></g></g></g><path
style="fill:none;stroke:#4d4d4d;stroke-width:1.05833;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:none;stroke-opacity:1;marker-end:url(#RoundedArrow)"
d="m 180.75356,107.25614 c 0.92352,153.38601 1.30815,153.66466 1.30815,153.66466 l 130.02933,0.22295"
id="path10481" /></g><path
style="fill:none;stroke:#4d4d4d;stroke-width:1.05833;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:none;stroke-opacity:1;marker-end:url(#marker10543)"
d="m 181.19235,147.58012 25.60095,-0.16364"
id="path10539" /><path
style="fill:none;stroke:#4d4d4d;stroke-width:1.05833;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:none;stroke-opacity:1;marker-end:url(#marker10543)"
d="m 181.8194,203.74287 76.63107,-0.11344"
id="path10589" /></g></g></svg>

After

Width:  |  Height:  |  Size: 47 KiB

@ -10,19 +10,8 @@ User Guide
Red Hat is committed to replacing problematic language in our code, documentation, and web properties. We are beginning with these four terms: master, slave, blacklist, and whitelist. We ask that you open an issue or pull request if you come upon a term that we have missed. For more details, see `our CTO Chris Wright's message <https://www.redhat.com/en/blog/making-open-source-more-inclusive-eradicating-problematic-language>`_.
Welcome to the Ansible User Guide! This guide covers how to work with Ansible, including using the command line, working with inventory, interacting with data, writing tasks, plays, and playbooks; executing playbooks, and reference materials. This page outlines the most common situations and questions that bring readers to this section. If you prefer a traditional table of contents, you can find one at the bottom of the page.
Getting started
===============
* I'd like an overview of how Ansible works. Where can I find:
* a :ref:`quick video overview <quickstart_guide>`
* a :ref:`text introduction <intro_getting_started>`
* I'm ready to learn about Ansible. What :ref:`basic_concepts` do I need to learn?
* I want to use Ansible without writing a playbook. How do I use :ref:`ad hoc commands <intro_adhoc>`?
* I'm running an Ansible command and forgot which flags to use. Do you have a :ref:`cheatsheet`?
Welcome to the Ansible User Guide! This guide covers how to work with Ansible, including using the command line, working with inventory, interacting with data, writing tasks, plays, and playbooks; executing playbooks, and reference materials.
Quickly find answers in the following sections or expand the table of contents below to scroll through all resources.
Writing tasks, plays, and playbooks
===================================
@ -83,21 +72,19 @@ Advanced features and reference
* Rejecting :ref:`specific modules <plugin_filtering_config>`
* Module :ref:`maintenance <modules_support>`
Traditional Table of Contents
=============================
Table of contents
=================
If you prefer to read the entire User Guide, here's a list of the pages in order:
Here is the complete list of resources in the Ansible User Guide:
.. toctree::
:maxdepth: 2
quickstart
cheatsheet
basic_concepts
intro_getting_started
intro_adhoc
playbooks
cheatsheet
playbooks_intro
playbooks
playbooks_best_practices
become
playbooks_loops

@ -1,196 +0,0 @@
.. _intro_getting_started:
***************
Getting Started
***************
Now that you have read the :ref:`installation guide<installation_guide>` and installed Ansible on a control node, you are ready to learn how Ansible works. A basic Ansible command or playbook:
* selects machines to execute against from inventory
* connects to those machines (or network devices, or other managed nodes), usually over SSH
* copies one or more modules to the remote machines and starts execution there
Ansible can do much more, but you should understand the most common use case before exploring all the powerful configuration, deployment, and orchestration features of Ansible. This page illustrates the basic process with a simple inventory and an ad hoc command. Once you understand how Ansible works, you can read more details about :ref:`ad hoc commands<intro_adhoc>`, organize your infrastructure with :ref:`inventory<intro_inventory>`, and harness the full power of Ansible with :ref:`playbooks<playbooks_intro>`.
.. contents::
:local:
Selecting machines from inventory
=================================
Ansible reads information about which machines you want to manage from your inventory. Although you can pass an IP address to an ad hoc command, you need inventory to take advantage of the full flexibility and repeatability of Ansible.
Action: create a basic inventory
--------------------------------
For this basic inventory, edit (or create) ``/etc/ansible/hosts`` and add a few remote systems to it. For this example, use either IP addresses or FQDNs:
.. code-block:: text
192.0.2.50
aserver.example.org
bserver.example.org
Beyond the basics
-----------------
Your inventory can store much more than IPs and FQDNs. You can create :ref:`aliases<inventory_aliases>`, set variable values for a single host with :ref:`host vars<host_variables>`, or set variable values for multiple hosts with :ref:`group vars<group_variables>`.
.. _remote_connection_information:
Connecting to remote nodes
==========================
Ansible communicates with remote machines over the `SSH protocol <https://www.ssh.com/ssh/protocol/>`_. By default, Ansible uses native OpenSSH and connects to remote machines using your current user name, just as SSH does.
Action: check your SSH connections
----------------------------------
Confirm that you can connect using SSH to all the nodes in your inventory using the same username. If necessary, add your public SSH key to the ``authorized_keys`` file on those systems.
Beyond the basics
-----------------
You can override the default remote user name in several ways, including:
- passing the ``-u`` parameter at the command line
- setting user information in your inventory file
- setting user information in your configuration file
- setting environment variables
See :ref:`general_precedence_rules` for details on the (sometimes unintuitive) precedence of each method of passing user information. You can read more about connections in :ref:`connections`.
Copying and executing modules
=============================
Once it has connected, Ansible transfers the modules required by your command or playbook to the remote machine(s) for execution.
Action: run your first Ansible commands
---------------------------------------
Use the ping module to ping all the nodes in your inventory:
.. code-block:: bash
$ ansible all -m ping
You should see output for each host in your inventory, similar to this:
.. code-block:: ansible-output
aserver.example.org | SUCCESS => {
"ansible_facts": {
"discovered_interpreter_python": "/usr/bin/python"
},
"changed": false,
"ping": "pong"
}
You can use ``-u`` as one way to specify the user to connect as, by default Ansible uses SSH, which defaults to the 'current user'.
Now run a live command on all of your nodes:
.. code-block:: bash
$ ansible all -a "/bin/echo hello"
You should see output for each host in your inventory, similar to this:
.. code-block:: ansible-output
aserver.example.org | CHANGED | rc=0 >>
hello
Action: Run your first playbook
-------------------------------
Playbooks are used to pull together tasks into reusable units.
Ansible does not store playbooks for you; they are simply YAML documents that you store and manage, passing them to Ansible to run as needed.
In a directory of your choice you can create your first playbook in a file called mytask.yaml:
.. code-block:: yaml
---
- name: My playbook
hosts: all
tasks:
- name: Leaving a mark
command: "touch /tmp/ansible_was_here"
You can run this command as follows:
.. code-block:: bash
$ ansible-playbook mytask.yaml
and may see output like this:
.. code-block:: ansible-output
PLAY [My playbook] **********************************************************************************************************************
TASK [Gathering Facts] ******************************************************************************************************************
ok: [aserver.example.org]
ok: [aserver.example.org]
ok: [192.0.2.50]
fatal: [192.0.2.50]: UNREACHABLE! => {"changed": false, "msg": "Failed to connect to the host via ssh: ssh: connect to host 192.0.2.50 port 22: No route to host", "unreachable": true}
TASK [Leaving a mark] *******************************************************************************************************************
changed: [aserver.example.org]
changed: [bserver.example.org]
PLAY RECAP ******************************************************************************************************************************
aserver.example.org : ok=2 changed=1 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0
bserver.example.org : ok=2 changed=1 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0
192.0.2.50 : ok=0 changed=0 unreachable=1 failed=0 skipped=0 rescued=0 ignored=0
Read on to learn more about controlling which nodes your playbooks execute on, more sophisticated tasks, and the meaning of the output.
Beyond the basics
-----------------
By default Ansible uses SFTP to transfer files. If the machine or device you want to manage does not support SFTP, you can switch to SCP mode in :ref:`intro_configuration`. The files are placed in a temporary directory and executed from there.
If you need privilege escalation (sudo and similar) to run a command, pass the ``become`` flags:
.. code-block:: bash
# as bruce
$ ansible all -m ping -u bruce
# as bruce, sudoing to root (sudo is default method)
$ ansible all -m ping -u bruce --become
# as bruce, sudoing to batman
$ ansible all -m ping -u bruce --become --become-user batman
You can read more about privilege escalation in :ref:`become`.
Congratulations! You have contacted your nodes using Ansible. You used a basic inventory file and an ad hoc command to direct Ansible to connect to specific remote nodes, copy a module file there and execute it, and return output. You have a fully working infrastructure.
Resources
=================================
- `Product Demos <https://github.com/ansible/product-demos>`_
- `Katakoda <https://katacoda.com/rhel-labs>`_
- `Workshops <https://github.com/ansible/workshops>`_
- `Ansible Examples <https://github.com/ansible/ansible-examples>`_
- `Ansible Baseline <https://github.com/ansible/ansible-baseline>`_
Next steps
==========
Next you can read about more real-world cases in :ref:`intro_adhoc`,
explore what you can do with different modules, or read about the Ansible
:ref:`working_with_playbooks` language. Ansible is not just about running commands, it
also has powerful configuration management and deployment features.
.. seealso::
:ref:`intro_inventory`
More information about inventory
:ref:`intro_adhoc`
Examples of basic commands
:ref:`working_with_playbooks`
Learning Ansible's configuration management language
`Ansible Demos <https://github.com/ansible/product-demos>`_
Demonstrations of different Ansible usecases
`RHEL Labs <https://katacoda.com/rhel-labs>`_
Labs to provide further knowledge on different topics
`Mailing List <https://groups.google.com/group/ansible-project>`_
Questions? Help? Ideas? Stop by the list on Google Groups
:ref:`communication_irc`
How to join Ansible chat channels

@ -1,20 +0,0 @@
.. _quickstart_guide:
Ansible Quickstart Guide
========================
We've recorded a short video that introduces Ansible.
The `quickstart video <https://www.ansible.com/resources/get-started?hsLang=en-us>`_ is about 13 minutes long and gives you a high level
introduction to Ansible -- what it does and how to use it. We'll also tell you about other products in the Ansible ecosystem.
Enjoy, and be sure to visit the rest of the documentation to learn more.
.. seealso::
`A system administrators guide to getting started with Ansible <https://www.redhat.com/en/blog/system-administrators-guide-getting-started-ansible-fast>`_
A step by step introduction to Ansible
`Ansible Automation for SysAdmins <https://opensource.com/downloads/ansible-quickstart>`_
A downloadable guide for getting started with Ansible
:ref:`network_getting_started`
A guide for network engineers using Ansible for the first time
Loading…
Cancel
Save