思路: 在一個docker環境,直接拉下來筆者的鏡像,直接啓動一個可用的容器即可. 此鏡像提供一個直接可用的 puppet服務端(foreman/activemq/mcollective-client);
說明: 此鏡像筆者已經上傳的靈雀雲上,詳細文檔可參考 本文 和 筆者github 以及 靈雀雲鏡像 地址.
文件直接由筆者github的markdown直接複製如下:
######################################################
docker-foreman
Table of Contents
簡介
此鏡像目前主要用於提供一個可以直接拿來使用的foreman/puppet
功能說明
此鏡像軟件包安裝部分,已經直接在基礎鏡像安裝完成(基於library/ubuntu:14.04.3手工安裝後commit)
此鏡像僅在基礎鏡像之上做部分配置修改,使其可以方便的被複用
此鏡像包含直接可用的foreman(目前作者主要用以管理puppet)
此鏡像包含直接可用的puppet server(由foreman-installer依賴安裝)
此鏡像包含直接可用的mcollective client,已經配置foreman開啓puppet run使用mcollecive
此鏡像包含直接可用的activemq,配置直接puppetlab的activemq的模板文檔
此鏡像版本號1.9.2.1中的1.9.2爲foreman官方版本,末位.1爲筆者構建的docker鏡像版本
使用說明
啓動一個容器提供puppet server服務,要求如下:
證書名/主機名配置爲: puppet.bw-y.com
配置Mcollective和ActiveMQ的密碼爲: StlJT1Qk6cO6D2Aq
配置Mcollective的psk密碼爲: lqtQ8Ci38HRSAXvY5fRVy7PZ
啓動ActiveMQ/apache2/foreman-proxy提供服務
將容器內的puppet配置目錄(
/etc/puppet
)映射到本地目錄:/opt/docker/puppet_conf
將容器內的puppet證書目錄(
/var/lib/puppet/ssl
)映射到本地目錄:/opt/docker/puppet_ssl
將容器內的foreman數據庫目錄(
/var/lib/postgresql/9.3/main
)映射到本地目錄:/opt/docker/foreman_db
將容器內的下列端口(
80/443/8140/8443/61613
)映射到宿主機的對應端口:80/443/8140/8443/61613
根據上述要求,命令如下
docker run -itd --name=puppet --hostname=puppet.bw-y.com -e MCO_PASS=StlJT1Qk6cO6D2Aq -e PSK_PASS=lqtQ8Ci38HRSAXvY5fRVy7PZ -v /opt/docker/puppet_conf:/etc/puppet -v /opt/docker/puppet_ssl:/var/lib/puppet/ssl -v /opt/docker/foreman_db:/var/lib/postgresql/9.3/main -p 80:80 -p 443:443 -p 8140:8140 -p 8443:8443 -p 61613:61613 index.alauda.cn/hypersroot/foreman:1.9.2.1
參數說明
--hostname
[必選項] 由於puppet/foreman需要依賴一個可以解析的主機名用以配置證書相關,因此,在啓動docker時,此參數務必加上,此參數會將配置的域名自動解析到容器對應的ip. 默認值: 空
MCO_HOST
[可選項] 用於在Mcollective的(/etc/mcollective/client.cfg
)中設置MQ的地址. 當此地址不等於127.0.0.1或localhost時,容器不啓動ActiveMQ
. 默認值: 127.0.0.1
MCO_PORT
[可選項] 用於在Mcollective的(/etc/mcollective/client.cfg
)中設置MQ的端口. 默認值: 61613
MCO_PASS
[可選項] 用於在Mcollective的客戶配置(/etc/mcollective/client.cfg
)和ActiveMQ的Server端配置(/etc/activemq/activemq.xml
)所配置的密碼. 默認值: mcopassword
PSK_PASS
[可選項] 用於在Mcollective的(/etc/mcollective/client.cfg
)中設置plugin.psk
的密碼字段. 默認值: mcopskstr
其它說明
foreman頁面的默認登陸信息: admin/bw-y.com
首次啓動時,由於主機名的關係,證書和相關配置需要重新生成,此時,容器雖已經啓動,但相關服務並未配置完成; 主要時間開銷在於首次啓動容器時,根據參數重置配置的操作,筆者使用了腳本修改了部分配置後,重新執行foreman-installer導致,因此,首次完全啓動成功,可能需要2分鐘左右,具體的執行進度,可直接使用命令進入容器
docker exec -it [container_name] bash
後使用ps aux或top命令,查看foreman-installer在內存中是否已經執行完成即可. 再次使用時,由於puppet配置和foreman的數據庫配置文件均已存在,則會非常迅速. 腳本見:entrypoint.sh