الفرق بين المراجعتين ل"وصفات puppet master المستخدمة في معسكر 2013"
اذهب إلى التنقل
اذهب إلى البحث
سطر 798: | سطر 798: | ||
== /etc/puppet/modules/autodir/ == | == /etc/puppet/modules/autodir/ == | ||
=== manifests/init.pp === | === manifests/init.pp === | ||
+ | <pre> | ||
class autodir { | class autodir { | ||
سطر 835: | سطر 836: | ||
} | } | ||
</pre> | </pre> | ||
+ | |||
=== files/autodir.dpkg-dist === | === files/autodir.dpkg-dist === | ||
<pre> | <pre> |
مراجعة 12:39، 3 سبتمبر 2013
/etc/puppet/manifests/site.pp
#class { 'apt':} import "nodes" import "templates" import "sudo" filebucket { main: server => puppet } file { '/tmp/squeak-vm_4.10.2.2614-1ubuntu2_amd64.deb': ensure => file, source => "puppet:///modules/adefcamps/squeak-vm_4.10.2.2614-1ubuntu2_amd64.deb", # unless has to be an executed command :S ... a7a ... #unless => package['squeak-vm_4.10.2.2614-1ubuntu2_amd64.deb'] } package { 'squeak-vm_4.10.2.2614-1ubuntu2_amd64.deb': ensure => present, provider => dpkg, source => '/tmp/squeak-vm_4.10.2.2614-1ubuntu2_amd64.deb', require => file['/tmp/squeak-vm_4.10.2.2614-1ubuntu2_amd64.deb'] } file { '/tmp/qstopmotion-1.0.1-Linux.deb': ensure => file, source => "puppet:///modules/adefcamps/qstopmotion-1.0.1-Linux.deb" } package { 'gstreamer-tools': ensure => present, } package { 'libqt4-core': ensure => present, } package { 'libqt4-gui': ensure => present, } package { 'qstopmotion': provider => dpkg, ensure => present, source => '/tmp/qstopmotion-1.0.1-Linux.deb', require => [package['gstreamer-tools'],package['libqt4-core'],package['libqt4-gui']] } package { 'traceroute': ensure => present, } #exec { # 'test-test': # command => "echo test >> /tmp/test", # path => "/bin" #} user { 'adefadmin': } user { 'root': password => '$6$here_goes$someencryptedpassword.', uid => 0, comment => 'root', } # Caching packages requirement (fist thing to be done) package { 'squid-deb-proxy-client': ensure => installed } exec { 'apt-get update': command => "/usr/bin/apt-get update", subscribe => exec['add-sunab-kdenlive-release-ppa'] } package { 'squid-deb-proxy': ensure => purged } package { 'squid3': ensure => purged } # START PUPPET REQUIREMENTS package { 'augeas-tools': ensure => installed } package { 'libaugeas-ruby': ensure => installed } augeas { 'enable-puppet-listen': context => "/files/etc/puppet/puppet.conf/main", changes => "set listen true" } augeas { "enable-puppet-agent": context => "/files/etc/default/puppet", changes => "set START yes" } file { "/etc/puppet/auth.conf": content => "path /run auth yes allow * " } service { "puppet": ensure => running, subscribe => file["/etc/puppet/auth.conf"] } # END PUPPET REQUIREMENTS # START SESSION SETTINGS ; KEYBOARD LAYOUT #augeas { # 'gsettings-system-wide-ar-en-keyboard-layout': # lens => "Xml.lns", # incl => "/usr/share/glib-2.0/schemas/org.gnome.libgnomekbd.keyboard.gschema.xml", # context => "/files/usr/share/glib-2.0/schemas/org.gnome.libgnomekbd.keyboard.gschema.xml", # changes => "set schemalist/schema/key[2]/default ['ara','us']" #} # END SESSION SETTINGS # START CENTEAL AUTH STUFF #exec { # 'add-and-enable-ldap-auth-and-ccreds': # command => "wget http://arabdigitalexpression.org/adefwiki/images/b/ba/Adef-camps-script-1.txt -O /usr/local/bin/adef-camps-script-1; chmod 544 /usr/local/bin/adef-camps-script-1; /usr/local/bin/adef-camps-script-1", # path => "/bin:/usr/bin", # unless => "test -e /usr/local/bin/adef-camps-script-1", #} #file { # '/usr/local/bin/adef-camps-script-1': # ensure => present, # source => 'puppet:///modules/adefcamps/adef-camps-script-1' #} augeas { 'enable-lightdm-manual-login': context => "/files/etc/lightdm/lightdm.conf/SeatDefaults", changes => ["set greeter-show-manual-login true","set allow-guest false"] } augeas { 'hide-adefadmin-from-lightdm': context => "/files/etc/lightdm/users.conf/UserAccounts", changes => "set hidden-users 'nobody nobody4 noaccess adefadmin'" } # setup of nfs access via automount/autofs package { 'autofs': ensure => installed } package { 'nfs-common': ensure => installed } #file { # "/etc/auto.adefcamps": # ensure => file, # content => "SAN -fstype=nfs 10.0.0.16:/export/SAN" #} file { "/adefcamps": ensure => directory } exec { 'add-adefcamps-automount': command => "echo '/adefcamps /etc/auto.adefcamps --ghost' | tee -a /etc/auto.master", path => "/bin/:/usr/bin/", unless => "grep adefcamps /etc/auto.master" } service { 'autofs-service': name => "autofs", enable => true, ensure => running, require => [package['autofs'],file['/adefcamps']] } # END OF AUTOMOUNT SETUP # START OF AUTOHOME #package { # 'autodir': # ensure => installed, # #before => service['autodir-service'] #} #augeas { # 'configure-autohome-service': # context => "/files/etc/default/autodir", # changes => ["set AUTOHOME_HOME /users",'set RUN_AUTOHOME "yes"'] #} file { '/users': ensure => directory; } #service { # 'autodir-service': # name => "autodir", # enable => true, # ensure => running, # require => [package['autodir'],file['/users']], # subscribe => augeas['configure-autohome-service'] #} # END OF AUTOHOME # START OF IT TRACK SOFTWARE package { 'scratch': ensure => installed } exec { 'install-processing': environment => "http_proxy=http://10.0.0.6:8000", path => "/usr/bin:/bin:", command => "wget http://download.processing.org/processing-2.0.2-linux64.tgz -O /tmp/processing-2.0.2-linux64.tgz; tar xzf /tmp/processing-2.0.2-linux64.tgz -C /tmp ; mv /tmp/processing-2.0.2/* /usr/local/bin/", unless => "test -e /usr/local/bin/processing" } file { 'processing-deskotp': ensure => file, path => "/usr/share/applications/processing.desktop", source => "puppet:///modules/adefcamps/processing.desktop" } # END OF IT TRACK SOFTWARE # START OF VIDEO SOFTWARE # START KDENLIVE INSTALL exec { 'add-sunab-kdenlive-release-ppa': command => "apt-add-repository -y ppa:sunab/kdenlive-release", path => "/usr/bin", unless => "test -e /etc/apt/sources.list.d/sunab-kdenlive-release-raring.list" } package { 'kdenlive': ensure => '0.9.6-0ubuntu0~sunab~raring1', require => [exec['add-sunab-kdenlive-release-ppa'],exec['apt-get update']] } package { 'x264': ensure => installed } package { 'libx264-123': ensure => installed } package { 'libavcodec-extra-53': ensure => installed } #exec { # 'add-lmms-repo': # command => "apt-add-repository ppa:dns/sound", # path => "/usr/bin" #} # END KDENLIVE INSTALL package { 'hydrogen': ensure => installed } package { 'flashplugin-installer': ensure => installed } package { 'pitivi': ensure => installed } package { 'audacity': ensure => installed } file { '/usr/local/bin/audacity': ensure => file, content => "#!/bin/bash LANGUAGE='en' /usr/bin/audacity ", mode => 755 } package { 'lmms': ensure => installed } package { 'mixxx': ensure => installed } package { 'ardour': ensure => installed } package { 'jack': ensure => installed } package { 'vocproc': ensure => installed } package { 'gimp': ensure => installed } package { 'inkscape': ensure => installed } package { 'pencil': ensure => installed } package { 'stopmotion': ensure => installed } package { 'rosegarden': ensure => installed } package { 'blender': ensure => installed } package { 'winff': ensure => installed } package { 'ubuntu-restricted-extras': ensure => installed } package { 'vlc': ensure => installed } package { 'soundconverter': ensure => installed } package { 'synfigstudio': ensure => installed } package { 'fonts-arabeyes': ensure => installed } package { 'fonts-hosny-amiri': ensure => installed } package { 'fonts-hosny-thabit': ensure => installed } package { 'k3b': ensure => installed } package { 'openshot': ensure => installed } # other useful tools: package { 'comix': ensure => installed } package { 'playonlinux': ensure => installed } package { 'gcstar': ensure => installed } package { 'desktop-webmail': ensure => installed } #package { # 'skype': # ensure => installed #} #package { # 'jitsi': # ensure => installed #} package { 'guvcview': ensure => installed } package { 'vnc4server': ensure => installed } package { 'cowsay': ensure => installed } package { 'filezilla': ensure => installed }
/etc/puppet/manifests/nodes.pp
node default { include baseclass } node 'basenode' { # include baseclass include digitalinstallation include arabic include autodir::autodir-camps-default include adefcamps::adefcampssetup #include default } node 'lab3-pc8.adefcamps.org' inherits basenode { } #node default { # include squid-deb-proxy-client #include add-lmms-repo # include autofs #include autofs-service #include /adefcamps #include kdenlive #include soundconverter #include vlc #include openshot #include pitivi #include audacity #include lmms #include mixxx #include ardour #include jack #include vocproc #include hydrogen # include gimp #include inkscape #include pencil #include stopmotion #include rosegarden ##include blender #include soundconverter #include winff #include hydrogen #include ubuntu-restricted-extras #include vlc #include soundconverter #include synfigstudio #include fonts-arabeyes #include fonts-hosny-amiri #include fonts-hosni-thabit #include k3b #} node 'cmpsrvlinpuppetmasterclient01v.adefcamps.org' { include squid-deb-proxy-client #include add-lmms-repo include kdenlive include soundconverter include vlc } node 'labn-pcm.adefcamps.org' { include squid-deb-proxy-client #include add-lmms-repo include kdenlive include soundconverter include vlc include openshot include pitivi include audacity include lmms include mixxx include ardour include jack include vocproc include hydrogen include gimp include inkscape include pencil include stopmotion include rosegarden include blender include soundconverter include winff include hydrogen include ubuntu-restricted-extras include vlc include soundconverter include synfigstudio include fonts-arabeyes include fonts-hosny-amiri include fonts-hosni-thabit include k3b } node 'lab1-pc1' inherits basenode { include add-nfs-on-20 } node 'lab1-pc2' inherits basenode { include add-nfs-on-20 } node 'lab1-pc3' inherits basenode { include add-nfs-on-20 } node 'lab1-pc4' inherits basenode { include add-nfs-on-20 } node 'lab1-pc5' inherits basenode { include add-nfs-on-20 } node 'lab1-pc6' inherits basenode { include add-nfs-on-20 } node 'lab1-pc7' inherits basenode { include add-nfs-on-20 } node 'lab1-pc8' inherits basenode { include add-nfs-on-20 } node 'lab1-pc9' inherits basenode { include add-nfs-on-20 } node 'lab1-pc10' inherits basenode { include add-nfs-on-20 } node 'lab1-pc11' inherits basenode { include add-nfs-on-20 include digitalinstallation } node 'lab1-pc12' inherits basenode { include add-nfs-on-20 } node 'lab2-pc1' inherits basenode { include add-nfs-on-20 } node 'lab2-pc2' inherits basenode { include add-nfs-on-20 } node 'lab2-pc3' inherits basenode { include add-nfs-on-20 } node 'lab2-pc4' inherits basenode { include add-nfs-on-20 } node 'lab2-pc5' inherits basenode { include add-nfs-on-20 } node 'lab2-pc6' inherits basenode { include add-nfs-on-20 } node 'lab2-pc7' inherits basenode { include add-nfs-on-20 } node 'lab2-pc8' inherits basenode { include add-nfs-on-20 } node 'lab2-pc9' inherits basenode { include add-nfs-on-20 } node 'lab2-pc10' inherits basenode { include add-nfs-on-20 } node 'lab2-pc11' inherits basenode { include add-nfs-on-20 } node 'lab2-pc12' inherits basenode { include add-nfs-on-20 } node 'lab3-pc1' inherits basenode { include add-nfs-on-20 include digitalinstallation } node 'lab3-pc2' inherits basenode { include add-nfs-on-20 include digitalinstallation } node 'lab3-pc3' inherits basenode { include add-gnome-shell include add-nfs-on-20 include digitalinstallation } node 'lab3-pc4' inherits basenode { include add-gnome-shell include add-nfs-on-20 include digitalinstallation } node 'lab3-pc5' inherits basenode { include add-gnome-shell include add-nfs-on-20 include digitalinstallation } node 'lab3-pc6' inherits basenode { include add-gnome-shell include add-nfs-on-20 include digitalinstallation } node 'lab3-pc7' inherits basenode { include add-gnome-shell include add-nfs-on-20 include digitalinstallation } node 'lab3-pc8' inherits basenode { include add-gnome-shell include add-nfs-on-20 include digitalinstallation } node 'lab3-pc9' inherits basenode { include add-gnome-shell include add-nfs-on-20 include digitalinstallation } node 'lab3-pc10' inherits basenode { include add-gnome-shell include add-nfs-on-20 include digitalinstallation } node 'lab3-pc11' inherits basenode { include add-gnome-shell include add-nfs-on-20 include digitalinstallation } node 'lab3-pc12' inherits basenode { include add-gnome-shell include add-nfs-on-20 include digitalinstallation } === /etc/puppetmanifests/templates.pp == class baseclass { include adefcamps::adefcampssetup include add-nfs-on-20 } #node default { # include baseclass #} class add-nfs-on-20 { file { 'add-nfs-on-20-file': path => "/etc/auto.adefcamps", content => "SAN -fstype=nfs 10.0.0.20:/export/" } exec { 'restart-autofs': path => "/bin", command => "/etc/init.d/autofs restart", subscribe => file['add-nfs-on-20-file'], unless => 'grep 10.0.0.20 /etc/auto.adefcamps' } } class add-gnome-shell { package { 'gnome-shell': ensure => present, } }
/etc/puppet/modules/arabic/
manifests/init.pp
class arabic { package { 'language-pack-ar': ensure=> present } package { 'language-pack-gnome-ar': ensure=> present } package { 'language-pack-ar-base': ensure=> present } package { 'language-pack-gnome-ar-base': ensure=> present } file { "/etc/default/locale": ensure => present, source => "puppet:///modules/arabic/locale" } }
files/locale
LANG="ar_EG.UTF-8" LANGUAGE="ar:en_US:en" LC_NUMERIC="en_US.UTF-8" LC_TIME="en_US.UTF-8" LC_MONETARY="en_US.UTF-8" LC_PAPER="en_US.UTF-8" LC_IDENTIFICATION="en_US.UTF-8" LC_NAME="en_US.UTF-8" LC_ADDRESS="en_US.UTF-8" LC_TELEPHONE="en_US.UTF-8" LC_MEASUREMENT="en_US.UTF-8"
/etc/puppet/modules/autodir/
manifests/init.pp
class autodir { } class autodir::autodir-camps-default inherits autodir { package { 'autodir': ensure => installed, require => file['/etc/default/autodir'] #before => service['autodir-service'] } file { '/etc/default/autodir': ensure => file, source => "puppet:///modules/autodir/autodir.dpkg-dist" } augeas { 'configure-autodir-service': context => "/files/etc/default/autodir", changes => ["set AUTOHOME_HOME /users",'set RUN_AUTOHOME "yes"'], require => file['/etc/default/autodir'], subscribe => augeas['configure-autodir-service'] } service { 'autodir-service': name => "autodir", enable => true, ensure => running, require => [package['autodir'],file['/users'],augeas['configure-autodir-service']], subscribe => augeas['configure-autodir-service'] } }
files/autodir.dpkg-dist
# Defaults for autodir initscript sourced by /etc/init.d/autodir # installed at /etc/default/autodir by the maintainer scripts # Master system-wide autodir switches. The initscript # will not run one or both if they are not set to yes. RUN_AUTOHOME="yes" RUN_AUTOGROUP="no" # Where (virtual) home/group directories are supposed to be? # Visible to applications AUTOHOME_HOME=/users AUTOGROUP_HOME=/group # How long to wait in seconds # before it is assumed home directory # is inactive and unmounted. # # Servers like IMAP/POP access home directories every 10min # in most configurations -- client side default mail check duraion. # Therefore it is beter to make it 11min in this situation. # # If your site has different requirements, change according to that. AUTOHOME_TIMEOUT=660 # How long to wait in seconds # before it is assumed home directory # is inactive and unmounted. AUTOGROUP_TIMEOUT=300 # Authome module paths AUTOHOME_MODULE="/usr/lib/autodir/autohome.so" AUTOGROUP_MODULE="/usr/lib/autodir/autogroup.so" # realpath => path where real home directories should reside # level => Default value is ok for almost all sites. See Autodir-HOWTO. # skel => Location of skel files. absolute path is expected # noskel => Don not copy skel files to home directories AUTOHOME_OPTIONS="realpath=/autohome,level=2,skel=/etc/skel" # realpath => path where real group directories should reside. # level => Default value is ok for almost all sites. See Autodir-HOWTO. # nosetgid => Default is to setgid the group directory created. # nopriv => Default is to create group directory for every kind of group. # If your site has user private groups and you dont want # group directories created for these, use this option. AUTOGROUP_OPTIONS="realpath=/autogroup,level=2" # If you desire backup feature and you know what this feature is, then uncomment it! # Full path to program as well as arguments. # %x characters are replaced with appropriate values. # Following is just example. Do not use it as is! # See Autodir-HOWTO for further info. #AUTOHOME_BACKUP="'/bin/tar cf /tmp/%N.tar.gz %L'" #AUTOGROUP_BACKUP="'/bin/tar cf /tmp/%N.tar.gz %L'" # How long to wait after a home directory is unmounted # to start backup. Value expected in seconds and can not exceed one day. #AUTOHOME_BACKWAIT=600 #AUTOGROUP_BACKWAIT=600 # Backup priority. 1 to 40 inclusive. Smaller value means higher priority. #AUTOHOME_BACKPRI=30 #AUTOGROUP_BACKPRI=30 # Max backup program execusions not to exceed at any given time. #AUTOHOME_MAXBACK=150 #AUTOGROUP_MAXBACK=150