官方说foreman 1.1 不兼容 puppet 3.0.x 版本,只支持 3.1 以上的版本,因此安装了puppet 3.0.x 版本的童鞋 要是安装 foreman 1.1 或者是 puppet 3.1 的版本安装foreman 1.0.x 的版本基本没戏,bug 一大堆。 html
配置过程
一,操做系统环境
redhat 6.4 或者是 centos 6.4 (我在6.3的环境中没有安装成功,报错不少,后来操做系统升级到6.4后一次就安装成功了)
2、yum源的安装
rpm -ivh http://yum.puppetlabs.com/el/6/products/x86_64/puppetlabs-release-6-6.noarch.rpm
rpm -ivh http://dl.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm
rpm -ivh http://yum.theforeman.org/releases/1.1/el6/x86_64/foreman-release-1.1stable-3.el6.noarch.rpm
3、安装:
yum install puppet-server foreman foreman-installer foreman-proxy ruby-mysql
4、配置:
ruby /usr/share/foreman-installer/generate_answers.rb
一路输入y 便可,详细
http://theforeman.org/manuals/1.1/quickstart_guide.html#QuickstartGuide 有解释
chown foreman.foreman -R /usr/share/foreman
su - foreman -s /bin/bash -c /usr/share/foreman/extras/dbmigrate
修改foreman db 配置文件,使用mysql db
vi /usr/share/foreman/config/database.yml
production:
adapter: mysql
database: puppet
username: puppet
password: puppet
host: localhost
socket: "/var/lib/mysql/mysql.sock"
mysql> create database puppet CHARACTER SET utf8;
mysql> grant all privileges on puppet.* to puppet@'localhost' identified by 'puppet';
mysql> flush privileges;
cd /usr/share/foreman/
生成表结构:
RAILS_ENV=production rake db:migrate
rake puppet:migrate:populate_hosts RAILS_ENV=production
修改 foreman-proxy 配置文件:
vi /etc/foreman-proxy/settings.yml
:trusted_hosts: #去掉前面的#号
- puppet-192-88-53-104.test.com ##加入 puppet master 机器的hostname ,不然没法在foreman 界面当中添加 foreman-proxy 主机。
其余基本不用动,默认便可(foreman-installer 会自动配置)。 mysql
chown puppet.puppet /var/lib/puppet -R
5、安装 passenger
gem llist |grep "passenger" 若是有就不用安装了。
gem install passenger
vi /etc/httpd/conf/httpd.conf
LoadModule passenger_module /usr/lib/ruby/gems/1.8/gems/passenger-3.0.19/ext/apache2/mod_passenger.so
PassengerRoot /usr/lib/ruby/gems/1.8/gems/passenger-3.0.19
PassengerRuby /usr/bin/ruby
其余的配置文件在/etc/httpd/conf.d 中。
运行 ruby /usr/share/foreman-installer/generate_answers.rb 会自动生成puppet.conf 和foreman.conf 默认便可。
从新启动foreman-proxy ,httpd 服务
service httpd restart
service foreman-proxy restart
httpd 服务代理了foreman puppet 两个服务,端口分别是80、44三、8140 ,foreman-proxy端口是8443
6、配置foreman report功能:
cp /usr/share/foreman-installer/foreman/templates/foreman-report.rb.erb /usr/lib/ruby/site_ruby/1.8/puppet/reports/foreman.rb
vi /usr/lib/ruby/site_ruby/1.8/puppet/reports/foreman.rb
注释掉原来的$foreman_url,添加下面行:
$foreman_url="https://" + `hostname`.strip
重启httpd server
7、client agent 配置:
[agent]
puppetdlog = $logdir/puppet.log
httplog = $logdir/http.log
runinterval = 600
localconfig = $vardir/localconfig
classfile = $vardir/classes.txt
localconfig = $vardir/localconfig
report = true
pluginsync = true
masterport = 8140
autoflush = true
environment = production
server = puppet-192-88-53-104.test.com
listen = true
测试:
puppet agent -t
8、错误处理:
一、puppet client could not request certificate: Error 500 on SERVER
解决方案:
chown puppet.puppet /var/lib/puppet -R
chown puppet.puppet /usr/share/puppet -R
chown puppet.puppet /etc/puppet -R
chown foreman-proxy.puppet /etc/puppet/foreman-proxy.conf
二、Not authorized to call find on /file_metadata
vi fileserver.conf
[plugins]
allow *.com
9、访问:
https://192.88.53.104
admin/changmem
点击菜单:more-configureation-smart proxies
name:puppet-192-88-53-104.test.com
proxy的地址 https://puppet-192-88-53-104.test.com:8443
若是提示 foreman-proxy 服务没启动,或者是端口没打开,请检查防火墙是否关闭。hostname -f 是否跟机器名同样
vi /etc/hosts
192.88.53.104 puppet-192-88-53-104.test.com
若是foreman report 不出数据,请检查client 是否提交数据,或者是 /usr/lib/ruby/site_ruby/1.8/puppet/reports/foreman.rb 的url 配置是否正确
参考网址: sql
http://theforeman.org/manuals/1.1/index.html#3.InstallingForeman
http://theforeman.org/manuals/1.1/quickstart_guide.html#QuickstartGuide apache