當咱們配置完puppet服務器端和客戶端後,客戶端會默認半個小時跟服務器端同步,若是咱們須要更新重要文件,是否是得當即生效呢,那有什麼好的辦法嗎?答案:有! vim
在服務器端使用puppetrun這個命令能夠給客戶端發送一段信號,告訴客戶端馬上跟服務器同步,這樣就達到咱們的目的了!那怎樣配置呢? 服務器
(1)、修改客戶端上的puppet的配置文件 ide
vi /etc/puppet/puppet.conf 測試
在[agent]後面添加 spa
listen = true //這個是讓puppet監聽8139端口。 rest
(2)、修改管戶端的puppet的/etc/sysconfig/puppet (可選) code
vim /etc/sysconfig/puppet orm
PUPPET_SERVER=192-168-0-130.APP.com //改成你對應的puppetmaster的主機名。 資源
(3)、新建namespaceauth.conf這個文件,vi /etc/puppet/namespaceauth.conf添加以下內容: 同步
[puppetrunner]
allow *
(4)、還須要修改auth.conf。
在path /以前添加下內容,加粗部分:
path /run
method save
allow *
path /
auth any
便可!
而後重啓客戶端:/etc/init.d/puppet restart
(5)、在服務器端測試一下:執行一下命令
puppetrun -p 10 –host 192-168-0-131.APP.com 後面也能夠加多個客戶端主機名!
並且已經發送了信號給客戶端!能夠去客戶端查看一下效果 tail -fn 100 /var/log/puppet/puppet.log
#高版本的puppet沒有puppetrun這個命令,能夠用以下命令來執行,執行以前跟puppetrun同樣須要配置並受權
提示finished表示發送信號完成,相反failed則表示失敗。
puppet kick -d host 192-168-0-131.APP.com 也能夠code 0表示成功。
推送方法,在服務端運行命令
puppet kick -p 10 –-host 客戶端 或 puppetrun -p 10 –-host 客戶端
推送命令也能夠這樣:puppet kick -p 10 客戶端1 客戶端2
指定全部主機名進行puppet kick -p --all
指定標籤時要使用tag參數,且須要在配置資源的時候配置tags參數,代碼以下:
vi init.pp
class test {
file {'/tmp/$hostname.txt':
content => "Testing JSON",
tags => "tagkick",
}
}
puppet kick -p 10 -t tagkick host1 host2