الفرق بين المراجعتين ل"وصفات puppet master المستخدمة في معسكر 2013"

من ويكي أضِف
اذهب إلى التنقل اذهب إلى البحث
(+ templates.pp)
سطر 749: سطر 749:
 
}
 
}
  
 +
</pre>
 +
 +
== /etc/puppet/modules/arabic/ ==
 +
=== manifests/init.pp===
 +
 +
<pre>
 +
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"
 +
    }
 +
}
 +
 +
</pre>
 +
=== files/locale===
 +
<pre>
 +
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"
 
</pre>
 
</pre>

مراجعة 12:17، 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"