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

[经验分享] Puppet 安装与应用

[复制链接]
累计签到:1 天
连续签到:1 天
发表于 2014-11-13 08:48:04 | 显示全部楼层 |阅读模式
Puppet要求所有机器有完整的域名(FQDN),如果没有 DNS 服务器提供域名的话,可以在两台机器上设置主机名(注意要先设置主机名再安装 Puppet,因为安装 Puppet 时会把主机名写入证书,客户端和服务端通信需要这个证书),因为我配置了DNS,所以就不用改hosts了,如果没有就需要改hosts文件指定。


环境:
采用CentOS-6.4-x64系统,IP地址如下:
Master: 192.168.239.128
Client: 192.168.239.130

操作说明:
红色代码命令,蓝色代表说明,紫色代表操作主机

Master,client:

1.关闭selinux,iptables,并设置ntp
安装ntp、wget等常用工具
安装ntp wget
yum install -y wget ntp
关闭selinux

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

chkconfig ip6tables off
chkconfig iptables off
/etc/init.d/ip6tablesstop
/etc/init.d/iptables stop
设置ntp

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


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

wgethttp://yum.puppetlabs.com/el/6/p ... ease-6-7.noarch.rpm
rpm -ivhpuppetlabs-release-6-7.noarch.rpm

master
vi /etc/hosts
末尾添加一条记录
192.168.239.130  ns2.centos.com
测试主机名是否Ping通
ping ns2.centos.com

安装和启用 puppet 服务:
yum install puppet-server
chkconfig puppet on
service puppetmasterstart

client:
vi /etc/hosts
末尾添加一条记录
192.168.239.128  ns1.centos.com
测试主机名是否Ping通
ping ns1.centos.com

安装puppet客户端

yum install puppet
chkconfig puppet on
service puppet start
3.配置puppet
对于puppet 客户端,修改配置文件,指定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 listof the classes
# associated with the retrievedconfiguratiion. Can be loaded in
# the separate ``puppet`` executable usingthe ``--loadclasses``
# option.
# The default value is'$confdir/classes.txt'.
classfile = $vardir/classes.txt

# Where puppetd caches the localconfiguration. An
# extension indicating the cache format isadded automatically.
# The default value is '$confdir/localconfig'.
localconfig = $vardir/localconfig
server =ns1.centos.com
并重启puppet服务

service puppetrestart
4.Client申请证书
Master

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

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

client

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

puppet agent--no-daemonize --onetime --verbose --debug
就可以申请证书了,由于我配置的自动签发证书,所以直接就签发了,在服务端执行

Master:

puppet cert list--all
+ "ns1.centos.com"(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: "DNS:ns1.centos.com", "DNS:puppet","DNS:puppet.canghai.com")
+"ns2.centos.com" (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

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

puppet cert --signns2.centos.com
进行签发证书,签发后在master,执行

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

yum install -y mysqlmysql-devel mysql-server
优化mysql设置
编辑 /etc/my.cnf, 在[mysqld]字段,增加最后一行

vi /etc/my.cnf

[mysqld]
datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock
user=mysql
# Disabling symbolic-links is recommendedto 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/mysqldstart
chkconfig mysqld on
设置mysql密码,我这里使用是密码是123456

mysqladmin -u rootpassword '123456'
创建一个dashboard数据库

mysql -uroot -p123456<<EOF
CREATE DATABASEdashboard CHARACTER SET utf8;
CREATE USER'dashboard'@'localhost' IDENTIFIED BY '123456';
GRANT ALL PRIVILEGESON dashboard.* TO 'dashboard'@'localhost';
FLUSH PRIVILEGES;
EOF

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

wgethttp://dl.fedoraproject.org/pub/ ... ease-6-8.noarch.rpm
rpm -ivhepel-release-6-8.noarch.rpm
yum installmod_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/
rakeRAILS_ENV=production db:migrate
配置Apache
我们需要整合Passenger和apache

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

PassengerRoot/usr/share/rubygems/gems/passenger-3.0.17
PassengerRuby/usr/bin/ruby
PassengerHighPerformanceon
PassengerMaxPoolSize12
PassengerPoolIdleTime1500
PassengerStatThrottleRate120
RailsAutoDetect On

ServerNamens1.centos.com
DocumentRoot"/usr/share/puppet-dashboard/public/"
<Directory"/usr/share/puppet-dashboard/public/>;
Options None
AllowOverrideAuthConfig
Order allow,deny
allow from all
</Directory>

ErrorLog/var/log/httpd/ns1.centos.com_error.log
LogLevel warn
CustomLog/var/log/httpd/ns1.centos.com_access.log combined
ServerSignature On

EOF
启动服务

/etc/init.d/httpdstart
chkconfig httpd on
配置puppet
让Dashboard使用Reports,现在默认agent是已经启用Report的功能,所以你就不需要设置agent,你只需要设置Server端就可以

vi /etc/puppet/puppet.conf
[master]
reports = store, http
reporturl =http://ns1.centos.com:80/reports/upload
重启puppetmaster 服务

/etc/init.d/puppetmasterrestart
这时候就可以直接用 http://ip 访问puppet Dashboard
2013-05-05_210851
导入报告

cd/usr/share/puppet-dashboard
rake RAILS_ENV=productionreports:import
这时候你访问Dashboard,可以看到导入的任务.
2013-05-05_220858
4. 执行导入的reports

cd/usr/share/puppet-dashboard
rake jobs:workRAILS_ENV="production"


注明:本文参考过 http://www.cactifans.org/linux/994.html

注意事项:
如果web页面打开时Apache 2 Test Page 页面,无法进入puppet管理页面时

需要修改httpd 配置文件
把根目录/var/www/html/ 改成/usr/share/puppet-dashboard/public/
重启httpd服务



运维网声明 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-28665-1-1.html 上篇帖子: puppet项目计划之puppet dashboard图形管理篇 下篇帖子: Puppet安装(一):安装服务端和客户端
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

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

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

扫描微信二维码查看详情

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


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


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


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



合作伙伴: 青云cloud

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