Puppet客户端自动安装脚本

简介:

   运维自动化发展已经是势不可挡,传统的靠大量人力运维的方式渐不能满足企业IT发展的需求,其中Puppet自动化更是受到IT人士的青睐,那今天我们一起来研究一下puppet客户端的自动安装脚本。脚本不足之处,欢迎指正,共同进步!

   背景:当我们需要使用puppet批量管理服务器时,首先需要指定FQDN名或者DNS解析,然后接下来就是批量安装puppet客户端了,怎样安装比较快呢?这里仅供参考,把脚本放置在kickstart ks.cfg文件%post段,系统安装完毕后,会执行该脚本!直接看脚本如下:

 
  1. #!/bin/sh   
  2. #auto install puppet client  
  3. #wugk 2012-11-30  
  4. #PUPPET_SERVER=192-9-117-160-app.com  
  5. #此脚本为客户端安装,同时包含服务器端安装,根据实际需求修改即可。      
  6. cat <<EOF  
  7. ++++++++++++++++++++welcome to use auto install puppet ++++++++++++++++++  
  8. +++++++++-----------------------------------------------+++++++++++++++++  
  9. +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++  
  10. EOF  
  11. #安装ruby及相关库支持      
  12. echo "Please waiting ruby soft ........"  
  13.     rpm -ivh compat-readline5-5.2-17.1.el6.x86_64.rpm ruby-libs-1.8.7.352-7.el6_2.x86_64.rpm ruby-1.8.7.352-7.el6_2.x86_64.rpm ruby-devel-1.8.7.352-7.el6_2.x86_64.rpm  
  14.    
  15. echo  
  16. echo  
  17. #定义客户端安装函数client,即定义client命令      
  18. client ()  
  19.       
  20. {  
  21.     echo "Now install puppet client rpm -ivh puppet-2.7.20-1.el6.noarch.rpm" 
  22.   
  23.     #安装facter源码包,主要用于检测客户端本机信息,例如主机名、ip、内存等信息   
  24.     ####now install facter soft  
  25.     tar xzf facter-1.6.8.tar.gz ;cd  facter-1.6.8/ ;/usr/bin/ruby install.rb  
  26.   
  27.     #安装puppet客户端程序,这里采用rpm包安装方式 
  28.     cd ../; rpm -ivh --nodeps  puppet-2.7.20-1.el6.noarch.rpm 
  29.   
  30.     #配置config  puppet puppet_Server可以手动输入,也可以指定变量 
  31.     ####sed auto puppet config  
  32.     read -p "Please insert puppet server address:" PUPPET_SERVER   
  33.     sed -i 's/^#PUPPET/PUPPET/g' /etc/sysconfig/puppet 
  34.            
  35.     #指定服务端主机名,并配置监听端口、允许认证      
  36.     grep $PUPPET_SERVER /etc/sysconfig/puppet ;[ $? -ne 0 ]&&sed -i "/PUPPET_SERVER/s/puppet/$PUPPET_SERVER/g" /etc/sysconfig/puppet      grep listen /etc/puppet/puppet.conf ;[ $? -ne 0 ]&&echo "   listen = true" >> /etc/puppet/puppet.conf  
  37.     tail -2 /etc/puppet/auth.conf |grep "allow *" ;[ $? -ne 0 ]&&echo "allow *" >> /etc/puppet/auth.conf  
  38.     echo -e "[puppetrunner]\nallow  * " >/etc/puppet/namespaceauth.conf  
  39.     #配置puppet master服务器端主机名和客户端本地主机名,获取本机的ip信息,并加入/etc/hosts中 
  40.     grep $PUPPET_SERVER /etc/hosts ;[  $? -ne 0 ] &&echo "`echo $PUPPET_SERVER|awk -F- '{print $1"."$2"."$3"."$4}'` $PUPPET_SERVER" >>/etc/hosts  
  41.       
  42.     echo +++++++++++++++++++++++++++++++++++++++++++++++++++++  
  43.     ETH=`ifconfig |grep Bcast|cut -d: -f 2|awk '{print $1}'`  
  44.     echo "Please insert PUPPET_SERVER /etc/hosts :: $ETH `echo $ETH|sed 's/\./-/g'`-app.com"  
  45.      
  46.     cat /etc/hosts |grep -v 127 |grep $ETH ;[  $? -ne 0 ] &&echo "$ETH `echo $ETH|sed 's/\./-/g'`-app.com" >>/etc/hosts  
  47.     echo "The puppet is install puppet ,please exec puppet agent --server=$PUPPET_SERVER --test"  
  48.     HOSTNAME=`echo $ETH|sed 's/\./-/g'`-app.com   
  49.     hostname $HOSTNAME  
  50.     cat /etc/hosts|grep 127.0.0.1|grep $HOSTNAME ;[ $? -ne 0 ] &&sed -i "s/127.0.0.1/127.0.0.1 $HOSTNAME/" /etc/hosts  
  51.     rm -rf facter-1.6.8  
  52.       
  53. }  #定义服务器端安装函数server,即定义server命令 
  54. server ()  
  55.       
  56. {  
  57.     echo "Now install puppet client rpm -ivh puppet-2.7.20-1.el6.noarch.rpm"  
  58.     #安装puppet master、mongrel支持Nginx+多端口puppetmaster负载均衡 
  59.     rpm -ivh --nodeps puppet-server-2.7.20-1.el6.noarch.rpm puppet-2.7.20-1.el6.noarch.rpm  
  60.     rpm -ivh --nodeps ruby-irb-1.8.7.352-7.el6_2.x86_64.rpm  
  61.     rpm -ivh --nodeps ruby-rdoc-1.8.7.352-7.el6_2.x86_64.rpm  
  62.     rpm -ivh --nodeps rubygem-daemons-1.0.10-2.el6.noarch.rpm  
  63.     rpm -ivh --nodeps rubygem-fastthread-1.0.7-2.el6.x86_64.rpm  
  64.     rpm -ivh --nodeps rubygem-gem_plugin-0.2.3-3.el6.noarch.rpm  
  65.     rpm -ivh --nodeps rubygem-mongrel-1.1.5-3.el6.x86_64.rpm  
  66.     rpm -ivh --nodeps rubygem-rake-0.8.7-2.1.el6.noarch.rpm  
  67.     rpm -ivh --nodeps rubygems-1.3.7-1.el6.noarch.rpm  
  68.     #安装facter 
  69.     ####now install facter soft  
  70.     tar xzf facter-1.6.8.tar.gz ;cd  facter-1.6.8/ ;/usr/bin/ruby install.rb  
  71.   
  72.     ####sed auto puppet config   
  73.     echo  
  74.     read -p "Please insert puppet server address:" PUPPET_SERVER  
  75.   
  76.     grep listen /etc/puppet/puppet.conf ;[ $? -ne 0 ]&&echo "   listen = true" >> /etc/puppet/puppet.conf  
  77.     grep autosign /etc/puppet/puppet.conf ;[ $? -ne 0 ]&&sed -i '/ssldir/a\    autosign = true' /etc/puppet/puppet.conf  
  78.     tail -2 /etc/puppet/auth.conf |grep "allow *" ;[ $? -ne 0 ]&&echo "allow *" >> /etc/puppet/auth.conf  
  79.     tail -1 /etc/sysconfig/puppetmaster |grep "mongrel";[ $? -ne 0 ]&& echo -e "PUPPETMASTER_PORTS=( 18140 18141 18142 18143 18144 )\nPUPPETMASTER_EXTRA_OPTS=\"-servertype=mongrel  --ssl_client_header=HTTP_X_SSL_SUBJECT\"" >>/etc/sysconfig/puppetmaster  
  80.   
  81.     #配置puppet master 、Hosts 
  82.    
  83.     grep $PUPPET_SERVER /etc/hosts ;[  $? -ne 0 ] &&echo "`echo $PUPPET_SERVER|awk -F- '{print $1"."$2"."$3"."$4}'` $PUPPET_SERVER" >>/etc/hosts  
  84.   
  85.     echo +++++++++++++++++++++++++++++++++++++++++++++++++++++  
  86.     echo  
  87.   
  88.     ETH=`ifconfig |grep Bcast|cut -d: -f 2|awk '{print $1}'`  
  89.     echo "Please insert PUPPET_SERVER /etc/hosts :: $ETH `echo $ETH|sed 's/\./-/g'`-app.com"  
  90.     cat /etc/hosts |grep -v 127 |grep $ETH ;[  $? -ne 0 ] && echo "$ETH `echo $ETH|sed 's/\./-/g'`-app.com" >>/etc/hosts  
  91.   
  92.     HOSTNAME=`echo $ETH|sed 's/\./-/g'`-app.com   
  93.     hostname $HOSTNAME  
  94.     cat /etc/hosts|grep 127.0.0.1|grep $HOSTNAME ;[ $? -ne 0 ] &&sed -i "s/127.0.0.1/127.0.0.1 $HOSTNAME/" /etc/hosts  
  95.     cd ../ ;rm -rf facter-1.6.8  
  96.   
  97. }  
  98. #如下case条件语句可以选用,这里仅供参考,真实安装去掉函数定义和case方式即可。 
  99. ###config case select   
  100. #$1表示第一个参数  
  101. case $1  in   
  102.   
  103.    client )  
  104.    client   
  105. ;;    
  106.    server )  
  107.    server   
  108. ;;  
  109.     * )  
  110.   echo "Please exec $0 { client or server }"  
  111. ;;  
  112.   
  113. esac 

此脚本仅供参考,欢迎大家多交流! 


本文转自 wgkgood 51CTO博客,原文链接:http://blog.51cto.com/wgkgood/1102410


相关文章
|
监控 关系型数据库 MySQL
puppet连载15:搭建zabbix服务端、客户端
zabbix的安装需要先安装mysql. 服务端/puppet/soft建vi zabbix35server.sh 文件,内容: !/bin/bash result=netstat -tnlup|grep 3306; if [ "$result" !=...
1034 0
|
关系型数据库 网络安全 PostgreSQL
puppet连载14:安装puppetdb
yum install puppetdb puppetdb-terminus -y service puppetdb start vi /etc/puppet/puppet.
1061 0
|
网络协议 应用服务中间件 Shell
puppet连载12:linux安装nginx、openresty
服务端在/puppet/soft 里建nginx1102setup.sh,内容: !/bin/bash yum -y install wget libtool expat-devel gcc gcc-c++ glibc automake autocon...
929 0
|
Java 应用服务中间件 Linux
puppet连载九:linux安装jdk、tomcat模块
安装jdk1.8.0_91和tomcat8.0.36 mkdir -p /etc/puppet/modules/linuxjdktomcat/{manifests,templates,files} vi /etc/puppet/modules/linuxjdktomcat/manifests/init.
1078 0
|
MySQL 关系型数据库 Linux
puppet连载10:linux安装percona57/56/55、sysbench、tpcc模块
在服务端/puppet/soft下建my.cnf,内容为https://www.jianshu.com/p/c63fc6c71279 在服务端/puppet/soft下建changemysql57pass.
1073 0
|
关系型数据库 MySQL Linux
puppet连载四:服务端安装dashboard
curl -sSL https://rvm.io/mpapis.asc | gpg2 --import - curl -L get.rvm.io | bash -s stable source /etc/profile.
1262 0
|
Linux 开发工具 git
puppet连载七:linux基础组件安装模块
linux基础组件安装模块linuxbaseinstall 更换源,安装gcc gcc-c++ glibc-devel make ncurses-devel openssl-devel autoconf git mkdir -p /etc/puppet...
1073 0
|
网络安全 Apache Ruby
puppet连载三:服务端安装http、passenger
服务端安装插件: yum install -y ruby-devel ruby-libs rubygems libcurl-devel httpd httpd-devel apr-util-devel apr-devel mod_ssl gcc-c++...
1066 0
|
消息中间件
puppet 连载二:服务端和客户端安装(ActiveMQ、MCollective)
-------------------------------------服务端----------------------------------- 1、jdk安装 vi /etc/profile export JAVA_HOME=/usr/loca...
1145 0
|
网络协议 Apache
puppet 连载一:服务端和客户端安装(puppet、svn)
1、mkdir /puppet mkdir /puppet/soft 2、服务端安装dnsmasq:yum install -y dnsmasq cp /etc/dnsmasq.
1418 0

推荐镜像

更多
下一篇
无影云桌面