自動化運維puppet工具的使用

puppet是採用ruby開發的一個工具

用一個實例來怎麼實現基本的自動化
兩臺機器master和slave
一 在master上定義hostname以及hosts
hostname master.liuwenzhi.com
vim /etc/sysconfig/network
vim /etc/hosts
192.168.1.100 master.liuwenzhi.com
192.168.1.101 slave.liuwenzhi.com
在slave上定義hostname以及hosts
hostname slave.liuwenzhi.com
vim /etc/sysconfig/network
vim /etc/hosts
192.168.1.100 master.liuwenzhi.com
192.168.1.101 slave.liuwenzhi.com

注:關掉iptabels 
iptables -F

crotable -e
*/10 * * * * ntpdate time.windows.com  >>/dev/null  2>&1
二 下載puppet擴展源包
rpm -ivh http://yum.puppetlabs.com/el/6/products/x86_64/puppetlabs-release-6-7.noarch.rpm 

服務端:
yum install -y puppet-server

/etc/init.d/puppetmaster start

服務端開啓8140端口
客戶端:
yum install -y puppet

/etc/init.d/puppet start  

注:客戶端是不主動開啓端口的

三 修改下客戶端的/etc/puppet/puppet.conf

在最後面添加:
listen = true
server = master.liuwenzhi.com
runinterval = 10  每隔10秒,檢測服務端,並更新。

而後重動puppet服務
/etc/init.d/puppet restart

四 生成ssl的證書
手動:
客戶端上
puppet agent --test --server=master.liuwenzhi.com
服務端上查看以及簽收證書
puppet cert list --all
(前面有+號的表示尚未簽收)
簽收命令
puppet cert --sign slave.liuwenzhi.con


當有大堆的機器,那怎麼辦,不可能一個一個的手動簽收生成證書吧,
另外一種就是自動簽收了。
自動:

首先,服務端刪除證書
puppet cert clean slave.liuwenzhi.com

客戶端須要刪除  文件
rm -rf /var/lib/puppet/*

在服務端
1. vim /etc/puppet/puppet.conf
在[main]下面加一行
autosign = true

2. vim /etc/puppet/autosign.conf
加入以下內容:
*.liuwenzhi.com 

重啓服務。

在檢查puppet cert list --all 有自動簽收slave的沒


五 自動傳輸文件

首先定義一個模塊
mkdir /etc/puppet/modules/testm  //模塊名字就是testm
cd !$
mkdir {files,manifests,templates}   //一個模塊下須要有這三個目錄,files存一些文件(能夠爲空),manifests存配置文件,templates存模板(能夠留空)
touch manifests/init.pp  //這個是必須的
vi  manifests/init.pp   //內容以下
class testm{
file {"/tmp/2.txt":
owner => "root",
group => "root",
mode => 0400,
source => "puppet://$puppetserver/modules/testm/1.txt"  
}
}

說
明:類名字也叫作testm, 類下面定義了一個資源file,文件名字叫作/tmp/2.txt 
,owner,group,mode定義文件的屬主、數組以及權限,source定義這個文件從哪裏獲取。 
$puppetserver一會也要定義一下,這裏指的是puppet 
server服務器上/etc/puppet/modules/testm/files/1.txt

尚未完,
下面要繼續定義一個很關鍵的配置文件:
vim  /etc/puppet/manifests/site.pp   //內容以下
$puppetserver = 'master.liuwenzhi.com'

node 'slave.liuwenzhi.com'{
    include testm
}


說明:$puppetserver 定義服務端的主機名,node後面爲客戶端的主機名,這裏面定義該客戶端要加載的模塊.


六
相關文章
相關標籤/搜索