centos 6.4 (redhat 6.4 x86_64 )puppet 3.x + for...
官方说foreman 1.1 不兼容 puppet 3.0.x 版本,只支持 3.1 以上的版本,所以安装了puppet 3.0.x 版本的童鞋 要是安装 foreman 1.1 或者是 puppet 3.1 的版本安装foreman 1.0.x 的版本基本没戏,bug 一大堆。
配置过程
一,操作系统环境
redhat 6.4 或者是 centos 6.4 (我在6.3的环境中没有安装成功,报错很多,后来操作系统升级到6.4后一次就安装成功了)
二、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
三、安装:
yum install puppet-server foreman foreman-installer foreman-proxy ruby-mysql
四、配置:
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 [email protected]'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 会自动配置)。
chown puppet.puppet /var/lib/puppet -R
五、安装 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、443、8140 ,foreman-proxy端口是8443
六、配置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
七、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
八、错误处理:
1、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
2、Not authorized to call find on /file_metadata
vi fileserver.conf
[plugins]
allow *.com
九、访问:
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 配置是否正确
参考网址:
http://theforeman.org/manuals/1.1/index.html#3.InstallingForeman
http://theforeman.org/manuals/1.1/quickstart_guide.html#QuickstartGuide
转载于:https://my.oschina.net/u/142602/blog/114388