Puppet 安装与应用

Centos 6.4 安装Puppet

 

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/products/x86_64/puppetlabs-release-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/epel/6/x86_64/epel-release-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服务

时间: 2024-12-24 14:12:06

Puppet 安装与应用的相关文章

puppet 安装及核心资源注解

-----本文大纲 简介 工作原理 puppet安装及命令解析 puppet资源类型 --------------------- 一.简介 puppet是一种Linux.Unix.windows平台的集中配置管理系统,使用自有的puppet描述语言,可管理配置文件.用户.cron任务.软件包.系统服务等.puppet把这些系统实体称之为资源,puppet的设计目标是简化对这些资源的管理以及妥善处理资源间的依赖关系. puppet采用C/S星状的结构,所有的客户端和一个或几个服务器交互.每个客户端

puppet安装与配置

puppet是一个为实现数据库中心自动化管理而设计的配置管理软件.基于c/s架构.puppet的服务器端保存着所有的对客户端服务器的配置代码,在puppet里面叫做manifest. 客户端下载manifest之后,可以根据manifest对服务器进行配置,例如软件包管理,用户管理和文件管理等等.这样就把日常的系统管理任务代码化了,代码化的好处是可以分享,保存,避免重复劳动,也可以快速恢复以及快速的大规模部署服务器.同时,manifest可以的根据客户端服务器的配置情况(硬件和软件)来动态生成.

puppet安装部署,实例JDK和tomcat

puppet 原理和工作流程 puppet 一个为实现数据中心自动化管理而设计的配置管理软件 基于C/S架构 原理:S服务端保存着所有的对客户端服务器的配置代码,puppet里叫清单(manifest):c客户端下载清单后,根据清单对服务器进行配置 工作流程:客户端调用facter facter探测出主机的一些变量,puppetd 把这些信息通过SSL连接发送到服务器puppetmaster 服务器puppetmaster 检测客户端的主机名,然后找到manifest里面对应主机的配置,对其解析

puppet安装和部署

环境 [[email protected] ~]# cat /etc/redhat-release CentOS release 6.6 (Final) http://downloads.puppetlabs.com/facter/facter-1.5.8.tar.gz http://downloads.puppetlabs.com/puppet/puppet-2.6.1.tar.gz 软件包: [[email protected] tools]# ll 总用量 1532 -rw-r--r--

Puppet安装部署篇(二)

前言:上篇写了结合svn钩子做版本控制puppet master代码,后续的操作都要在windows客户端使用svn完成操作,如果直接在服务器端操作,svn的钩子就会出现同步失败和不同步的问题. 解决:pkill svn && svnserve -d -r /data/puppet_co/  #重启操作 1.安装完puppet查看puppet的主配置文件目录: #puppet agent --configprint confdir /etc/puppet 2.设置puppet/puppet

puppet安装使用教程(二)

登陆到我们的puppet的master的控制台.(我擦,电脑快扛不住了) http://down.51cto.com/data/1975148   官网文档地址. 软件版本:puppet-enterprise-3.7.1-el-6-x86_64.tar.gz,下载地址:http://pan.baidu.com/s/1ntDSGmH(费了九牛二虎之力下载下来的,昨晚从官网上下载了好几遍,下载下来之后以解压包就错误.今天上班时下的,好的.擦!!) 系统架构: 系统 master端:CentOS re

puppet安装

server  xuesong1     10.152.14.85 client  xuesong      10.152.14.106 系统centos5.8 两台配置都配置 /etc/hosts 10.152.14.85    xuesong1 10.152.14.106   xuesong wget http://download.fedoraproject.org/pub/epel/5/i386/epel-release-5-4.noarch.rpm rpm -Uvh epel-rele

puppet安装使用教程(一)

最近在学习puppet的安装,配置和使用.就从官网上下载了官方文档来看.因为也是刚开始学习puppet,所以咱看着官网的文档一步一步来.官网文档也下载下来上传到51了. http://down.51cto.com/data/1975148   文档地址. 实验准备: 1,前期准备 1)puppet的客户端节点,puppet的管理对象,各节点之间能够相互通讯 2)所有节点的系统时间误差保持在1分钟之内 3)配置好软件的网络yum源或者本地yum源 4)关闭防火墙,selinux 5)保证所有的节点

Puppet 安装配置

一.什么是puppet? 1.基于ruby语言开发的系统配置集中管理工具,跨平台 2.一个C/S架构,配置服务端和客户端 puppet依赖于ruby与facter,安装puppet3.x,需要ruby1.8.7版本及以上:facter是一个系统盘点工具,收集主机的一些资料,比如OS.IP.CPU等 3.puppet是一个C/S结构,开源软件,基于Ruby的系统配置管理工具,安装puppet3.x,需要ruby1.8.7版本及以上 4.默认情况下,客户端每隔30分钟连接一次puppet服务端 5.

puppet安装配置(一)

之前搞了一个月zabbix,基本上是能熟练使用了,不过在后来部署的时候发现这玩意在部署的时候机子少还行,机子多了手动安装手会残的.第一反应是用puppet,后来师父直接用puppet搞定了.索性自己也学一波,毕竟这是自动化运维大势所趋,必备技能啊. 下载链接见http://www.cnblogs.com/weijing24/p/5714850.html puppet是c/s结构,有一个服务端和很多客户端.一般运行模式是客户端从服务端拉取指令然后执行.puppet很纠结的一个地方是版本不同导致的命