Puppet安装及部署

本篇博客主要介绍Puppet的安装部署,后续会更新其余相关内容
mysql

1、简介sql

2、环境介绍数据库

3、安装Puppetvim

4、配置Puppet-dashboardwindows

5、配置Puppet Kickruby


1、简介bash

Puppet是一个基于Ruby语言所研发的一款开源软件,Puppet是一种Linux、Unix、windows平台的集中配置管理系统,使用自有的Puppet描述语言,可管理配置文件、用户、cron任务、软件包、系统服务等。Puppet把这些系统实体称之为资源,Puppet的设计目标是简化对这些资源的管理以及妥善处理资源间的依赖关系
服务器

Puppet采用C/S星状的结构,全部的客户端和一个或几个服务器交互。Puppet一般能够用来管理一台主机的整个生命周期:从初始化到安装、升级、维护以及后续将服务迁移并下架。每一个客户端周期的(默认半个小时)向服务器发送请求,得到其最新的配置信息,保证和该配置信息同步。每一个Puppet客户端每半小时(能够设置)链接一次服务器端, 下载最新的配置文件,而且严格按照配置文件来配置服务器. 配置完成之后,Puppet客户端能够反馈给服务器端一个消息. 若是出错,也会给服务器端反馈一个消息...app


2、环境介绍ide

系统版本:Centos-6.4-x86_64

Puppet版本:puppet-2.7.23 下载地址

主机规划
------------------------------------------------------------------------
######Master主机
[root@master ~]# hostname
master.allen.com
[root@master ~]# cat /etc/hosts
172.16.14.1 master.allen.com
172.16.14.2 client.allen.com
[root@master ~]# ifconfig eth0 | awk '/inet addr:/{print $1,$2}'
inet addr:172.16.14.1
------------------------------------------------------------------------
######Client主机
[root@client ~]# hostname
client.allen.com
[root@client ~]# cat /etc/hosts
172.16.14.1 master.allen.com
172.16.14.2 client.allen.com
[root@client ~]# ifconfig eth0 | awk '/inet addr:/{print $1,$2}'
inet addr:172.16.14.2

3、安装Puppet

安装前请确认SELinux与Iptables已经处于关闭状态

一、配置好YUM源;并作时间同步

# wget http://mirrors.yun-idc.com/epel/6/i386/epel-release-6-8.noarch.rpm
# rpm -ivh epel-release-6-8.noarch.rpm

二、安装Puppet软件

注释:如下软件压缩成一个软件包,下载解压出来便可得到全部软件
------------------------------------------------------------------------
######在Master主机上安装
[root@master ~]# yum -y --nogpgcheck localinstall puppet-server-2.7.23-1.el6.noarch.rpm facter-1.7.3-1.el6.x86_64.rpm puppet-2.7.23-1.el6.noarch.rpm
------------------------------------------------------------------------
######在Client主机上安装
[root@client ~]# yum -y --nogpgcheck localinstall facter-1.7.3-1.el6.x86_64.rpm puppet-2.7.23-1.el6.noarch.rpm

三、修改Master主机上的主配置文件

[root@master ~]# puppet master --genconfig > /etc/puppet/puppet.conf  #从新生成配置文件
[root@master ~]# vim /etc/puppet/puppet.conf    #修改以下两项配置
rundir = /var/run/puppet
pidfile = $rundir/master.pid

四、启动Puppet服务端进程

211011134.gif

注释:按"Ctrl+C"组合键结束上面启动的进程,以守护进程方式启动并设置为开机自启动
[root@master ~]# service puppetmaster start
[root@master ~]# chkconfig puppetmaster on

五、修改Client主机上的主配置文件

注释:在[main]段添加以下配置
server = master.allen.com    #指定puppet服务器主机名,要能正常解析

六、启动Puppet客户端服务

212228937.gif

七、在第6个步骤中客户端建立过证书申请后,此时能够在Puppet服务器端查看并签署证书

212557885.gif

若是服务器至关多的话,这样签署证书效率至关的低,并且还会签证书签到手抽筋;有什么方法可让服务器自动签署证书呢?答案是固然有了...

注释:在服务器端Puppet配置文件目录下添加以下文件并写入以下信息;表示服务器将会自会签署来自"allen.com"这个域中主机的全部证书申请
# echo "*.allen.com" > /etc/puppet/autosign.conf

八、此时,客户端会显示证书成功签署并成功启动服务

212715480.gif

九、再次测试Puppet客户端链接服务器;而后启动Puppet客户端服务

213033514.gif

213127433.gif

十、测试客户端是否能成功从服务端获取到文件

Master主机:

[root@master ~]# vim /etc/puppet/manifests/site.pp
file {"/tmp/puppet.txt":
    content => "puppet test\n",
}

Client主机:

[root@client ~]# puppet agent --server=master.allen.com --no-daemonize --verbose --test
[root@client ~]# service puppet restart
注释:执行以上两条命令任务一条便可;这里使用第一条便于查看是否同步成功

230642329.gif

到此Puppet的基本安装与测试已完成


4、配置Puppet-dashboard

一、安装数据库;这里为了方便就安装在Master主机上了

[root@master ~]# yum -y install mysql-server
[root@master ~]# service mysqld start
[root@master ~]# mysql
mysql> create database dashboard character set utf8;
mysql> grant all privileges on dashboard.* to 'dashboard'@'172.16.%.%' identified by 'password';
mysql> flush privileges;
------------------------------------------------------------------------
注释:执行受权用户命令上面或下面其中一条便可
mysql> grant all privileges on dashboard.* to 'dashboard'@'master.allen.com' identified by 'password';

二、安装其它的工具

[root@master ~]# gem install rake

三、在Master主机上安装puppet-dashboard

[root@master ~]# yum -y --nogpgcheck localinstall puppet-dashboard-1.2.23-1.el6.noarch.rpm

四、导入Dashboard所依赖的数据库

[root@master ~]# cd /usr/share/puppet-dashboard #切换到dashboard安装目录
[root@master ~]# rake RAILS_ENV=production db:migrate #导入数据库
rake aborted!
No Rakefile found (looking for: rakefile, Rakefile, rakefile.rb, Rakefile.rb)
(See full trace by running task with --trace)
[root@master puppet-dashboard]# rake gems:refresh_specs #若是出现如上错误;执行此命令而后从新导入数据库便可
[root@master puppet-dashboard]# rake RAILS_ENV=production db:migrate
------------------------------------------------------------------------

五、修改"database.yml"文件中的"production"段以下:

[root@master ~]# vim /usr/share/puppet-dashboard/config/database.yml
production:
  host : 172.16.14.1
  database: dashboard
  username: dashboard
  password: password
  encoding: utf8
  adapter: mysql

六、测试"Dashboard"服务是否工做正常

######测试dashboard服务是否能正常启动;出现以下信息说明已经成功,而后按"Crtl+C"组合键结束进程
[root@master ~]# /usr/share/puppet-dashboard/script/server -e production
=> Booting WEBrick
=> Rails 2.3.17 application starting on http://0.0.0.0:3000

七、修改Master主机的"puppet.conf"文件以下:

[root@master ~]# vim /etc/puppet/puppet.conf
[master]    #在"master"段修改或添加以下内容
reports = store, http
reporturl = http://172.16.14.1:3000/reports/upload

八、修改Client主机的"puppet.conf"文件以下:

[root@client ~]# vim /etc/puppet/puppet.conf
[agent]    #在"agent"段添加以下内容
    report = true

九、启动服务器端"puppet-dashboard"服务并重启"puppetmaster"服务;而后重启客户端"puppet"服务使配置生效

######在服务端执行
[root@master ~]# /usr/share/puppet-dashboard/script/server -e production -d
[root@master ~]# ss -tanlp | grep 3000
LISTEN     0      5       *:3000       *:*      users:(("ruby",30611,5))
[root@master ~]# service puppetmaster restart
------------------------------------------------------------------------
######在客户端执行
[root@client ~]# service puppet restart

十、访问dashboard服务,验证是否正常

202738961.gif



5、配置Puppet Kick

简介:

Puppet客户端默认每30分钟跟服务器通信一次,可是有时,咱们但愿服务端能给客户端紧急推送一些任务,因而就有了Puppet kick(Puppet 2.6之前叫 puppetrun)

一、编辑客户端主配置文件

[root@client ~]# vim /etc/puppet/puppet.conf
listen = true
注释:在"[agent]"段添加如上内容

二、编辑或新建文件"/etc/puppet/namespaceauth.conf"

[root@client ~]# vim /etc/puppet/namespaceauth.conf
[puppetrunner]
allow *.allen.com
注释:添加如上内容

三、编辑文件"/etc/puppet/auth.conf"

[root@client ~]# vim /etc/puppet/auth.conf
path /run
method save
auth any
allow master.allen.com
# this one is not stricly necessary, but it has the merit
# to show the default policy which is deny everything else
注释:如上在这段注释上面添加如上内容
[root@client ~]# service puppet restart    #重启服务使配置生效

四、在服务端修改前面建立的"site.pp"文件

[root@master ~]# vim /etc/puppet/manifests/site.pp
file {"/tmp/allen.txt":
    content => "ALLEN TEST\n",
}

五、在服务端执行推送命令测试是否能成功推送

# puppet kick -p 10 --host client.allen.com
# puppetrun -p 10 --host client.allen.com
注释:在服务端执行如上两条命令任意一个便可;这里使用第一条命令

233822448.gif

六、在客户端验证

233824834.gif

到此;Puppet的安装部署已所有完成,后续会更新Puppet的其余相关内容;如:file,service,exec等管理模块;敬请关注...

相关文章
相关标签/搜索