2019PHP高薪工程师学习路线图....>>>
#!/bin/bash
PATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin:~/bin
export PATH
clear;
service iptables stop
puppetserver="puppet"
puppetversion="puppet-3.4.2"
facterversion="facter-1.7.4"
rubyversion="ruby-2.1.0"
PUPPET_INSTALL(){
cd /tmp
[ ! -f $rubyversion.tar.gz ] && curl -O http://cache.ruby-lang.org/pub/ruby/$rubyversion.tar.gz
[ ! -f $facterversion.tar.gz ] && curl -O https://downloads.puppetlabs.com/facter/$facterversion.tar.gz
[ ! -f $puppetversion.tar.gz ] && curl -O https://downloads.puppetlabs.com/puppet/$puppetversion.tar.gz
tar xzvf $rubyversion.tar.gz
cd /tmp/$rubyversion
./configure
make
make install
tar xzvf $facterversion.tar.gz
cd /tmp/$facterversion
ruby install.rb
tar xzvf $puppetversion.tar.gz
cd /tmp/$puppetversion
ruby install.rb
sudo puppet resource group puppet ensure=present
sudo puppet resource user puppet ensure=present gid=puppet shell='/sbin/nologin'
cat >/etc/puppet/puppet.conf <<EOF
[main]
server = $puppetserver
logdir = /var/log/puppet
rundir = /var/run/puppet
ssldir = \$vardir/ssl
[agent]
classfile = \$vardir/classes.txt
localconfig = \$vardir/localconfig
[master]
EOF
}
PUPPET_SERVER(){
sed -i "/main/a certname = $puppetserver" /etc/puppet/puppet.conf
sed -i "/master/a autosign = ture" /etc/puppet/puppet.conf
cp -af ext/redhat/server.init /etc/init.d/puppetmaster
chmod +x /etc/init.d/puppetmaster
service puppetmaster start &&
chkconfig puppetmaster on
}
PUPPET_CLIENT(){
sed -i "/agent/a listen = true" /etc/puppet/puppet.conf
sed -i "1 i path /run\nauth any\nmethod save\nallow $puppetserver" /etc/puppet/auth.conf
cp -af ext/redhat/client.init /etc/init.d/puppet
chmod +x /etc/init.d/puppet
service puppet start &&
chkconfig puppet on
}
case $1 in
'server')
PUPPET_INSTALL
PUPPET_SERVER ;;
'client')
PUPPET_INSTALL
PUPPET_CLIENT ;;
esac