puppet enc mysql_【跟我学Puppet】1.3 Puppet 3.7 结合Dashboard 1.2

1. 环境准备

OS:CentOS 6.4

关闭selinux和iptables

安装Puppet源:http://yum.puppetlabs.com/puppetlabs-release-el-6.noarch.rpm

Dashboard是Puppet官方提供的一个简易的Web UI,可以很方便的做Puppet报告的展示和ENC的管理.但是很功能很简易。后面会更新一个更强大的Foreman,敬请期待..

2. 安装Dashboard#安装dashboard包和mysql数据库

yum install puppet-dashboard mysql-server mysql -y

/etc/init.d/mysqld start

chkconfig mysqld on

#初始化数据库相关...

mysql -e 'CREATE DATABASE dashboard_production CHARACTER SET utf8;'

mysql -e "CREATE USER 'dashboard'@'localhost' IDENTIFIED BY 'dbsa.cn';"

mysql -e "GRANT ALL PRIVILEGES ON dashboard_production.* TO 'dashboard'@'localhost';"

mysql -e 'set GLOBAL max_allowed_packet = 33554432;'

#在/etc/my.cnf中增加以下参数

[mysqld]

max_allowed_packet = 32M

#执行表迁移任务,会生成相关的数据库表..

cd /usr/share/puppet-dashboard/

sed -i 's/UTC/Beijing/' config/environment.rb                                #修改显示时区

sed -ri 's/\s+password:.*/  password: dbsa.cn/' config/database.yml          #修改默认的数据库密码..

rake RAILS_ENV=production db:migrate

cp /usr/share/puppet-dashboard/ext/puppet/puppet_dashboard.rb  /usr/lib/ruby/site_ruby/1.8/puppet/reports

#使用默认的WEBrick服务运行dashboard测试以下...

cd /usr/share/puppet-dashboard/

./script/server -e production

#访问dashboard...

http://ip:3000/

3. 配置Puppet

配置由dashaboard分析Puppet的报告#在Puppet Master上配置...

/etc/puppet/puppet.conf

[master]

reports = store, http

reporturl = http://localhost:3000/reports/upload               #localhost是发往dashboard的地址

配置由dashboard管理class和parameters#在Puppet Master上配置...

/etc/puppet/puppet.conf

[master]

node_terminus = exec

#localhost是发往dashboard的地址

external_nodes = /usr/bin/env PUPPET_DASHBOARD_URL=http://localhost:3000 /usr/share/puppet-dashboard/bin/external_node

4. 配置Nginx替代默认的WEBrick

安装Ningx和passenger

安装请参考.. 1.0 Puppet 3.7 部署中的Nginx.

Nginx配置文件:cat > /usr/local/nginx/conf/nginx.conf <

user root;

worker_processes 1;

events {

worker_connections 1024;

}

http {

passenger_root /usr/lib/ruby/gems/1.8/gems/passenger-3.0.19;

passenger_ruby /usr/bin/ruby;

passenger_max_pool_size 32;

include mime.types;

default_type application/octet-stream;

log_format main '\$remote_addr - \$remote_user [$time_local] "\$request" '

'\$status  "\$http_referer" '

'"\$http_user_agent" "\$http_x_forwarded_for"'

'\$upstream_addr \$upstream_cache_status \$upstream_status';

sendfile on;

keepalive_timeout 65;

include /usr/local/nginx/conf/puppet.conf;          #如果按照 1.0 在本机部署了Puppet这个就不用注释...

include /usr/local/nginx/conf/dashboard.conf;

}

EOF

cat > /usr/local/nginx/conf/dashboard.conf <

server {

listen 3000;

server_name localhost;

root /usr/share/puppet-dashboard/public;

passenger_enabled on;

access_log /usr/local/nginx/logs/access-3000.log main;

}

EOF

#启动dashboard服务

/etc/init.d/nginx restart

touch /usr/share/puppet-dashboard/log/production.log

chown -R puppet-dashboard.puppet-dashboard /usr/share/puppet-dashboard/log

chown -R puppet-dashboard.puppet-dashboard /usr/share/puppet-dashboard/tmp

chmod 666 /usr/share/puppet-dashboard/log/production.log

/etc/init.d/puppet-dashboard-workers start

报告处理过程:

1. Puppet Master在收到Agent的报告的时候,会通过http往自身的/reports/upload 接口POST一份..

2. dashboard接收到post来的报告会保存到/usr/share/puppet-dashboard/spool

3. 启动puppet-dashboard-workers 会开始处理报告..。

默认puppet-dashboard-workers 启动两个进程处理,如果报告很多, 可以再配置进程数量.cat >> /etc/sysconfig/puppet-dashboard <

CPUS=`cat /proc/cpuinfo |grep process|wc -l`

EOF

4. 处理完成的报告会写入数据库

610290699f9ff79506d7a1dcd0fec082.png

5. 节点管理(ENC)

在前面的master puppet.conf中配置使用enc。#下面是一个测试..

cat > /etc/puppet/manifests/site.pp <

node default {

}

EOF

1. 在Dashboard 添加一个class。。(base的class在之前的blog中已经创建过,可以查看1.0 Puppet安装)

161286443906b5dcd7fa33b0539803b8.png

2. 选择一个主机..

c114a673e352825271d618152cc94888.png

3. 给这个主机添加class和parameters

0a5c25dea1f28f9d2ab390c2120faab1.png

d0623c548c32dfe1c2e538e09b906e7c.png

4. 查看添加的类和参数..

c5fc8db350732100d3efbd4b6e70a668.png

5. 通过执行命令,查询配置[root@master ~]# /usr/bin/env PUPPET_DASHBOARD_URL=http://localhost:3000 /usr/share/puppet-dashboard/bin/external_node agent1.dbsa.cn

---

classes:

- base

parameters:

aa: bb

name: agent1.dbsa.cn

6. 常用维护命令

导入现有的日志cd /usr/share/puppet-dashboard;rake RAILS_ENV=production reports:import

cd /usr/share/puppet-dashboard;rake RAILS_ENV=production reports:import REPORT_DIR=/path/to/your/reports

当数据量过大时,优化数据库cd /usr/share/puppet-dashboard;rake RAILS_ENV=production db:raw:optimize

删除一个月之前的日志cd /usr/share/puppet-dashboard;rake RAILS_ENV=production reports:prune upto=1 unit=mon

删除15天前的日志cd /usr/share/puppet-dashboard;rake RAILS_ENV=production reports:prune upto=15 unit=day

备份数据库mysqldump --add-locks --create-options --disable-keys --extended-insert --quick --set-charset --user=dashboard --password=dbsa.cn dashboard > production.sql

恢复数据库rake RAILS_ENV=production FILE=production.sql db:raw:restore

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值