vm1为master hostname为vm1.example.com
vm2 vm3 vm4为client,hostname为vm2|vm3|vm4.example.com
脚本如下:
#!/bin/bash PROG_NAME=$0 vm=$1 usage() { echo "Usage: $PROG_NAME {vm1|vm2|vm3|vm4|reca}" exit 1; } if [ $# -ne 1 ]; then usage fi prepare() { echo "alias vivim=vi">> ~/.bash_profile service iptables stop cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime /usr/sbin/ntpdate time.nist.gov echo "*/5 * * * * /usr/sbin/ntpdate time.nist.gov" > /var/spool/cron/root chmod 600 /var/spool/cron/root } install_master() { sed -i "s/HOSTNAME=.*/HOSTNAME=${vm}.example.com/" /etc/sysconfig/network hostname $vm.example.com echo "10.13.114.3 vm1.example.com" >> /etc/hosts echo "10.13.114.25 vm2.example.com" >> /etc/hosts echo "10.13.114.27 vm3.example.com" >> /etc/hosts echo "10.13.114.30 vm4.example.com" >> /etc/hosts #####step 1.install ruby environment##### wget http://docs.linuxtone.org/soft/lemp/CentOS-Base.repo -O /etc/yum.repos.d/CentOS-Base.repo yum -y install ruby ruby-rdoc #####step 2.install puppet server####### rpm -Uvh http://download.fedora.redhat.com/pub/epel/5Server/x86_64/epel-release-5-4.noarch.rpm yum -y install puppet-server chkconfig --level 2345 puppetmaster on cat >> /etc/puppet/manifests/site.pp << EOF node default { file { "/tmp/temp1.txt": content => "hello,first puppet manifest"; } } EOF cat >>/etc/puppet/autosign.conf <<EOF *.example.com EOF } install_client() { sed -i "s/HOSTNAME=.*/HOSTNAME=${vm}.example.com/" /etc/sysconfig/network hostname $vm.example.com echo "10.13.114.3 vm1.example.com" >> /etc/hosts echo "10.13.114.25 vm2.example.com" >> /etc/hosts echo "10.13.114.27 vm3.example.com" >> /etc/hosts echo "10.13.114.30 vm4.example.com" >> /etc/hosts #####step 1.install ruby environment##### wget http://docs.linuxtone.org/soft/lemp/CentOS-Base.repo -O /etc/yum.repos.d/CentOS-Base.repo yum -y install ruby ruby-rdoc ####step 2.install puppet server#### rpm -Uvh http://download.fedora.redhat.com/pub/epel/5Server/x86_64/epel-release-5-4.noarch.rpm yum -y install puppet chkconfig --level 2345 puppet on echo " server=vm1.example.com">>/etc/puppet/puppet.conf echo " listen=true">>/etc/puppet/puppet.conf cat >>/etc/puppet/namespaceauth.conf << EOF [fileserver] allow * [puppetmaster] allow * [puppetrunner] allow * [puppetbucket] allow * [puppetreports] allow * [resource] allow * EOF } re_create_ca() { rm -f /var/lib/puppet/ssl/certs/* rm -f /var/lib/puppet/ssl/certificate_requests/* rm -f /var/lib/puppet/ssl/crl.pem } case "$vm" in vm1) prepare install_master ;; vm2) prepare install_client ;; vm3) prepare install_client ;; vm4) prepare install_client ;; reca) re_create_ca ;; *) usage ;; esac