Using fileserver in Puppet
Puppet Server includes a file server for transferring static file content to agents; this is what’s used whenever a
Mostly files can be served via modules but if we need to serve larger files that shouldn’t be with a module, you can make a custom file server mount point and let Puppet serve those files from another directory.
Creating a File Server:
1. Create a directory which puppet Can access and copy files which needs to be exported to this directory.
2. Create filserver.conf and define directory and hosts which can access this directory.
$ touch /etc/puppetlabs/puppet/fileserver.conf
Defining File Server:
# cat /etc/puppetlabs/puppet/fileserver.conf
[scripts]
path /apps/puppetlabs/code/environments/production/scripts
allow *
[packages]
path /apps//puppetlabs/code/environments/production/packages
allow *
In the above example I am creating two locations from which files will be served. One is scripts directory and the other location is packages . Both this directory can be created under the same location where modules directory is available.To identify module's location , we can use the following parameter.
# puppet config print modulepath
/etc/puppetlabs/code/environments/production/modules:
Now, I will show a manifests which is used to access files from above directories served by file-server.
file { '/home/agile/apache.sh':
path => '/home/agile/apache.sh',
ensure => present,
mode => "755",
owner => agile,
source => "puppet:///scripts/apache.sh",
}
file { "/usr/local/httpd-2.2.22.tar.gz":
path => "/usr/local/httpd-2.2.22.tar.gz",
ensure => present,
owner => agile,
group => agile,
source => "puppet:///packages/httpd-2.2.22.tar.gz",
}
Happy Serving! using Puppet FileServer
file
resource has a source => puppet:///...
attribute specified.Mostly files can be served via modules but if we need to serve larger files that shouldn’t be with a module, you can make a custom file server mount point and let Puppet serve those files from another directory.
Creating a File Server:
1. Create a directory which puppet Can access and copy files which needs to be exported to this directory.
2. Create filserver.conf and define directory and hosts which can access this directory.
$ touch /etc/puppetlabs/puppet/fileserver.conf
Defining File Server:
fileserver.conf
uses a one-off format that resembles an INI file without the equals (=
) signs. It is a series of mount-point stanzas, where each stanza consists of:- A
[mount_point_name]
surrounded by square brackets. This will become the name used inpuppet:///
URLs for files in this mount point. - A
path
directive, where
is an absolute path on disk. This is where the mount point’s files are stored. - An
allow *
directive.
# cat /etc/puppetlabs/puppet/fileserver.conf
[scripts]
path /apps/puppetlabs/code/environments/production/scripts
allow *
[packages]
path /apps//puppetlabs/code/environments/production/packages
allow *
In the above example I am creating two locations from which files will be served. One is scripts directory and the other location is packages . Both this directory can be created under the same location where modules directory is available.To identify module's location , we can use the following parameter.
# puppet config print modulepath
/etc/puppetlabs/code/environments/production/modules:
Now, I will show a manifests which is used to access files from above directories served by file-server.
file { '/home/agile/apache.sh':
path => '/home/agile/apache.sh',
ensure => present,
mode => "755",
owner => agile,
source => "puppet:///scripts/apache.sh",
}
file { "/usr/local/httpd-2.2.22.tar.gz":
path => "/usr/local/httpd-2.2.22.tar.gz",
ensure => present,
owner => agile,
group => agile,
source => "puppet:///packages/httpd-2.2.22.tar.gz",
}
Happy Serving! using Puppet FileServer
Comments