Installation procedure - On the relay

Install Rudder agent

To begin, please install a regular Rudder agent on the OS.

See here for the complete reference about agent installation.

To complete this step, please make sure that your node is configured successfully and appears in your Rudder web interface.

Install the required dependencies and enable required modules

# RHEL-like (RHEL, CentOS, Scientific)
yum install httpd httpd-tools rsyslog
# All required modules are enabled by default

# Debian-like (Debian, Ubuntu)
apt-get install apache2 apache2-utils rsyslog
a2enmod dav dav_fs
a2dissite default

# SuSE
zypper install apache2 apache2-utils rsyslog
a2enmod dav dav_fs

Create the necessary directory and adjust the permissions

mkdir -p /opt/rudder/etc /var/log/rudder/apache2 /var/rudder/share

for i in /var/rudder/inventories/incoming /var/rudder/inventories/accepted-nodes-updates
do
        mkdir -p ${i}
        chmod -R 1770 ${i}
        for group in apache www-data www; do
                if getent group ${group} > /dev/null; then chown -R root:${group} ${i}; break; fi
        done
done

for i in /opt/rudder/etc/htpasswd-webdav-initial /opt/rudder/etc/htpasswd-webdav
do
        /usr/bin/htpasswd -bc ${i} rudder rudder
done

touch /opt/rudder/etc/rudder-networks.conf

Please create the appropriate file for your OS, and copy the following content in it

  • /etc/httpd/conf.d/rudder-default.conf file on RHEL-like
  • /etc/apache2/sites-enabled/rudder-default file on Debian-like
  • /etc/apache2/vhosts.d/rudder-default.conf file on SuSE
<VirtualHost *:80>
        ServerAdmin webmaster@localhost
        # Expose the server UUID through http
        Alias /uuid /opt/rudder/etc/uuid.hive
        <Directory /opt/rudder/etc>
                Order deny,allow
                Allow from all
        </Directory>
        # WebDAV share to receive inventories
        Alias /inventories /var/rudder/inventories/incoming
        <Directory /var/rudder/inventories/incoming>
                DAV on
                AuthName "WebDAV Storage"
                AuthType Basic
                AuthUserFile /opt/rudder/etc/htpasswd-webdav-initial
                Require valid-user
                Order deny,allow
                # This file is automatically generated according to
                # the hosts allowed by rudder.
                Include /opt/rudder/etc/rudder-networks.conf
                <LimitExcept PUT>
                        Order allow,deny
                        Deny from all
                </LimitExcept>
        </Directory>
        # WebDAV share to receive inventories
        Alias /inventory-updates /var/rudder/inventories/accepted-nodes-updates
        <Directory /var/rudder/inventories/accepted-nodes-updates>
                DAV on
                AuthName "WebDAV Storage"
                AuthType Basic
                AuthUserFile /opt/rudder/etc/htpasswd-webdav
                Require valid-user
                Order deny,allow
                # This file is automatically generated according to
                # the hosts allowed by rudder.
                Include /opt/rudder/etc/rudder-networks.conf
                <LimitExcept PUT>
                        Order allow,deny
                        Deny from all
                </LimitExcept>
        </Directory>
        # Logs
        ErrorLog /var/log/rudder/apache2/error.log
        LogLevel warn
        CustomLog /var/log/rudder/apache2/access.log combined

</VirtualHost>

Finally, restart Apache to take these changes into account:

# RHEL-like (RHEL, CentOS, Scientific)
service httpd restart

# Debian-like (Debian, Ubuntu) and SuSE
service apache2 restart