2009-07-06 Mon

ralsh はてぶ

puppet のバージョンを上げようと思い,
rpm を作っている時に,ralsh の存在に気づいたのでメモ.

Puppet の RAL(って何?)を直接扱うためのコマンド.

ralsh --help


すると説明がでるんだけど,そこには以下のような例がある.

EXAMPLE
===
This example uses ``ralsh`` to return Puppet configuration for the user
``luke``::

$ ralsh user luke
user { 'luke':
  home => '/home/luke',
  uid => '100',
  ensure => 'present',
  comment => 'Luke Kanies,,,',
  gid => '1000',
  shell => '/bin/bash',
  groups => ['sysadmin','audio','video','puppet']
}


どうやら,Puppet の設定を吐いてくれるみたい.

他にも,package

# ralsh package puppet-server
package { 'puppet-server':
  ensure => '0.24.5-1.el5'
}


service

# ralsh service puppet-server
service { 'puppet-server':
  ensure => 'running',
  enable => 'false'
}


等の設定を吐いてくれるっぽい.

また,
- Digg the Blog » Blog Archive » Master of Puppets #1: ralsh
  http://blog.digg.com/?p=335
によると,以下のように引数を渡してやると,
ユーザ newuser を作成し,その設定を吐いてくれるみたい.
# 以下の例では managehome がないので /home/newuser は作られない.

~$ ralsh user newuser uid=9999 gid=9999 home=/home/newuser shell=/bin/bash ensure=present
notice: /User[newuser]/ensure: created
user { ‘newuser’:
  uid => ‘9999′,
  gid => ‘9999′,
  home => ‘/home/newuser’,
  shell => ‘/bin/bash’,
  password => ‘!’,
  ensure => ‘present’
}



また,以下のように cron の設定もできるみたい.

~$ ralsh cron check_my_mail command="/usr/bin/fetchmail mail.my.mail.server" user=plathrop hour='*' minute='*/30' ensure=present
notice: /Cron[check_my_mail]/ensure: created
cron { ‘check_my_mail’:
  command => ‘/usr/bin/fetchmail mail.my.mail.server’,
  monthday => ‘absent’,
  hour => ['*'],
  environment => ”,
  target => ‘plathrop’,
  special => ”,
  minute => ['*/30'],
  user => ‘plathrop’,
  ensure => ‘present’,
  weekday => ‘absent’,
  month => ‘absent’
}


Puppet で cron を扱えるというのは知らなかったんだけど,
これは /etc/cron.d にでもファイルを書いてくれるのだろうか.

/etc/cron.d 以下にファイルを書いてくれるなら,
source を使って直接ファイルを配布した方が簡単な気もする.

このへんはどうなってるか,あとで試す.

- puppet - Trac
  http://reductivelabs.com/trac/puppet

ref.
- puppet-mode [2009-07-04-3]
- puppet を使ってみる [2009-04-03-1]
- Puppet による変更をメールで通知する [2008-08-29-7]
- Puppet を使って client にパッケージをインストールする [2008-08-28-3]
- CentOS 5.2 に puppet を rpm でインストールする [2008-08-28-1]

2009-04-03 Fri

puppet を使ってみる はてぶ

以前にも機能を試す程度には puppet を使ってみたけど,
今回は実際の運用を視野にいれつつ使ってみました.

mizzy さんによる puppet の記事
- 連載:オープンソースなシステム自動管理ツール Puppet|gihyo.jp … 技術評論社
  http://gihyo.jp/admin/serial/01/puppet
を読みながらごにょごにょする.

なんとなくそれっぽいマニフェストは書けたけど,
こういう感じでいいのか自信はないというか,
もっとうまい書き方があるような気がしてしょうがない.

puppetmaster が動いてるサーバで,
puppet の動いてる設定ファイルなどを一元管理できるのは便利.
運用で使っていきたいので,しっかりと調べていく方向で.

- puppet - Trac
  http://reductivelabs.com/trac/puppet

ref.
- Puppet による変更をメールで通知する [2008-08-29-7]
- Puppet を使って client にパッケージをインストールする [2008-08-28-3]
- CentOS 5.2 に puppet を rpm でインストールする [2008-08-28-1]

Referrer (Inside):
[2009-07-06-1] ralsh

2008-08-29 Fri

Puppet による変更をメールで通知する はてぶ

puppetmaster 側に以下の 2 つの設定をする.

/etc/puppet/puppet.conf

[puppetmasterd]
    reports = tagmail,daily,security

    sendmail = /usr/sbin/sendmail
    reportfrom = [email protected]
    smtpserver = mx.example.com


/etc/puppet/tagmail.conf

all: [email protected]


puppet 側は /etc/puppet/puppet.conf に

[puppetd]
    report = true


を追加.

この状態で,

user { testuser:
  ensure => present
}


というマニフェストを実行させると,以下のようなメールが届く.

Subject: Puppet Report for test2

Fri Aug 29 17:57:39 +0900 2008 //Node[test2]/User[testuser]/ensure (notice): created


- Puppet を使って client にパッケージをインストールする [2008-08-28-3]
- CentOS 5.2 に puppet を rpm でインストールする [2008-08-28-1]

2008-08-28 Thu

Puppet を使って client にパッケージをインストールする はてぶ

マニフェストに以下のような設定を加える.

node 'test1' {
  package { 'cft':
    ensure => latest,
  }
}


クライアント側(CentOS 5.2)では以下のような感じで処理される.

Aug 28 17:34:35 test2 puppetd[4373]: Starting Puppet client version 0.24.5
Aug 28 17:34:37 test2 puppetd[4373]: Starting catalog run
Aug 28 17:34:47 test2 yum: Installed: ruby-fam - 0.2.0-4.el5.i386
Aug 28 17:34:48 test2 yum: Installed: ruby-rpm - 1.2.3-3.el5.i386
Aug 28 17:34:49 test2 yum: Installed: cft - 0.2.2-1.el5.noarch
Aug 28 17:34:49 test2 puppetd[4373]: (//Node[test2]/Package[cft]/ensure) created
Aug 28 17:34:49 test2 puppetd[4373]: Finished catalog run in 11.67 seconds


- CentOS 5.2 に puppet を rpm でインストールする [2008-08-28-1]

Referrer (Inside):
[2009-07-06-1] ralsh
[2009-04-03-1] puppet を使ってみる
[2008-08-29-1] Puppet による変更をメールで通知する

2008-08-28 Thu

Cft でシステムに対する変更を監視する はてぶ

http://cft.et.redhat.com/

Cft(シフト)は
- オープンソースなシステム自動管理ツール Puppet:第12回 Puppet関連ツールの紹介(Cft)|gihyo.jp … 技術評論社
  http://gihyo.jp/admin/serial/01/puppet/0012
によると

Cft(「シフト」と読みます)はシステムに対する変更を監視して,記録するためのRubyでできたコマンドラインツールです。

Cftは記録された変更をPuppetマニフェスト形式で出力することができますので,既にPuppetを利用している場合には,あるシステムで行った変更を記録してPuppetマニフェスト形式で出力,それをそのまま他のシステムに適用する,といったことができます。

また,Puppetを利用していない場合でも,Cftを利用することでシステムに対する変更を自動的に漏れなく記録することができますし,記録のための統一フォーマットとしてPuppetマニフェストを流用することで,人手による作業にありがちな記録漏れやミス,フォーマットの不統一を防ぐことができます

というものです.

インストールは puppet([2008-08-28-1])同様,
David Lutterkort さんのレポジトリ
- http://people.redhat.com/dlutter/yum/dlutter.repo
から行なえます.

Cft は変更を監視する期間(セッション)を指定し,
その後 Puppet のマニフェスト形式で出力可能.

session のスタートは

# cft begin セッション名


session の終了は

# cft finish セッション名


Puppet のマニフェスト形式での書き出しは

# cft manifest セッション名


記録したセッションの削除

# cft erase セッション名


- オープンソースなシステム自動管理ツール Puppet:
  第12回 Puppet関連ツールの紹介(Cft)|gihyo.jp … 技術評論社
  http://gihyo.jp/admin/serial/01/puppet/0012

2008-08-28 Thu

CentOS 5.2 に puppet を rpm でインストールする はてぶ

puppet のダウンロードページに David Lutterkort さんの
yum repository のファイル
- http://people.redhat.com/dlutter/yum/dlutter.repo
があるので,これを /etc/yum.repos.d にダウンロードし,
enable を 1 にする.

あとは

yum install puppet puppet-server


で OK.



puppetmaster の起動

とりあえず,空のマニフェストを用意して起動.

$ sudo mkdir -p /etc/puppet/manifests
$ sudo touch /etc/puppet/manifests/site.pp
$ sudo /etc/init.d/puppetmaster start




puppet の起動

/etc/sysconfig/puppet に "PUPPET_SERVER" という設定項目があるので,
これに puppetmasterd のサーバを指定し,/etc/init.d/puppet を起動.



参照

- puppet - Trac
  http://reductivelabs.com/trac/puppet
- puppet-mode
  http://reductivelabs.com/redmine/repositories/entry/puppet/ext/emacs/puppet-mode.el?format=raw
- 連載:オープンソースなシステム自動管理ツール Puppet|gihyo.jp … 技術評論社
  http://gihyo.jp/admin/serial/01/puppet
- puppet wiki (パペウィキ) - Trac
  http://trac.mizzy.org/puppet

Referrer (Inside):
[2009-07-06-1] ralsh
[2009-04-03-1] puppet を使ってみる
[2008-08-29-1] Puppet による変更をメールで通知する
[2008-08-28-3] Puppet を使って client にパッケージをインストールする
[2008-08-28-2] Cft でシステムに対する変更を監視する
ChangeLog 最新ページ / カテゴリ最新ページ / 前ページ 1 2 / page 2 (2)