Puppet自動化—軟體包,cron任務
Package:管理軟體包的安裝和升級
管理軟體包,現在分成兩派
,一派是自己能解決軟體依賴,例如apt-get,yum ; 另一類是不能解決軟體依賴,例如 dpkg,rpm ; puppet會根據你運行puppet的環境來自動判斷你是用的什麼包管理系統 .當然你也可以手工設定 provider 參數讓puppet用什麼命令來管理軟體包. 每個provider需要一些依賴來完成各項功能. 因此你參數
Allowcdrom:告訴 apt 允許使用cdrom作為軟體源, 可以設置成
false或者 trueCategory:軟體包設置的一個只讀的屬性
Configfiles:是否保留或者替換軟體的配置文件,大多數軟體不支持這個參數,可設置的值是
false,trueDescription:描述軟體包,軟體包設置的一個只讀屬性
Ensure:設置該軟體包應該在什麼狀態. installed 表示要安裝該軟體,也可以寫成present; absent
表示反安裝該軟體,pureged 表示乾淨的移除該軟體,latest 表示安裝軟體包的最新版本.Namevar:該資源的namevar ; 軟體包的名字
Provider:指定使用什麼
provider來提供軟體包管理功能Responsefile:在debian上面安裝軟體,一般會回答一些問題,用這個文件來包含問題的預設答案, 用在
debian或者 solaris系統上.Source:去那裡找軟體的安裝包,例如rpm的包地址,是本地地址或者
Package資源測試用例
編輯site.pp,添加如下內容,安裝nginx包,並且刪除pppoe和pppoe-conf
- [root@master puppet]# vim manifests/site.pp
- package {
- ["nginx"]:
- ensure=>installed;
- ["pppoe","pppoe-conf"]:
- ensure=>absent;
- }
編輯完成後,用其中一台Client測試
- [root@client1 ~]# puppetd --server master.puppet --test
- notice: Ignoring --listen on onetime run
- info: Caching catalog for client1.centos
- info: Applying configuration version '1329979654'
- notice: Finished catalog run in 0.34 seconds
檢查nginx包是否安裝,pppoe是否刪除
- [root@client1 ~]# rpm -qa nginx
- nginx-0.8.54-1.el6.x86_64
- [root@client1 ~]# rpm -qa pppoe
參數
Baseurl:指定軟體倉庫的地址,設置成absent表示刪除該倉庫.
Descr:提供給用戶閱讀的一個對軟體倉庫的描述
,設置成absent將刪除該描述Enabled:設置該倉庫是否啟用,可以設置的置是 0 或者 1
Enablegroups:是否讓
yum在這個倉庫裡面使用軟體組這個特性,可以設置的值是 0 , 1Exlude:shell模式匹配規則,匹配該規則的軟體不會從這個倉庫裡面安裝.
Gpgcheck
:該倉庫是否啟用gpg簽名檢查Include:設置一個文件路徑,包含該文件到當前配置文件
Keepalive:設置yum是否使用
http/1.1 裡面的keeplive特性, 可以設置成0 , 1metadata_expire:設置多少秒以後,倉庫的metadata失效
.Mirrorlist:指定一個包含該軟體倉庫鏡像的url
Name:該資源的namevar, 指定軟體倉庫的名字
Priority:定軟體倉庫的優先次序,可以設置
1-99Proxy:定yum使用的代理伺服器地址
proxy_name:理伺服器用戶名
proxy_password:理伺服器的用戶密碼
timeout:果超過多少秒就放棄連接該軟體倉庫
.參數
除了用戶和command兩個參數以外,其他的參數都是可選項.
Command:
rontab要執行的命令, 環境變數按照系統本地規則進行管理,推薦使用絕對路徑.Ensure:定該資源是否啟用,可設置成true或
falseEnvironment:crontab環境裡面指定環境變數,例如 PATH=/bin:/usr/bin:/usr/sbin.
Hour:行crontab的小時,可設置成0-23
Minute:行crontab的分鐘,可設置成0-59
Month:置crontab運行的月份,1-12
Monthday
:個月份中的日子,1-31Name:crontab的名字,這個名字用於管理員區分不同的crontab,以及puppet管理各種資源關係
.Provider:定provider,可用的provider有
User:該crontab加到那個用戶的crontab列表
,默認是運行puppet的用戶Weekday:行crontab的星期數,0-7
Cron計劃任務測試用例
在site.pp中加入如下內容
- cron{ echo:
- command=>"echo \"This is cron job\"",
- user=>root,
- #hour=>[3,5],
- minute=>'*/2';
- }
用Client進程測試:
- [root@client1 ~]# puppetd --server master.puppet --test
- notice: Ignoring --listen on onetime run
- info: Caching catalog for client1.centos
- info: Applying configuration version '1329980213'
- notice: /Stage[main]//Node[default]/Cron[echo]/ensure: created
- notice: Finished catalog run in 0.50 seconds
檢查Cron任務列表
- [root@client1 ~]# crontab -l
- # HEADER: This file was autogenerated at Thu Feb 23 14:56:53 0800 2012 by puppet.
- # HEADER: While it can still be managed manually, it is definitely not recommended.
- # HEADER: Note particularly that the comments starting with 'Puppet Name' should
- # HEADER: not be deleted, as doing so could cause duplicate cron jobs.
- # Puppet Name: echo
- */2 * * * * echo "This is cron job"
本文出自 「Waydee的博客」 博客,請務必保留此出處http://waydee.blog.51cto.com/4677242/847130
[火星人 ] Puppet--軟體包,cron任務自動化管理已經有734次圍觀