Configure agents¶
Inmanta agents can be started automatically (auto-started agents) or manually (manually-started agents). This section describes how both types of agents can be set up and configured. Inmanta agents only run on Linux.
Auto-started agents¶
Auto-started agents always run on the Inmanta server. The Inmanta server manages the full lifecycle of these agents.
Requirements¶
The following requirements should be met for agents that don’t map to the Inmanta server (i.e. The managed device is remote
with respect to the Inmanta server and the agent has to execute I/O operations on the remote machine using self._io
):
The Inmanta server should have passphraseless SSH access on the machine it maps to. More information on how to set up SSH connectivity can be found at Step 6: Configure ssh of the inmanta user
The remote machine should have a Python 2 or 3 interpreter installed. The binary executed by default is
python
.
Configuring auto-started agents via environment settings¶
Auto-started agents can be configured via the settings of the environment where the auto-started agent belongs to. The following options are configurable:
The autostart_agent_map
requires an entry for each agent that should be autostarted.
The key is the name of the agent and the value is either local:
for agents that map to the Inmanta server or an SSH
connection string when the agent maps to a remote machine. The SSH connection string requires the following format:
ssh://<user>@<host>:<port>?<options>
. Options is a ampersand-separated list of key=value
pairs. The following options
can be provided:
Option name |
Default value |
Description |
---|---|---|
retries |
10 |
The amount of times the orchestrator will try to establish the SSH connection when the initial attempt failed. |
retry_wait |
30 |
The amount of second between two attempts to establish the SSH connection. |
python |
python |
The Python2 interpreter available on the remote side. This executable has to be discoverable through the system PATH. |
Auto-started agents start when they are required by a specific deployment or when the Inmanta server starts if the
autostart_on_start
setting is set to true.
Configuring the autostart_agent_map via the std::AgentConfig entity¶
The std::AgentConfig
entity provides functionality to add an entry to the
autostart_agent_map
of a specific environment. As such, the auto-started agents can be
managed in the configuration model.
Manually-started agents¶
Manually started agents can be run on any Linux device, but they should be started and configured manually as the name suggests.
Requirements¶
The following requirements should be met for agents that don’t map to the host running the agent process (i.e. The managed
device is remote with respect to the Inmanta agent and the agent has to execute I/O operations on the remote machine using
self._io
):
The Inmanta agent should have passphraseless SSH access on the machine it maps to. More information on how to set up SSH connectivity can be found at Step 6: Configure ssh of the inmanta user
The remote machine should have a Python 2 or 3 interpreter installed. The binary executed by default is
python
.
Step 1: Installing the required Inmanta packages¶
In order to run a manually started agent, the python3-inmanta
and the python3-inmanta-agent
packages are required on the
machine that will run the agent.
sudo tee /etc/yum.repos.d/inmanta_oss_stable.repo <<EOF
[inmanta-oss-stable]
name=Inmanta OSS stable
baseurl=https://pkg.inmanta.com/inmanta-oss-stable/el7/
gpgcheck=1
gpgkey=https://pkg.inmanta.com/inmanta-oss-stable/inmanta-oss-stable-public-key
repo_gpgcheck=1
enabled=1
enabled_metadata=1
EOF
sudo yum install -y python3-inmanta python3-inmanta-agent
Step 2: Configuring the manually-started agent¶
The manually-started agent can be configured via a /etc/inmanta/inmanta.d/*.cfg
config file. The following options
configure the behavior of the manually started agent:
The config.agent-map
option can be configured in the same way as the autostart_agent_map
for
auto-started agents.
Step 3: Starting the manually-started agent¶
Finally, enable and start the inmanta-agent
service:
sudo systemctl enable inmanta-agent
sudo systemctl start inmanta-agent
The logs of the agent are written to /var/log/inmanta/agent.log
.