Puppet--パッケージ、cronタスクの自動化管理

8689 ワード

Puppetオートメーション-パッケージ、cronタスク

一.パッケージリソース


Package:パッケージのインストールとアップグレードの管理
管理パッケージは、apt-get、yumなどのソフトウェア依存を解決できる2つの派閥に分かれています.もう1つのクラスは、dpkg、rpmなどのソフトウェア依存性を解決できないことである.puppetは、puppetを実行する環境に基づいて、どのようなパッケージ管理システムを使用しているかを自動的に判断します.もちろんproviderパラメータを手動で設定してpuppetにどんなコマンドでパッケージを管理させることもできます.各providerは、各機能を完了するためにいくつかの依存が必要である.providerに依存しなければなりません
パラメータ
Allowcdrom:aptにcdromをソフトウェアソースとして使用できるように伝え、falseまたはtrueに設定できます.
Category:パッケージ設定の読み取り専用属性
Configfiles:ソフトウェアのプロファイルを保持または置換するかどうか、ほとんどのソフトウェアはこのパラメータをサポートしていません.設定可能な値はfalse、trueです.
Description:パッケージの説明、パッケージ設定の読み取り専用属性
Ensure:パッケージの状態を設定します.installedは、このソフトウェアをインストールすることを示し、presentと書くこともできます.absentは逆インストールを示し、puregedはクリーンな削除を示し、latestはインストールパッケージの最新バージョンを示す.
Namevar:リソースのnamevar;パッケージの名前
Provider:パッケージ管理機能を提供するためにどのproviderを使用するかを指定します.
Responsefile:debianにソフトウェアをインストールすると、一般的にいくつかの質問に答え、このファイルで質問のプリセット答えを含め、debianまたはsolarisシステムで使用する.
Source:そこに行ってソフトウェアのインストールパッケージを探して、例えばrpmのパッケージのアドレス、必ずローカルのアドレスあるいはURLです
Packageリソーステスト例
編集ppは、以下の内容を追加し、nginxパッケージをインストールし、pppoeとpppoe-confを削除します.

  
  
  
  
  1. [root@master puppet]# vim manifests/site.pp 
  2.  
  3. package { 
  4.  
  5.               ["nginx"]: 
  6.  
  7.               ensure=>installed; 
  8.  
  9.               ["pppoe","pppoe-conf"]: 
  10.  
  11.               ensure=>absent; 
  12.  
  13.          } 

編集が完了したら、そのうちの1台でClientテストを行います.

  
  
  
  
  1. [root@client1 ~]# puppetd   --server  master.puppet --test 
  2.  
  3. notice: Ignoring --listen on onetime run 
  4.  
  5. info: Caching catalog for client1.centos 
  6.  
  7. info: Applying configuration version '1329979654' 
  8.  
  9. notice: Finished catalog run in 0.34 seconds 

nginxパッケージがインストールされているかどうか、pppoeが削除されているかどうかを確認します.

  
  
  
  
  1. [root@client1 ~]# rpm -qa nginx 
  2.  
  3. nginx-0.8.54-1.el6.x86_64 
  4.  
  5. [root@client1 ~]# rpm -qa  pppoe 

二.Yumrepo資源


パラメータ
Baseurl:ソフトウェアウェアハウスのアドレスを指定し、absentがそのウェアハウスを削除することを示すように設定.
Descr:ユーザーに読むソフトウェアウェアハウスの説明を提供し、absentがこの説明を削除するように設定します.
Enabled:倉庫が有効かどうかを設定し、0または1に設定できます.
Enablegroups:yumにこの倉庫でソフトウェアグループという特性を使用させるかどうか、設定できる値は0,1です.
Exlude:shellモードマッチングルール、このルールにマッチングするソフトウェアはこの倉庫からインストールされません.
Gpgcheck:倉庫がgpg署名チェックを有効にしているかどうか
Include:現在のプロファイルへのファイルパスを設定します.
Keepalive:yumがhttp/1.1のkeepliveプロパティを使用するかどうかを設定し、0,1に設定できます.
metadata_expire:設定数秒後、倉庫のmetadataが無効になります.
Mirrorlist:ソフトウェアウェアハウスミラーを含むurlを指定します.
Name:このリソースのnamevarは、ソフトウェアウェアハウスの名前を指定します.
Priority:ソフトウェアウェアハウスの優先順位を決め、1-99を設定できます.
Proxy:yumが使用するプロキシサーバアドレスを指定する
proxy_name:理サーバーユーザー名
proxy_password:理サーバのユーザーパスワード
timeout:数秒を超えるとソフトウェア倉庫への接続を放棄します.

三.Cron資源


パラメータ
ユーザとcommandの2つのパラメータを除いて、他のパラメータはいずれもオプションである.
Command:rontabが実行するコマンドで、環境変数はシステムのローカルルールに従って管理し、絶対パスの使用を推奨する.
Ensure:リソースが有効かどうかを決定し、trueまたはfalseに設定できます.
Environment:crontab環境で指定する環境変数、例えばPATH=/bin:/usr/bin:/usr/sbin.
Hour:行crontabの時間、0-23に設定可能
Minute:行crontabの分、0-59に設定可能
Month:crontabが実行される月を設定し、1-12
Monthday:ヶ月の日、1-31
Name:crontabの名前です.この名前は管理者が異なるcrontabを区別し、puppetが様々なリソース関係を管理するために使用します.
Provider:Provider、使用可能なprovider
User:crontabがそのユーザーのcrontabリストに追加され、デフォルトはpuppetを実行するユーザーです.
Weekday:行crontabの曜日、0-7
Cron計画タスクテスト例
site.ppには以下の内容が加わる

  
  
  
  
  1. cron{ echo: 
  2.  
  3.         command=>"echo \"This is cron job\""
  4.  
  5.         user=>root, 
  6.  
  7.         #hour=>[3,5], 
  8.  
  9.         minute=>'*/2'
  10.  
  11.     } 

Clientプロセスでテスト:

  
  
  
  
  1. [root@client1 ~]# puppetd   --server  master.puppet --test 
  2.  
  3. notice: Ignoring --listen on onetime run 
  4.  
  5. info: Caching catalog for client1.centos 
  6.  
  7. info: Applying configuration version '1329980213' 
  8.  
  9. notice: /Stage[main]//Node[default]/Cron[echo]/ensure: created 
  10.  
  11. notice: Finished catalog run in 0.50 seconds 

Cronタスクリストの確認

  
  
  
  
  1. [root@client1 ~]# crontab -l 
  2.  
  3. # HEADER: This file was autogenerated at Thu Feb 23 14:56:53 +0800 2012 by puppet. 
  4.  
  5. # HEADER: While it can still be managed manually, it is definitely not recommended. 
  6.  
  7. # HEADER: Note particularly that the comments starting with 'Puppet Name' should 
  8.  
  9. # HEADER: not be deleted, as doing so could cause duplicate cron jobs. 
  10.  
  11. # Puppet Name: echo 
  12.  
  13. */2 * * * * echo "This is cron job"