上篇说了下在ubuntu12.04上安装puppet,安装的版本为puppet2.7.11版本,今天尝试了下在CentOS6.4系统上安装puppet 3.1.1版本,本文参考chenshake的文章

http://www.cactifans.org/linux/994.html 【原文链接,尊重别人的劳动成功】

?

1

2

3

4

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

?

1

yum install wget ntp -y

关闭selinux

?

1

2

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

setenforce
0

停止iptables

?

1

2

3

4

chkconfig
ip6tables off

chkconfig
iptables off

/etc/init.d/ip6tables stop

/etc/init.d/iptables stop

设置ntp

?

1

2

3

ntpdate
pool.ntp.org

chkconfig
ntp on

service
ntpd start

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

?

1

2

3

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 服务:

?

1

2

3

yum install puppet-server

chkconfig
puppet on

service
puppetmaster start

在clients上安装puppet客户端

?

1

2

3

yum install puppet

chkconfig
puppet on

service
puppet start

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

?

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

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 classes

#
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服务

?

1

service
puppet restart

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

?

1

2

3

4

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

*.canghai.com

EOF

service
puppetmaster restart

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

?

1

puppet
agent

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

?

1

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

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

?

1

2

3

4

5

6

7

puppet cert
list --all

+
"master.canghai.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:master.canghai.com", "DNS:puppet",
"DNS:puppet.canghai.com")

+
"node1.canghai.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

+
"node2.canghai.com" (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

+
"node3.canghai.com" (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

+
"node4.canghai.com" (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

+
"node5.canghai.com" (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

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

?

1

puppet cert
--sign node1.canghai.com

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

?

1

puppet cert
list --all

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

?

1

yum install -y mysql mysql-devel mysql-server

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

?

1

2

3

4

5

6

7

8

9

10

11

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

启动服务

?

1

2

/etc/init.d/mysqld start

chkconfig
mysqld on

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

?

1

mysqladmin
-u root password '123456'

创建一个dashboard数据库

?

1

2

3

4

5

6

mysql
-uroot -p123456 <<EOF

CREATE
DATABASE dashboard CHARACTER SET utf8;

CREATE USER
'dashboard'@'localhost' IDENTIFIED BY '123456';

GRANT ALL
PRIVILEGES ON dashboard.* TO 'dashboard'@'localhost';

FLUSH
PRIVILEGES;

EOF

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

?

1

2

3

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

?

1

2

3

4

5

6

7

vi /usr/share/puppet-dashboard/config/database.yml

production:

database:
dashboard

username:
dashboard

password:
123456

encoding:
utf8

adapter:
mysql

修改时区

?

1

2

3

4

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

#config.time_zone
= 'UTC'

config.time_zone
= 'Beijing'

初始化数据库

?

1

2

cd /usr/share/puppet-dashboard/

rake
RAILS_ENV=production db:migrate

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

?

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

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
"/usr/share/puppet-dashboard/public/"

&lt;Directory
"/usr/share/puppet-dashboard/public/"&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

启动服务

?

1

2

/etc/init.d/httpd start

chkconfig
httpd on

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

?

1

2

3

4

vi /etc/puppet/puppet.conf

[master]

reports =
store, http

reporturl =
http://master.canghai.com:80/reports/upload

重启puppetmaster 服务

?

1

/etc/init.d/puppetmaster restart

这时候就可以直接用 http://ip 访问puppet Dashboard

导入报告

?

1

2

cd /usr/share/puppet-dashboard

rake RAILS_ENV=production
reports:import

这时候你访问Dashboard,可以看到导入的任务.

4. 执行导入的reports

?

1

2

cd /usr/share/puppet-dashboard

rake
jobs:work RAILS_ENV="production"

yum puppet 并整合控制台的更多相关文章

  1. yum puppet dashboard

    该Dashboard是一种运行在Rails上的Ruby应用程序,它还不是可以添加到系统版本中的程序包,但是我们可以从Puppet Labs以RPM或者DEB包的形式获得该软件.我们也可以选择从资源进行 ...

  2. yum puppet

    config.gem: Unpacked gem factory_girl-1.3.3 in vendor/gems has no specification file. Run 'rake gems ...

  3. babun安装,整合到cmder

    babun Babun的特性: 预装了Cygwin以及许多的插件 默认的命令行安装工具,没有管理员权限要求. 预装了 pact工具,一个高级的包管理器,类似 apt-get或yum xTerm-256 ...

  4. 企业级自动化运维工具---puppet详解

    本文收录在Linux运维企业架构实战系列 1.认识puppet 1.1 引入 puppet是什么,咱们先不用专业的名词解释它,咱们先描述一些工作场景,看明白这些工作场景,自然会知道puppet是什么. ...

  5. 项目10.2-企业级自动化运维工具---puppet详解

    1.认识puppet 1.1 引入 puppet是什么,咱们先不用专业的名词解释它,咱们先描述一些工作场景,看明白这些工作场景,自然会知道puppet是什么. (1)场景一: 管理员想要在100台服务 ...

  6. 1、puppet基础

    Puppet:IT基础设施自动化管理工具 参考文章: https://yq.aliyun.com/articles/120228 http://www.51niux.com/?id=105 http: ...

  7. 自动化运维工具之Puppet基础入门

    一.简介 puppet是什么?它能做什么? puppet是一个IT基础设施自动化运维工具,它能够帮助系统管理员管理基础设施的整个生命周期:比如,安装服务,提供配置文件,启动服务等等一系列操作:基于pu ...

  8. 在 CentOS 7 上安装和配置 Puppet

    1 准备 2台 centos7 (master/server:192.168.1.103 agent/client:192.168.1.106) 分别添加puppet自定义仓库 https://yum ...

  9. win7和u盘redhat7.1双系统安装总结

    最近win7系统越用越卡,又没钱买mac只能想办法装以下linux系统,听说redhat服务器用的比较多,就想尝试一下装一个redhat.当然,和所有人一样,搜索了很多资料.我选择装双系统,因为要抛弃 ...

随机推荐

  1. 【Android】Sqlite3命令详解

    Sqlite3常用命令 Sqlite3命令有"."符合作为前缀. 基本操作 1.创建或者打开数据库 sqlite3 xxx.db 如果xxx.db存在则打开如果没有则新建此时执行创 ...

  2. android程序的安装与卸载

    Android android在安装应用程序与卸载应用程序时都会发送广播,安装应用程序成功时会发送android.intent.action.PACKAGE_ADDED广播,可以通过intent.ge ...

  3. 降低IIScup使用率,提高性能

    智能提醒webservice在高峰期间CPU使用率达到50%,内存消耗2G优化方法:启用IIS的Web Garden. 步奏如下: 在IIS7中,选择对应的应用程序池 然后右键高级设置. 把其中的最大 ...

  4. linux下 链接 sqlserver数据库 驱动的安装

    1.必需安装freetds 安装pdo_dblib扩展首先需要安装freetds. freeTDS的最新稳定版是0.91,这个可以在官网上下载http://www.freetds.org/ ,也可以在 ...

  5. epoll和select区别

    先说下本文框架,先是问题引出,然后概括两个机制的区别和联系,最后介绍每个接口的用法 一.问题引出 联系区别 问题的引出,当需要读两个以上的I/O的时候,如果使用阻塞式的I/O,那么可能长时间的阻塞在一 ...

  6. arm-linux-gcc编译器定义寄存器变量

    uboot代码中有这么一句话“#define DECLARE_GLOBAL_DATA_PTR     register volatile gd_t *gd asm ("r8")”, ...

  7. bootstrap-datepicker 日期拾取器

    最近开发的项目界面用的是bootstrap的框架,发现开源的东西真的很多,慢慢的我会记录到上面来 地址  http://www.bootcss.com/p/bootstrap-datetimepick ...

  8. 【产品体验】喵街&飞凡

    最近O2O很火啊,我也来找几个O2O产品体验下~~~ 阿里今年5月30号上线了一款线下逛街App——喵街,号称消费者的逛街神器.阿里去年已经与银泰合作一年,探索互联网和传统实体零售合作之路,这次则免费 ...

  9. html页面高度不同浏览器兼容性设置

    页面需要嵌套在跨域的iframe中,而页面高度不固定,需要每个页面把自己的高度获得后,通过js通知iframe调整显示. 而页面在获得自己的高度时,发现总是比预想的大.经过参考别人的博客,发现原来是w ...

  10. POJ 2892 Tunnel Warfare || HDU 1540(树状数组+二分 || 线段树的单点更新+区间查询)

    点我看题目 题意 :N个村子连成一条线,相邻的村子都有直接的地道进行相连,不相连的都由地道间接相连,三个命令,D x,表示x村庄被摧毁,R  ,表示最后被摧毁的村庄已经重建了,Q x表示,与x直接或间 ...