puppet のインストール

  • 投稿日:
  • by
  • カテゴリ:

puppet のインストールメモ
サーバーとクライアントが動くまで。

対象 
→鯖の台数が多くて、同じ設定をたくさんしないといけない人。
→台数多くて設定してると眠くなる人。
→何回もパスワード間違えて疲れる人。

人形遣いになりたい人は覚えましょう(´・ω・`)

オープンソースなシステム自動管理ツール Puppet
パペウィキ

centos5.x でやりました。

yum に追加
/etc/yum.repos.d/dag.repo を追加(puppet をインストール)
[dag]
name=DAG RPM Repository
baseurl=http://ftp.riken.jp/Linux/dag/redhat/el$releasever/en/$basearch/dag
gpgcheck=1
gpgkey=http://ftp.riken.go.jp/pub/Linux/dag/RPM-GPG-KEY.dag.txt

puppet のインストール
# yum install puppet puppet-server #puppet (クライアント、サーバー)のインストール
Loading "fastestmirror" plugin
Loading mirror speeds from cached hostfile

dag 100% |=========================| 1.1 kB 00:00
primary.xml.gz 100% |=========================| 2.9 MB 00:02
dag : ################################################## 8223/8223
Setting up Install Process
Parsing package install arguments
Resolving Dependencies
--> Running transaction check
---> Package puppet.i386 0:0.22.4-1.el5.rf set to be updated
--> Processing Dependency: /usr/bin/ruby for package: puppet
--> Processing Dependency: facter >= 1.1.4 for package: puppet
--> Processing Dependency: ruby >= 1.8.1 for package: puppet
---> Package puppet-server.i386 0:0.22.4-1.el5.rf set to be updated
--> Running transaction check
---> Package ruby.i386 0:1.8.5-5.el5_2.6 set to be updated
--> Processing Dependency: libruby.so.1.8 for package: ruby
--> Processing Dependency: ruby-libs = 1.8.5-5.el5_2.6 for package: ruby
---> Package facter.i386 0:1.3.7-1.el5.rf set to be updated
--> Running transaction check
---> Package ruby-libs.i386 0:1.8.5-5.el5_2.6 set to be updated
--> Finished Dependency Resolution

Dependencies Resolved

=============================================================================
Package Arch Version Repository Size
=============================================================================
Installing:
puppet-server i386 0.22.4-1.el5.rf dag 13 k
Installing for dependencies:
facter i386 1.3.7-1.el5.rf dag 22 k
puppet i386 0.22.4-1.el5.rf dag 382 k
ruby i386 1.8.5-5.el5_2.6 updates 280 k
ruby-libs i386 1.8.5-5.el5_2.6 updates 1.6 M

Transaction Summary
=============================================================================
Install 5 Package(s)
Update 0 Package(s)
Remove 0 Package(s)

Total download size: 2.3 M
Is this ok [y/N]: y
Downloading Packages:
(1/5): puppet-server-0.22 100% |=========================| 13 kB 00:00
(2/5): puppet-0.22.4-1.el 100% |=========================| 382 kB 00:00
(3/5): facter-1.3.7-1.el5 100% |=========================| 22 kB 00:00
(4/5): ruby-libs-1.8.5-5. 100% |=========================| 1.6 MB 00:02
(5/5): ruby-1.8.5-5.el5_2 100% |=========================| 280 kB 00:00
warning: rpmts_HdrFromFdno: Header V3 DSA signature: NOKEY, key ID 6b8d79e6
Importing GPG key 0x6B8D79E6 "Dag Wieers (Dag Apt Repository v1.0) " from http://ftp.riken.go.jp/pub/Linux/dag/RPM-GPG-KEY.dag.txt
Is this ok [y/N]: y
Running rpm_check_debug
Running Transaction Test
Finished Transaction Test
Transaction Test Succeeded
Running Transaction
Installing: ruby-libs ######################### [1/5]
Installing: ruby ######################### [2/5]
Installing: facter ######################### [3/5]
Installing: puppet ######################### [4/5]
Installing: puppet-server ######################### [5/5]

Installed: puppet-server.i386 0:0.22.4-1.el5.rf
Dependency Installed: facter.i386 0:1.3.7-1.el5.rf puppet.i386 0:0.22.4-1.el5.rf ruby.i386 0:1.8.5-5.el5_2.6 ruby-libs.i386 0:1.8.5-5.el5_2.6
Complete!

ruby と facter がインストールされます。puppet は ruby 上で動くため必須のようです。
facter は os のバージョン、ドメイン名、FQDN、IPアドレスなどを収集するための Ruby ライブラリだそうです。

クライアントだけインストールの場合は
# yum install puppet
puppet, ruby, ruby-libs, facter の4つがインストールになります。

初期設定
iptables を停止するかポートを空ける。(デフォルト 8140)
dns を動かさないで、hosts で動かすなら、下のやつで設定する。

/etc/sysconfig/puppet で鯖、ポート番号の変更ができる。
PUPPET_SERVER=centos1.zephel.com ←puppet 鯖
#PUPPET_PORT=8140 ←ポート変えるなら
設定してみたが、dns を停止したら、
err: Invalid node name *.zephel.com at /etc/puppet/manifests/site.pp:7
err: Could not find centos2.zephel.com with names centos2.zephel.com, centos2
err: Could not find centos4.zephel.com with names centos4.zephel.com, centos4
と出てたのでだめぽい。

/etc/puppet/manifests/site.ppを作成
touch site.pp でもかまわない。

file { '/etc/hosts':
owner => 'root',
group => 'root',
mode => 644,
}

鯖側 1回目起動(puppet ユーザの作成)
# puppetmasterd --verbose --mkusers

2回目からは下記で起動。
# puppetmasterd --verbose &

登録していない場合と全クライアント --nonodesオプションで起動。(はじめはこっちで確認)
# puppetmasterd --nonodes --verbose &

node (クライアント)の指定がある場合は
/site.pp
node 'centos2.zephel.com' {
file { '/etc/hosts':
owner => 'root',
group => 'root',
mode => 644,
}
}

# puppetmasterd --verbose &
で起動。

クライアントの起動
# puppetd --server centos1.zephel.com --verbose

接続後の確認

鯖側で
notice: Allowing unauthenticated client centos2.zephel.com(192.168.2.201) access to puppetca.getcert
info: Autosign is enabled but /etc/puppet/autosign.conf is missing
notice: Host centos2.zephel.com has a waiting certificate request

# puppetca --list
centos2.zephel.com ←登録されていないクライアント

# puppetca --sign centos2.zephel.com

# puppetca --list
No certificates to sign ←登録されるとクライアントの表示が無くなる。

※autosign.conf を記載すれば、認証の作業がいらなくなる。
/etc/puppet/autosign.conf
*.zephel.com

クライアント側で /etc/hosts をchmod 600 にして、puppetd を起動。

# puppetd --server centos1.zephel.com --verbose
[root@centos2 etc]# puppetd --server centos1.zephel.com --verbose
notice: Starting Puppet client version 0.22.4
info: Facts have changed; recompiling
info: Caching configuration at /var/lib/puppet/localconfig.yaml
notice: Starting configuration run
notice: //centos2.zephel.com/File[/etc/hosts]/mode: mode changed '600' to '644'
notice: Finished configuration run in 0.08 seconds

600に書き換わっていたので、644 に書き変わる。


第2回 Puppetのインストールから起動まで