Pulse 2 Launcher configuration file¶
This document explains the content of the configuration file of the launcher service from Pulse 2.
Introduction¶
The « Launcher » service is the Pulse 2 daemon in charge of doing jobs on clients on scheduler orders.
The service configuration file is /etc/mmc/pulse2/launchers.ini
(please note the ending “s”).
Like all Pulse 2 related configuration file, its file format is INI style. The file is made of sections, each one starting with a « [sectionname] » header. In each section options can be defined like this: « option = value ».
For example:
[section1]
option1 = 1
option2 = 2
[section2]
option1 = foo
option2 = plop
Configuration file sections¶
Some sections describing the different available launchers may appear, their
name must begin with launcher_
. The idea behind this is that the main
section controls the common behavior of launchers, the others control the
specific behaviors.
Section name | Description | Optional |
---|---|---|
launchers | Common launchers configuration directives | yes |
wrapper | wrapper related options | yes |
ssh | ssh modus-operandi related section | yes |
daemon | Launchers services related behaviors | yes |
wol | WOL related behaviors | yes |
wget | Wget related options | yes |
tcp_sproxy | Wget related options | yes |
smart_cleaner | Smart cleaning options | yes |
scheduler_XXX | Referent scheduler location | no |
launcher_XXX | Configuration for launcher_XXX | no |
All the other sections (loggers, handlers, ...) are related to Python language logging framework. See http://docs.python.org/lib/logging-config-fileformat.html.
« launchers » section¶
This section is used to give directives common to every launcher service.
Available options for the “launchers” section:
Option name | Description | Optional | Type | Default value |
---|---|---|---|---|
halt_command | The halt command to use on a client, after a successful deployment. | yes | string | /bin/shutdown.exe -f -s 1 || shutdown -h now |
inventory_command | The inventory command to use on a client, after a successful deployment. | yes | string | export P2SRV=`echo $SSH_CONNECTION | cut -f1 -d; export P2PORT=9999; export http_proxy=””; export ftp_proxy=””; ( [ -x /cygdrive/c/ProgramFiles/FusionInventory-Agent/perl/bin/fusioninventory-agent ] && /cygdrive/c/ProgramFiles/FusionInventory-Agent/perl/bin/perl “C:Program FilesFusionInventory-Agentperl\bin\fusioninventory-agent” /server=http://P2SRV:$P2PORT ) || ( [ -x /cygdrive/c/ProgramFiles(x86)/FusionInventory-Agent/perl/bin/fusioninventory-agent ] && /cygdrive/c/ProgramFiles(x86)/FusionInventory-Agent/perl/bin/perl “C:Program Files (x86)FusionInventory-Agentperl\bin\fusioninventory-agent” /server=http://P2SRV:$P2PORT ) || ( [ -x /cygdrive/c/ProgramFiles/OCSInventoryAgent/OCSInventory.exe ] && /cygdrive/c/ProgramFiles/OCSInventoryAgent/OCSInventory.exe /np /server:$P2SRV /pnum:$P2PORT ) || ( [ -x /cygdrive/c/ProgramFiles(x86)/OCSInventoryAgent/OCSInventory.exe ] && /cygdrive/c/ProgramFiles(x86)/OCSInventoryAgent/OCSInventory.exe /np /server:$P2SRV /pnum:$P2PORT ) || ( [ -x /usr/bin/ocsinventory-agent ] && /usr/bin/ocsinventory-agent –server=http://$P2SRV:$P2PORT ) || ( [ -x /usr/sbin/ocsinventory-agent ] && /usr/sbin/ocsinventory-agent –server=http://$P2SRV:$P2PORT ) || ( [ -x /usr/local/sbin/ocs_mac_agent.php ] && /usr/local/sbin/ocs_mac_agent.php )` |
launcher_path | The Launcher main script location, used by launchers-manager to start and daemonize the services. | yes | path | /usr/sbin/pulse2-launcher |
max_command_age | The parameter which limits a command’s time lenght. A command must take less than this value (in seconds), or being killed; High values mean that the command will have more time to complete, thus may also stay blocked longer. Only works for ASYNC commands. | yes | int, seconds | 86400 (one day) |
max_ping_time | Timeout when attempting to ping a client: A ping is aborded if it takes more that this value (in seconds). High values will minimize false-positives (aborded probe even if the client if obviously reachable). Lower values will enhance interface reponse time (but lead to more false-positives). | yes | int, seconds | 4 (seconds) |
max_probe_time | Timeout when attempting to probe a client: A probe is aborded if it takes more that this value (in seconds). High values will minimize false-positives (aborded probe even if the client if obviously reachable). Lower values will enhance interface reponse time (but lead to more false-positives). Please note that even if the client is not far (less than 10 ms), the probe may last a very long ime as sshd perform a reverse DNS query for each incoming connection, which may be problematic with a badly configured DNS. | yes | int, seconds | 20 (seconds) |
ping_path | Path to Pulse 2 Ping tool | yes | path | /usr/sbin/pulse2-ping |
reboot_command | The reboot command to use on a client, after a successful deployment. | yes | string | /bin/shutdown.exe -f -r 1 || shutdown -r now |
source_path | Packages source path target path (used for upload purpose). | yes | path | /var/lib/pulse2/packages |
target_path | Client target path (used for upload purpose). | yes | path | /tmp |
temp_folder_prefix | During a deployment, if a folder has to be created, its name will begin by this string. | yes | string | MDVPLS |
« daemon » section¶
This section sets the pulse2-launchers-manager and pulse2-launchers service run-time options and privileges.
Available options for the “daemon” section:
Option name | Description | Optional | Type | Default value |
---|---|---|---|---|
group | The pulse2-launchers-manager and pulse2-launchers services run as this specified group. | yes | group | root |
pidfile | The launcher services PID, used by pulse2-launchers-manager to track the launchers services. | yes | path | /var/run/pulse2 |
umask | The pulse2-launchers-manager and pulse2-launchers services umask defines the right of the new files they create (log files for example). | yes | octal | 0077 |
user | The pulse2-launchers-manager and pulse2-launchers service run as this specified user. | yes | user | root |
« wrapper » section¶
This section define the wrapper behavior.
Available options for the “wrapper” section:
Option name | Description | Optional | Type | Default value |
---|---|---|---|---|
max_exec_time | Default max exec time in seconds, older process are killed using SIGKILL. Different from max_command_age as beeing handled by the wrapper itself, so it also works for SYNC commandS. | yes | int, in seconds | 21600 (6 hours) |
max_log_size | Cap generated logs to this value | yes | int, in bytes | 512000 (500 kB) |
path | Pulse 2 launcher wrapper (ie “job launcher”) location. | yes | path | /usr/sbin/pulse2-output-wrapper |
« ssh » section¶
This section define global ssh (and scp) options.
Available options for the “ssh” section:
Option name | Description | Optional | Type | Default value |
---|---|---|---|---|
default_key | The default SSHv2 key to use, the config code will look for an “ssh_<default_key>” entry in the config file. ssh_* are ssh keys, * her names, f.ex. by using sshkey_default = /root/.ssh/id_rsa, /root/.ssh/id_rsa will be known as the ‘default’ key. | yes | string | default |
forward_key | Should we perform key-forwarding (never, always, or let = let the scheduler take its decision) | yes | string | let |
scp_path | Path to the SCP binary | yes | string | /usr/bin/scp |
ssh_options | Options passed to OpenSSH binary (-o option). | yes | list of space separated strings | LogLevel=ERROR UserKnownHostsFile=/dev/null StrictHostKeyChecking=no Batchmode=yes PasswordAuthentication=no ServerAliveInterval=10 CheckHostIP=no ConnectTimeout=10 |
ssh_agent_path | Path to the SSH agent | yes | string | /usr/bin/ssh-agent |
ssh_path | Path to the SSH binary | yes | string | /usr/bin/ssh |
sshkey_default | The “default” ssh key path. | yes | path | /root/.ssh/id_rsa |
sshkey_XXXX | The “XXXX” ssh key path (when more than one key may be used). | yes | string |
« wget » section¶
This section sets the pulse2-launchers wget options (for the pull part of the push/pull mode)
Available options for the “wget” section:
Option name | Description | Optional | Type | Default value |
---|---|---|---|---|
check_certs | Put the check certificate flag. | yes | boolean | False |
resume | Attempt to resume a partialy completed transfert | yes | boolean | True |
wget_options | Options passed to wget binary. | yes | string | “” |
wget_path | wget binary path (on client) | yes | string | /usr/bin/wget |
« rsync » section¶
This section sets the pulse2-launchers rsync options (for the push mode)
Available options for the “rsync” section:
Option name | Description | Optional | Type | Default value |
---|---|---|---|---|
resume | Attempt to resume a partial completed transfert | yes | boolean | True |
rsync_path | rsync binary path (on server) | yes | string | /usr/bin/rsync |
set_executable | Do we force +/-X on uploaded files (yes/no/keep). See below. | yes | string | yes |
set_access | Do we enforce permissions of uploaded files (private/restricted/public). See below. | yes | string | private |
Uploaded file permissions:
set_access \ set_executable | yes | no | keep |
private | u=rwx,g=,o= | u=rw,g=,o= | u=rwX,g=,o= |
restricted | u=rwx,g=rx,o= | u=rw,g=r,o= | u=rwX,g=rX,o= |
public | u=rwx,g=rwx,o=rx | u=rw,g=rw,o=r | u=rwX,g=rwX,o=rX |
« wol » section¶
This section sets the wol feature handling.
Available options for the “wol” section:
Option name | Description | Optional | Type | Default value |
---|---|---|---|---|
wol_bcast | WOL IP BCast adress. | yes | string | 255.255.255.255 |
wol_path | Pulse 2 scheduler awaker (via WOL “magic packet”). | yes | path | /usr/sbin/pulse2-wol |
wol_port | WOL TCP port. | yes | string | 40000 |
« tcp_sproxy » section¶
This section sets the tcp_sproxy feature handling, mainly used by the VNC feature.
Available options for the “tcp_sproxy” section:
Option name | Description | Optional | Type | Default value |
---|---|---|---|---|
tcp_sproxy_path | Pulse 2 TCP Secure Proxy (woot !) path | yes | path | /usr/sbin/pulse2-tcp-sproxy |
tcp_sproxy_host | Fill-in the following option if you plan to use VNC, it will be the “external” IP from the VNC client point-of-view | yes | string | “” |
tcp_sproxy_port_range | The proxy uses a port range to establish proxy to the client: 2 ports used per connection | yes | int range | 8100-8200 |
tcp_sproxy_establish_delay | The initial ssh connection to the client timeout | yes | seconds | 20 |
tcp_sproxy_connect_delay | The proxy allow the initial connection to be established within N seconds (ie. a client as N seconds to connect to the proxy after a port has bee found, then the connection is dropped and further connections will be impossible | yes | seconds | 60 |
tcp_sproxy_session_lenght | The number of seconds a connection will stay open after the initial handshake, conenction will be closed after this delay even if still in use | yes | seconds | 3600 (one hour) |
« smart_cleaner » section¶
This section sets the wol feature handling.
Available options for the “wol” section:
Option name | Description | Optional | Type | Default value |
---|---|---|---|---|
smart_cleaner_path | Pulse 2 smart cleaner path (on client), not used if empty | yes | path | /usr/bin/pulse2-smart-cleaner.sh |
smart_cleaner_options | Pulse 2 smart cleaner option (see win32 agent doc) | yes | array, space-separated | ‘’ |
« scheduler_XXX » section¶
This section define how the launchers may reach their referent scheduler.
Available options for the “scheduler” section:
Option name | Description | Optional | Type | Default value |
---|---|---|---|---|
awake_incertitude_factor | As our awake_time can be the same that the scheduler awake_time, add a little randomness here. Default value is .2, ie +/- 20 %. For example we will awake every 10 minutes, more or less 2 minutes. Values lower than 0 or greater than .5 are rejected Use this if your scheduler has the same awake time and busy each time we have to send our results | yes | float | .2 |
awake_time | The launcher will periodicaly awake (for exemple to send results to is scheduler), with this key a specific periodicity can be given. Field unit is the “second”. | yes | int | 600 |
defer_results | In async mode, whenever immedialetly send results to referent scheduler upon job completion or wait for being waked up (see above) | yes | string | no |
enablessl | Flag that tells if SSL should be used to connect to the scheduler | yes | boolean | True |
host | The referent scheduler IP address | yes | string | 127.0.0.1 |
password | The password to use when authenticating vs our referent scheduler | yes | string or base64 | password |
port | The referent scheduler TCP port | yes | string | 8000 |
username | The login name to use when authenticating vs our referent scheduler | yes | string | username |
« launcher_XXX » section¶
This section define specific options for all launchers on the server.
Available options for the “launcher_XXX” section:
Option name | Description | Optional | Type | Default value |
---|---|---|---|---|
bind | The launcher binding IP address. | yes | string | 127.0.0.1 |
cacert | path to the certificate file describing the certificate authority of the SSL server | no if enablessl is set | path | /etc/mmc/pulse2/scheduler/keys/cacert.pem |
certfile | deprecated (see cacert) | |||
enablessl | SSL mode support | no | boolean | 1 |
localcert | path to the SSL serverprivate certificate | no if enablessl is set | path | /etc/mmc/pulse2/scheduler/keys/privkey.pem |
password | The password to use when authenticating vs this launcher | yes | string or base64 | password |
port | The launcher binding TCP port. | no | int | |
privkey | deprecated (see localcert) | |||
slots | The number of available slots (ie. maximum number of concurrent jobs) | yes | int | 300 |
scheduler | The referent scheduler | yes | string | the first defined scheduler |
username | The login name to use when authenticating vs this launcher | yes | string | username |
verifypeer | Check that our parent scheduler present a signed certificate | no if enablessl is set | boolean | False |
logconffile | path to the file containing the logging configuration of this launcher (the format of this file is described in the Python documentation. If it is not set, the default logging configuration is read from the launchers.ini file. | yes | string |