设为首页 收藏本站
查看: 902|回复: 0

[经验分享] 在CentOS 6.4上安装Puppet配置管理工具

[复制链接]

尚未签到

发表于 2018-8-3 07:06:23 | 显示全部楼层 |阅读模式
  本文转自cactifans
  文章地址:http://www.cactifans.org/index.php/2013/05/%E5%9C%A8centos-6-4%E4%B8%8A%E5%AE%89%E8%A3%85puppet%E9%85%8D%E7%BD%AE%E7%AE%A1%E7%90%86%E5%B7%A5%E5%85%B7/
  上篇说了下在ubuntu12.04上安装puppet,安装的版本为puppet2.7.11版本,今天尝试了下在CentOS6.4系统上安装puppet 3.1.1版本,本文参考chenshake的文章
  

  
OS:centso 6.4 X64
  
Puppet 3.1.1
  
Puppet master: master.canghai.com
  
Puppet clients:node1-5.canghai.com
  

  Puppet 要求所有机器有完整的域名(FQDN),如果没有 DNS 服务器提供域名的话,可以在两台机器上设置主机名(注意要先设置主机名再安装 Puppet,因为安装 Puppet 时会把主机名写入证书,客户端和服务端通信需要这个证书),因为我配置了DNS,所以就不用改hosts了,如果没有就需要改hosts文件指定。
  
1.关闭selinux,iptables,并设置ntp
  
采用CentOS-6.4-x86_64-minimal.iso最小化安装,因此先要安装ntp、wget等常用工具
  
安装ntp wget
  

  
yum install wget ntp -y
  

  关闭selinux
  

  
sed -i '/SELINUX/ s/enforcing/disabled/g' /etc/selinux/config
  
setenforce 0
  

  停止iptables
  

  
chkconfig ip6tables off
  
chkconfig iptables off
  
/etc/init.d/ip6tables stop
  
/etc/init.d/iptables stop
  

  设置ntp
  
DSC0000.png
  

  
ntpdate pool.ntp.org
  
chkconfig ntp on
  
service ntpd start
  

  2.安装puppet服务
  
puppet不在CentOS的基本源中,需要加入 PuppetLabs 提供的官方源:
  

  
wget http://yum.puppetlabs.com/el/6/products/x86_64/puppetlabs-release-6-7.noarch.rpm
  
rpm -ivh puppetlabs-release-6-7.noarch.rpm
  
yum update
  

  在 master上安装和启用 puppet 服务:
  

  
yum install puppet-server
  
chkconfig puppet on
  
service puppetmaster start
  

  在clients上安装puppet客户端
  

  
yum install puppet
  
chkconfig puppet on
  
service puppet start
  

  3.配置puppet
  
对于puppet 客户端,修改/etc/puppet/puppet.conf,指定master服务器
  

  
vi /etc/puppet/puppet.conf
  

  
[main]
  
# The Puppet log directory.
  
# The default value is '$vardir/log'.
  
logdir = /var/log/puppet
  

  
# Where Puppet PID files are kept.
  
# The default value is '$vardir/run'.
  
rundir = /var/run/puppet
  

  
# Where SSL certificates are kept.
  
# The default value is '$confdir/ssl'.
  
ssldir = $vardir/ssl
  

  
[agent]

  
# The file in which puppetd stores a list of the>  
# associated with the retrieved configuratiion. Can be loaded in
  
# the separate ``puppet`` executable using the ``--loadclasses``
  
# option.
  
# The default value is '$confdir/classes.txt'.
  
classfile = $vardir/classes.txt
  

  
# Where puppetd caches the local configuration. An
  
# extension indicating the cache format is added automatically.
  
# The default value is '$confdir/localconfig'.
  
localconfig = $vardir/localconfig
  
server = master.canghai.com
  

  并重启puppet服务
  

  
service puppet restart
  

  4.Client申请证书
  
服务端自动签发证书设置
  
设置master自动签发所有的证书,我们只需要在/etc/puppet 目录下创建 autosign.conf 文件。(不需要修改 /etc/puppet/puppet.conf文件,因为我默认的autosign.conf 文件的位置没有修改)
  

  
cat > /etc/puppet/autosign.conf <<EOF
  
*.canghai.com
  
EOF
  
service puppetmaster restart
  

  这样就会对所有来自canghai.com的机器的请求,都自动签名。
  
client需要向服务器端发出请求, 让服务器对客户端进行管理. 这其实是一个证书签发的过程. 第一次运行 puppet 客户端的时候会生成一个 SSL 证书并指定发给 Puppet 服务端, 服务器端如果同意管理客户端,就会对这个证书进行签发,可以用这个命令来签发证书,由于我们已经在客户端设置了server地址,因此不需要跟服务端地址
  

  
puppet agent
  

  为了详细了解注册的过程和日后排错,可以增加参数,因为配置文件里
  
–no-daemonize 前台输出日志
  
–verbose 输入更加详细的日志
  
–debug 更加详细的日志,排错的时候使用
  
–test 表示测试,就带一个–test参数就可以
  

  
puppet agent --no-daemonize --onetime --verbose --debug
  

  就可以申请证书了,由于我配置的自动签发证书,所以直接就签发了,在服务端执行
  

  
puppet cert list --all
  
+ &quot;master.canghai.com&quot; (SHA256) CA:50:6A:51:D5:AD:F0:73:BF:83:A0:4A:BF:1F:4E:F0:56:C9:4B:D8:4D:BB:62:10:EE:14:16:D5:96:D0:B6:F7 (alt names: &quot;DNS:master.canghai.com&quot;, &quot;DNS:puppet&quot;, &quot;DNS:puppet.canghai.com&quot;)
  
+ &quot;node1.canghai.com&quot; (SHA256) B8:95:69:2B:7B:3E:F4:38:CA:63:BE:A0:ED:3C:E7:05:1F:93:53:2D:1C:60:67:E9:D8:20:99:90:B8:9B:D6:40
  
+ &quot;node2.canghai.com&quot; (SHA256) 6C:65:34:9D:B1:82:35:24:EF:3F:10:2B:10:F0:0B:44:42:AB:84:42:29:B5:73:1A:A0:1D:D5:1E:9E:24:BC:E3
  
+ &quot;node3.canghai.com&quot; (SHA256) 57:54:33:37:23:A7:CD:BE:F6:25:BD:6F:E3:DA:F9:57:48:50:C7:5E:36:8F:F4:BA:C8:27:DF:B0:A2:84:5F:AF
  
+ &quot;node4.canghai.com&quot; (SHA256) 65:2F:0E:E7:98:F5:05:40:31:2F:FF:36:A5:3E:DE:C1:91:E8:45:16:55:60:A1:82:74:BC:84:EC:BA:C0:62:F0
  
+ &quot;node5.canghai.com&quot; (SHA256) 8C:1B:31:B6:C0:9C:A5:AF:89:6C:85:1B:BA:D0:03:63:07:4C:B1:89:D4:E6:B7:4E:CA:4A:23:C7:3C:5F:CA:3D
  

  就可以看到所有客户端已经都已签发证书,前面带&quot;+&quot;号的就是签发成功的,撸过没有签名的,可以用
  

  
puppet cert --sign node1.canghai.com
  

  进行签发证书,签发后在master,执行
  

  
puppet cert list --all
  

  即可看到证书已经签发
  
5.在服务端安装puppet的dashboard
  
安装mysql
  

  
yum install -y mysql mysql-devel mysql-server
  

  优化mysql设置
  
编辑 /etc/my.cnf, 在[mysqld]字段,增加最后一行
  

  
cat /etc/my.cnf
  
[mysqld]
  
datadir=/var/lib/mysql
  
socket=/var/lib/mysql/mysql.sock
  
user=mysql
  
# Disabling symbolic-links is recommended to prevent assorted security risks
  
symbolic-links=0
  
max_allowed_packet = 32M
  
[mysqld_safe]
  
log-error=/var/log/mysqld.log
  
pid-file=/var/run/mysqld/mysqld.pid
  

  启动服务
  

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

  设置mysql密码,我这里使用是密码是123456
  

  
mysqladmin -u root password '123456'
  

  创建一个dashboard数据库
  

  
mysql -uroot -p123456 <<EOF
  
CREATE DATABASE dashboard CHARACTER SET utf8;

  
CREATE USER 'dashboard'@'localhost'>  
GRANT ALL PRIVILEGES ON dashboard.* TO 'dashboard'@'localhost';
  
FLUSH PRIVILEGES;
  
EOF
  

  Passenger+Apache+Dashboard
  
这是让Apache支持ruby,由于Passenger不在centos官方源里,因此要添加epel的源
  

  
wget http://dl.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm
  
rpm -ivh epel-release-6-8.noarch.rpm
  
yum install mod_passenger puppet-dashboard
  

  配置Dashboard
  

  
vi /usr/share/puppet-dashboard/config/database.yml
  
production:
  
database: dashboard
  
username: dashboard
  
password: 123456
  
encoding: utf8
  
adapter: mysql
  

  修改时区
  

  
vi /usr/share/puppet-dashboard/config/environment.rb
  

  
#config.time_zone = 'UTC'
  
config.time_zone = 'Beijing'
  

  初始化数据库
  

  
cd /usr/share/puppet-dashboard/
  
rake RAILS_ENV=production db:migrate
  

  配置Apache
  
我们需要整合Passenger和apache
  

  
cat > /etc/httpd/conf.d/passenger.conf << EOF
  
LoadModule passenger_module modules/mod_passenger.so
  

  
PassengerRoot /usr/share/rubygems/gems/passenger-3.0.17
  
PassengerRuby /usr/bin/ruby
  
PassengerHighPerformance on
  
PassengerMaxPoolSize 12
  
PassengerPoolIdleTime 1500
  
PassengerStatThrottleRate 120
  
RailsAutoDetect On
  

  
ServerName master.canghai.com
  
DocumentRoot &quot;/usr/share/puppet-dashboard/public/&quot;
  
&lt;Directory &quot;/usr/share/puppet-dashboard/public/&quot;&gt;
  
Options None
  
AllowOverride AuthConfig
  
Order allow,deny
  
allow from all
  

  
ErrorLog /var/log/httpd/master.canghai.com_error.log
  
LogLevel warn
  
CustomLog /var/log/httpd/master.canghai.com_access.log combined
  
ServerSignature On
  

  
EOF
  

  启动服务
  

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

  配置puppet
  
让Dashboard使用Reports,现在默认agent是已经启用Report的功能,所以你就不需要设置agent,你只需要设置Server端就可以
  

  
vi /etc/puppet/puppet.conf
  
[master]
  
reports = store, http
  
reporturl = http://master.canghai.com:80/reports/upload
  

  重启puppetmaster 服务
  

  
/etc/init.d/puppetmaster restart
  

  这时候就可以直接用 http://ip 访问puppet Dashboard
  
DSC0001.png
  
导入报告
  

  
cd /usr/share/puppet-dashboard
  
rake RAILS_ENV=production reports:import
  

  这时候你访问Dashboard,可以看到导入的任务.
  
DSC0002.png
  
4. 执行导入的reports
  

  
cd /usr/share/puppet-dashboard
  
rake jobs:work RAILS_ENV=&quot;production&quot;
  


运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-545570-1-1.html 上篇帖子: 自动化运维之 - puppet第一个资源 -- 文件管理 下篇帖子: puppet集群部署
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表