安装环境: centos6.6
一、基本安装
Install basic components
# rpm -ivh http://yum.puppetlabs.com/el/6/products/x86_64/puppetlabs-release-6-7.noarch.rpm
# yum -y install epel.release
# yum -y install puppet-dashboard
# yum -y install mysql-server
# yum -y install httpd curl-devel httpd-devel
# yum -y install sudo
edit my.cnf
# vi /etc/my.cnf
[mysqld]
max_allowed_packet = 32M
# service mysqld restart
edit config/database.yml
# vi /usr/share/puppet-dashboard/config/database.yml
production:
database: dashboard_production
username: dashboard
password: dashboard
encoding: utf8
adapter: mysql
host: localhost
create database (utf8) and grant
# mysql
> create database dashboard_production character set utf8;
> grant all on dashboard_production.* to dashboard@'localhost' identified by 'dashboard';
> flush privileges;
import database
# cd /usr/share/puppet-dashboard/
# rake gems:refresh_specs
# rake RAILS_ENV=production db:migrate
二、配置 httpd 和 puppetmaster
cp dashboard-vhost.conf
# httpd 的配置文件不要动,复制dashboard的虚拟主机配置文件
# cp /usr/share/puppet-dashboard/ext/passenger/dashboard-vhost.conf /etc/httpd/conf.d/puppet-dash.conf
## install passenger
ruby1.8.7 1.9.3 2.0.0 安装rack 提示 rack 需要ruby >=2.2.2,指定安装一个老的rack版本
# gem install rack -v '1.4.7'
官方演示使用的是4.0.46的passenger,为了避免出现不必要的问题,也用这个版本
# gem install passenger -v 4.0.46
# yum install gcc gcc-c++ curl-devel openssl-devel zlib-devel ruby-devel
# passenger-install-apache2-module
edit puppet-dash.conf
将配置文件中的localdomain 换成你自己的域名
# vi /etc/httpd/conf.d/puppet-dash.conf
LoadModule passenger_module /usr/lib/ruby/gems/1.8/gems/passenger-4.0.46/buildout/apache2/mod_passenger.so
<IfModule mod_passenger.c>
PassengerRoot /usr/lib/ruby/gems/1.8/gems/passenger-4.0.46
PassengerDefaultRuby /usr/bin/ruby
</IfModule>
# you may want to tune these settings
PassengerHighPerformance on
PassengerMaxPoolSize 12
PassengerPoolIdleTime 1500
# PassengerMaxRequests 1000
PassengerStatThrottleRate 120
#RailsAutoDetect On
Listen 3000
<VirtualHost *:3000>
ServerName puppet.localdomain
ServerAlias puppet
DocumentRoot /usr/share/puppet-dashboard/public/
<Directory /usr/share/puppet-dashboard/public/>
Options None
AllowOverride AuthConfig
Order allow,deny
allow from all
</Directory>
ErrorLog /var/log/httpd/puppet-dashboard_error.log
LogLevel warn
CustomLog /var/log/httpd/puppet-dashboard_access.log combined
ServerSignature On
</VirtualHost>
edit puppet.conf
在puppet原始配置文件中增加
# vi /etc/puppet/puppet.conf
[main]
### Set up DNS name that the server will respond to
dns_alt_name = puppet puppet.localdomain
### Tell puppet where the environmental directiries live
#environmentpath = $confdir/environments
### Configure puppet to talk to the puppet dashboard
reports = store, http
reporturl = http://puppet.localdomain:3000/reports/upload
node_terminus = exec
external_nodes = /usr/bin/env PUPPET_DASHBOARD_URL=http://puppet.localdomain:3000 /usr/share/puppet-dashboard/bin/external_node
[agent]
report = true
autosign = true
autosign = /etc/puppet/autosign.conf
server = puppet.localddomain
certname = puppet.localddomain
[master]
certname = puppet.localddomain
Automatic licensing
# vi /etc/puppet/autosign.conf
*
edit /etc/hosts
vi /etc/hosts
172.17.0.3 puppet
172.17.0.3 puppet.localdomain
restart httpd
# service httpd restart
此时已经可以网页打开puppet-dashboard页面了
这时还看不到节点信息和图像,因为dashboard的服务还没起来
agent authentication
# service puppetmaster restart
# service puppet start
# puppet agent --test
# (puppet cert sign puppet) // master 主动认证agent端
## start puppet-dashboard work
注意,执行完这一步,上图所示的右侧 Nodes 才会出现报告信息
# chown -R puppet-dashboard.puppet-dashboard /usr/share/puppet-dashboard/log/
# chmod 666 /usr/share/puppet-dashboard/log/*
# sudo -u puppet-dashboard env RAILS_ENV=production /usr/share/puppet-dashboard/script/delayed_job -p dashboard -n 4 -m start
三、常用命令
认证 和 删除认证
认证:
master端 列出agent
# puppet cert list --all
agent 执行
# puppet agent --test
master 主动认证
# puppet cert sign 【节点名称】
删除认证:
agent端执行
# find /var/lib/puppet/ssl -name 节点名称.pem -delete
master端执行
# puppet cert clean 【节点名称】
agent 重启
# service puppet restart
cat stopserver.sh
关闭dashboard work 的函数,seq 0 3 是启动的时候指定了4个进程
function stop_dashboard-workers()
{
for i in $(seq 0 3)
do
kill -9 `cat /usr/share/puppet-dashboard/tmp/pids/delayed_job.${i}_monitor.pid `
rm -rf /usr/share/puppet-dashboard/tmp/pids/delayed_job.${i}_monitor.pid
rm -rf /usr/share/puppet-dashboard/tmp/pids/delayed_job.${i}.pid
done
}
转载请注明