puppet入門1 準備編

* [debian7でpuppetmaster構築 - Qiita](http://qiita.com/tukiyo3/items/7310218e13b660c6784c)

* [puppet入門1 準備編](http://qiita.com/tukiyo/items/54c32ecfb8cc6cd76073)
* [puppet入門2 パッケージをインストールしてみる](http://qiita.com/tukiyo/items/e47dfc77ac40052ed04c)
* [puppet入門3 ファイルを配布](http://qiita.com/tukiyo/items/0003a54e47bf768133e2)
* [puppet入門4 ハマった場合の対処とか](http://qiita.com/tukiyo/items/d05bf0b705fd473adc55)
* [puppet入門5 ユーザー、グループの追加](http://qiita.com/tukiyo/items/e15dabc6174b475728fc)
* [puppet入門6 puppetのclientを追加する](http://qiita.com/tukiyo/items/261beec159f17a457d02)
* [puppet入門7 ファイルに変更があった時にサービスをrestartさせる](http://qiita.com/tukiyo3/items/0eef6e1a97d89b0149e4)



qiita内を漁ったがpuppetの入門記事が見当たらなかったので書いとく。

環境
=============

構成
-------
* ドメイン名: safe
* puppetmaster: 192.168.11.100 centos5

インストール
----------

### パッケージを手で入れる場合

* https://yum.puppetlabs.com/el/6/products/x86_64/
    * puppet-2.6.14-1.el6.noarch.rpm
    * facter-1.7.6-1.el6.x86_64.rpm
* https://yum.puppetlabs.com/el/6/dependencies/x86_64/
    * ruby-augeas-0.4.1-3.el6.x86_64.rpm
    * ruby-shadow-1.4.1-13.el6.x86_64.rpm

```bash:
sudo yum localinstall *.rpm
```

### リポジトリ追加する場合

```bash:リポジトリ追加
# rpm -ivh http://yum.puppetlabs.com/el/5/products/i386/puppetlabs-release-5-7.noarch.rpm
```

```bash:パッケージインストール、puppetmaster起動
# yum install -y puppet-server
# service puppetmaster start
```

```bash:/var/log/messagesの出力
Nov 22 02:02:44 puppetmaster puppet-master[909]: Signed certificate request for ca
Nov 22 02:02:44 puppetmaster puppet-master[909]: Rebuilding inventory file
Nov 22 02:02:51 puppetmaster puppet-master[909]: puppetmaster.safe has a waiting certificate request
Nov 22 02:02:51 puppetmaster puppet-master[909]: Signed certificate request for puppetmaster.safe
Nov 22 02:02:51 puppetmaster puppet-master[909]: Removing file Puppet::SSL::CertificateRequest puppetmaster.safe at '/var/lib/puppet/ssl/ca/requests/puppetmaster.safe.pem'
Nov 22 02:02:51 puppetmaster puppet-master[909]: Removing file Puppet::SSL::CertificateRequest puppetmaster.safe at '/var/lib/puppet/ssl/certificate_requests/puppetmaster.safe.pem'
Nov 22 02:02:51 puppetmaster puppet-master[916]: Reopening log files
Nov 22 02:02:51 puppetmaster puppet-master[916]: Starting Puppet master version 3.3.2
```

認識しているクライアント一覧を表示
----------------------------

```bash:
# puppet cert --list --all
+ "puppetmaster.safe" (SHA256) 8A:0D:E2:51:F5:96:2E:E3:21:D7:D0:88:9D:BE:82:6E:E4:0B:93:49:79:C5:86:B1:65:0B:39:2A:91:05:29:4C (alt names: "DNS:puppet", "DNS:puppet.safe", "DNS:puppetmaster.safe")
```

先頭が `+`のものは承認済みのホスト、`-`のものは未承認のホスト。

通信確認
---------

```bash:通信確認
# ping puppetmaster.safe
PING puppetmaster.safe (192.168.11.100) 56(84) bytes of data.
64 bytes from puppetmaster.safe (192.168.11.100): icmp_seq=1 ttl=64 time=0.026 ms
64 bytes from puppetmaster.safe (192.168.11.100): icmp_seq=2 ttl=64 time=0.045 ms
```

設定開始
=======

流れ
-------

* `/etc/puppet/manifests/`にファイルを作って実行の流れとなります。
* `/etc/puppet/manifests/`には、`site.pp`や`template`を置くことになります。
* `site.pp`はホストごとに適用する内容を記述します。

vimのsyntax hilighter
-----------------------

```bash:
# git clone https://github.com/puppetlabs/puppet-syntax-vim.git
# mv ./puppet-syntax-vim/ ~/.vim
```

何も設定していない状態で動作確認実行
-------------------------------

```bash:
# puppet agent --server=puppetmaster.safe --no-daemonize --verbose
Notice: Starting Puppet client version 3.3.2
Info: Retrieving plugin
Info: Caching catalog for puppetmaster.safe
Info: Applying configuration version '1385076346'
Notice: Finished catalog run in 0.02 seconds
```

* 終わったらctrl+cで終了する。

```bash:/var/log/messages
Nov 22 02:25:52 puppetmaster puppet-agent[1500]: Starting Puppet client version 3.3.2
Nov 22 02:25:53 puppetmaster puppet-agent[1505]: Retrieving plugin
Nov 22 02:25:53 puppetmaster puppet-master[916]: Compiled catalog for puppetmaster.safe in environment production in 0.01 seconds
Nov 22 02:25:53 puppetmaster puppet-agent[1505]: Caching catalog for puppetmaster.safe
Nov 22 02:25:53 puppetmaster puppet-agent[1505]: Applying configuration version '1385076346'
Nov 22 02:25:53 puppetmaster puppet-agent[1505]: Finished catalog run in 0.02 seconds
```

ここまで来たら命令を書いていく。

* [puppet入門2 パッケージをインストールしてみる](http://qiita.com/tukiyo/items/e47dfc77ac40052ed04c)