官方說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