192.168.6.226 as the service side
192.168.6.223 for clients
1,puppet Installation
Service side
Turn off selinux iptables
Add Hosts
Vim/etc/hosts
127.0.0.1 localhost localhost.localdomain localhost4localhost4.localdomain4 web10
:: 1 localhost localhost.localdomainlocalhost6 localhost6.localdomain6 web10
127.0.0.1 www.test1.com www.aaa.com www.test.com
192.168.6.223 web9.aming.com
192.168.6.226 web10.aming.com
Vim/etc/sysconfig/network
Hostname web10.aming.com
Yum Install Puppetmaster–y
Start puppetmaster
Prompt Error need to include host name in hosts
Starting Puppetmaster:dnsdomainname:Unknown Host
Dnsdomainname:unknown Host
PS Aux|grep Puppet
Puppet 31418 3.9 8.4 142812 42328? SSL 17:07 0:01/usr/bin/ruby/usr/sbin/puppetmasterd
Port number 8140
Client
Vim/etc/hosts
192.168.6.226 web10.aming.com
192.168.6.223 web9.aming.com
Vim/etc/sysconfig/network
Hostname web9.aming.com
Press-Fit puppet
Yum Install Puppet–y
/etc/init.d/puppet start
in the add configuration on client
Vim/etc/puppet/puppet.conf
Listen = True
Server = web9.aming.com
Runinterval = 30
Puppet Applications
registering a CA
Puppet agent–test–server web10.aming.com ( registration command )
Info:csr_attributes File Loading From/etc/puppet/csr_attributes.yaml
Info:creating a new SSL certificaterequest for web10.aming.com
Info:certificate Request fingerprint (SHA256):D d:17:9f:11:4b:01:77:32:8f:38:22:9c:48:51:35:57:8d:eb:f3:94:1b : 52:8f:ca:ca:53:53:fe:a6:ec:b9:4c
Exiting; No certificate found Andwaitforcert is disabled
Prompt registration of the above content is successful
Puppet cert list–all View CA
+ "web10.aming.com" (SHA256) 6a:2e:1d:77:8f:64:ba:39:63:b9:5a:1f:b0:60:66:8e:27:68:60:52:d5:53:fe:d2:9f:68:41:05: A7:64:16:16
+ "web9.aming.com" (SHA256) bd:8f:d1:6e:52:ed:d2:08:dc:4d:de:a2:d1:23:21:08:1a:69:fa:15:39:4f:8a:37:10:65:5d:ed:0 0:B5:59:C6 (alt names: "Dns:puppet", "DNS:puppet.aming.com", "DNS:web9.aming.com")
See a list of CAs that have been added to the server with the + sign
If the + sign does not appear , use
Puppet cert--sign web10.aming.com
Test
Create a new file on the server site.pp
Vim/etc/puppet/manifests/site.pp
Node Default {
File {
"/tmp/123.txt": Content = "Test,test";
}
}
After saving
On the client input
Puppet–test–server web9.aming.com
123.txt after / tmp
Info:caching Certificate forweb10.aming.com
Info:caching certificate_revocation_listfor CA
Info:caching Certificate forweb10.aming.com
Notice:ignoring--listen on Onetime run
Warning:unable to fetch my nodedefinition, but the agent run would continue:
Warning:undefined method ' include? ' Fornil:nilclass
Info:retrieving pluginfacts
Info:retrieving Plugin
Info:loading Facts
info:caching Catalog for Web10.aming.com
Info:applying configuration version ' 1456399416 '
notice:/stage[main]/main/node[default]/file[/tmp/123.txt]/ensure:defined content as ' {MD5} C175A2C7AEFDBA02F99B8A5B019B18CB '
Info:creating State File/var/lib/puppet/state/state.yaml
Automatic authentication
Client
/etc/init.d/puppet stop
rm–rf/var/lib/puppet/ssl/*
Service side
Puppet cert Clean–all
Vim/etc/puppet/puppet.conf
Add a
Autosign = True
Vim/etc/puppet/autosign.conf
*.aming.com
Start puppetmaster
/etc/init.d/puppetmaster start
start The puppet client
/etc/init.d/puppet start
module example
First edit Create a custom module in/etc/puppet/modules/testm
when you create a CD testm
MKDIR-PV {files,manifests,templates}
CD files
Echo Sdfasfaasfaming.com>aming.txt
Vim manifests/init.pp
Class testm{
file {"/tmp/aming.txt":
Owner = "Root",
Group = "Root",
mode = 0400,
Source = "puppet://$puppetserver/modules/testm/aming.txt"
} }
Vim manifests/site.pp
$puppet = ' web9.aming.com '
Node ' WEB10 ' {
Include Testm
}
WEB10 by looking at the files in puppet cert List–all
Tail–f/var/log/message
Feb 02:03:06 localhostpuppet-agent[59793]: (/stage[main]/testm/file[/tmp/aming.txt]/ensure) definedcontent as ' { Md5}a3a6d94ec56c9a449377625873340f10 '
Feb 02:03:06 localhostpuppet-agent[59793]: Finished catalog run in 0.37 seconds
Prompt for above content success
Do directory Resources
CD Testm/files
Vim manifests/init.pp
Class testm{
file {"/tmp/aming.txt":
Owner = "Root",
Group = "Root",
mode = 0400,
Source = "puppet://$puppetserver/modules/testm/aming.txt"
} }
Class Nginx {
file {"/usr/local/nginx":
Owner = "Root",
Group = "Root",
Source = "puppet://$puppetserver/modules/testm/nginx",
Recurse = True,
Purge = true # supports delete operations
}
}
~ VIMMANIFESTS/SITE.PP
$puppet = ' web9.aming.com '
Node ' WEB10 ' {
Include Testm
Include Nginx
}
View Logs
Tail–f/var/log/message
Feb 02:29:31 localhostpuppet-agent[23849]:(/stage[main]/nginx/file[/usr/local/nginx/sbin/nginx.old]/ensure) Definedcontent as ' {md5}347341e105e668ea6220cbaa09dd6e7d '
Feb 02:29:31 localhostpuppet-agent[23849]: (/stage[main]/nginx/file[/usr/local/nginx/conf/win-utf]/ensure) Defined content as ' {md5}3749ffe19bedd842eb87e83d544e5ce6 '
Feb 02:29:31 localhostpuppet-agent[23849]:(/stage[main]/nginx/file[/usr/local/nginx/conf/mime.types.default]/ ensure) defined content as ' {md5}bd837e7b34f5c9b8d89957d0527f0d44 '
Feb 02:29:31 localhostpuppet-agent[23849]:(/stage[main]/nginx/file[/usr/local/nginx/conf/uwsgi_params]/ensure) Definedcontent as ' {MD5}2AAAF1E3535752E74D2942DB8B3632CB '
Feb 02:29:31 localhostpuppet-agent[23849]: (/stage[main]/nginx/file[/usr/local/nginx/conf/fastcgi.conf]/ensure) Defined content as ' {md5}c53b8ddf4250e742594d24c55e73c0df '
Feb 02:29:31 localhostpuppet-agent[23849]:(/stage[main]/nginx/file[/usr/local/nginx/conf/nginx.conf]/ensure) Definedcontent as ' {md5}a79bb7bb340a80057bce4772935548f0 '
Feb 02:29:31 localhostpuppet-agent[23849]:(/stage[main]/nginx/file[/usr/local/nginx/conf/scgi_params]/ensure) Definedcontent as ' {md5}e9fd19c7d1f0cecbd46b3cb041ae19c7 '
Feb 02:29:31 localhostpuppet-agent[23849]:(/stage[main]/nginx/file[/usr/local/nginx/html/50x.html]/ensure) Definedcontent as ' {md5}d74f9cdd604653c22c6752c46fffd587 '
Feb 02:29:31 localhostpuppet-agent[23849]: (/stage[main]/nginx/file[/usr/local/nginx/uwsgi_temp]/ensure) created
Feb 02:29:32 localhostpuppet-agent[23849]:(/stage[main]/nginx/file[/usr/local/nginx/logs/access.log]/ensure) Definedcontent as ' {md5}68a546f08e828ad73f7a37860fe977fd '
Prompt for above content success
Remote execution commands
CD Testm/files
Vim manifests/init.pp
Class Nginx {
file {"/usr/local/nginx":
Owner = "Root",
Group = "Root",
Source = "puppet://$puppetserver/modules/testm/nginx",
Recurse = True,
Purge = True
}
exec {"123":
unless = "Test-f/tmp/aminglinux.txt",
Path = ["/bin", "/sbin", "/usr/bin", "/usr/sbin"],
Command = "Touch/tmp/aminglinux.txt"
}
}
unless = "Test-f/tmp/aminglinux.txt" can be created when a file does not exist
Onlyif = "Test-f/tmp/aminglinux.txt" when asked to exist is to create
Cron Module
CD Testm/files
Vim manifests/init.pp
Class Nginx {
file{"/usr/local/nginx":
Owner = "Root",
Group = "Root",
Source = "puppet://$puppetserver/modules/testm/nginx",
Recurse = True,
Purge = True
}
exec {"123":
unless = "Test-f/tmp/aminglinux.txt",
Path =>["/bin", "/sbin", "/usr/bin", "/usr/sbin"],
Command = "Touch/tmp/aminglinux.txt"
}
cron{"Aming1":
Command = "/sbin/ntpdate time.windows.com",
user = "Root",
minute = "*/10",
#ensure = "Absent" whether to clear the command
}
}
Description: The time of day and month respectively corresponding Puppet inside the minute,hour,monthday,month,weekday,ensure is set to absent to delete the task, if you do not set a row to establish
This article is from the "Learn Linux" blog, so be sure to keep this source http://10265013.blog.51cto.com/10255013/1745380
Puppet Learning Documents