13432878738 发表于 2018-8-2 11:00:22

puppet 学习笔记

#!/bin/bash  
#time:2014/12/10   by:Lance
  

  
SERVER_IP=`ifconfig | grep 172.16.8. |sed -n '1p' | awk '{print $2}' | awk -F':' '{print $2}'`
  

  
check_file(){
  
#验证是否已经安装puppet
  
if [ `rpm -qa | grep puppet- | wc -l` -ge 1 ]; then
  
    echo "此服务器已经安装puppet!!"
  
    exit 0
  
fi
  

  
#验证puppet文件夹是否存在
  
if [ -d /etc/puppet ]; then
  
      echo "/etc/puppet已经存在,正在备份。。。"
  
      mv /etc/puppet/puppet.conf /etc/puppet/puppet.conf.bak
  mv /etc/puppet/auth.conf /etc/puppet/auth.conf.bak
  
fi
  
}
  

  
check_system_clock(){
  
#sync time
  
/usr/sbin/ntpdate 202.120.2.101 && /sbin/hwclock -w
  
if [ -f /var/spool/cron/root ]; then
  if [ `grep ntpdate /var/spool/cron/root | wc -l` -eq 0 ]; then
  echo "ntpdate计划任务不存在,正在添加。。。"
  echo "01 1 * * * /usr/sbin/ntpdate 202.120.2.101 && /sbin/hwclock -w >/dev/null 2>&1" >>/var/spool/cron/root
  fi
  
fi
  

  
#System Time
  
if [ ! `cat /etc/sysconfig/clock |grep -i Shanghai` ];then
  
      echo "Time zone false ...正在修改。。。"
  sleep 3
  cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
  
fi
  
}
  

  
check_repo(){
  
TEST=0
  #CentOS yum 源修改
  
if [ ! -f /etc/yum.repos.d/epel.repo ] && [ ! -f /etc/yum.repos.d/CentOS* ] &&( [ -f /etc/yum.repos.d/local.repo ] || [ -f /etc/yum.repos.d/2.repo ]); then
  cp /etc/yum.repos.d/bak/epel.repo /etc/yum.repos.d/epel.repo
  cp /etc/yum.repos.d/bak/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo
  mv /etc/yum.repos.d/local.repo /etc/yum.repos.d/local.repo.bak &>/dev/null
  mv /etc/yum.repos.d/2.repo /etc/yum.repos.d/2.repo.bak &>/dev/null
  TEST=2
  #yum clean all
  yum makecache
  
fi
  
}
  

  
check_recovery(){
  
if [ $TEST -eq 2 ]; then
  mv /etc/yum.repos.d/local.repo.bak /etc/yum.repos.d/local.repo &>/dev/null
  mv /etc/yum.repos.d/2.repo.bak /etc/yum.repos.d/2.repo &>/dev/null
  
fi
  
}
  

  
epel_yum(){
  #验证操作系统版本并下载安装puppet yum源
  
if [ `uname -r | grep el6 | wc -l` -eq 1 ] && [ `rpm -qa | grep epel |wc -l` -eq 0 ]; then
  
#rpm -ivh http://dl.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm
  wget https://yum.puppetlabs.com/el/6.5/products/x86_64/puppetlabs-release-6-5.noarch.rpm
  rpm -ivh puppetlabs-release-6-5.noarch.rpm
  rm -rf puppetlabs-release-6-5.noarch.rpm
  
elif [ `uname -r | grep el5 | wc -l` -eq 1 ] && [ `rpm -qa | grep epel |wc -l` -eq 0 ]; then
  rpm -ivh http://dl.fedoraproject.org/pub/epel/5/x86_64/epel-release-5-4.noarch.rpm
  
fi
  
}
  

  
check_install(){
  
#puppet_client端安装
  
yum install puppet -y
  

  
if [ $? -eq 0 ];then
  echo "安装完成,即将修改puppet配置文件。。。"
  

  
cat >> /etc/puppet/puppet.conf <<EOF
  

  
    server = 172.16.8.129      #server端IP地址
  
    certname = $SERVER_IP
  
    runinterval = 60             #puppet客户端向server自动请求时间间隔
  
    listen = true
  
    report = true
  
EOF
  

  
echo "修改完成,即将启动puppet。。。"
  

  
chkconfig puppet on
  
/etc/init.d/puppet start
  

  
fi
  
}
  

  
#检查网络
  
check_network(){
  
ping -c 1 www.baidu.com&>/dev/null
  
if [ $? -ne 0 ]; then
  echo "外网故障,即将修改。。。"
  route add -net 0.0.0.0/0 gw 172.16.8.2
  
fi
  
}
  

  
check_network
  
check_file
  
check_system_clock
  
check_repo
  
epel_yum
  
check_install
  
check_recovery
页: [1]
查看完整版本: puppet 学习笔记