Cisco Nexus を Puppet で設定する１

# 本稿の構成

| タイトル | 内容 | コメント |
|:-----------|:------------|:------------|
|[Cisco Nexus を Puppet で設定する１](http://qiita.com/dyoshiha/items/079d04e42a1e66e29d89)|Puppet Master のインストール|元ネタ：[Installing Puppet: Linux](https://docs.puppet.com/puppet/4.0/reference/install_linux.html#installing-release-packages-on-yumrpm-systems)|
|[Cisco Nexus を Puppet で設定する２ａ](http://qiita.com/dyoshiha/items/19026aa3ab5e5a5f678b)|Puppet Agent のインストール・Bash編|元ネタ：[Puppet Agent Installation & Setup: Cisco Nexus](https://github.com/cisco/cisco-network-puppet-module/blob/develop/docs/README-agent-install.md)|
|Cisco Nexus を Puppet で設定する２ｂ|Puppet Agent のインストール・guestshell編|未完成|
|[Cisco Nexus を Puppet で設定する３](http://qiita.com/dyoshiha/items/2642ea3d4b3bf9c02e51)|puppetlabs-ciscopuppet モジュールのインストール|元ネタ：[cisco-network-puppet-module: Example Manifest Usage](https://github.com/cisco/cisco-network-puppet-module/blob/develop/examples/README.md)|

# はじめに
Cisco Nexus3048 を Puppet で設定する環境を構築した際のメモです

# 使用バージョンの決定
* Nexus3048

Puppet Agent を利用可能な Nexus3000 シリーズのバージョンは [7.0(3)I2(1) 以上が必要](https://github.com/cisco/cisco-network-puppet-module/blob/develop/README.md#limitations)。この条件を満たし、かつ 2016/4/25 時点で最新の安定バージョン 7.0(3)I2(2a) を本稿では使用する。

* Puppet 

[こちら](https://github.com/cisco/cisco-network-puppet-module/blob/develop/docs/README-agent-install.md#pre-install) によると、Nexus へインストールする Puppet Agent は 2016/4/25 時点で Puppet version 4.0 または Puppet Enterprise 2015.2 に対応する。

[PuppetServer2.1 のリリースノート](https://docs.puppet.com/puppetserver/2.1/release_notes.html)に以下の記述を発見：
As with Puppet 4.0, Puppet Server 2.0 is now distributed via the new Puppet Collection repositories. Puppet Server 2.0 is part of Puppet Collection 1.

Puppet4.0 のコンポーネントである PuppetServer 2.0 は PuppetCollection1 にてインストールできる模様。今回は CentOS6.x を使用するのでインストールファイルは[こちら](https://yum.puppetlabs.com/el/6x/PC1/x86_64/)からダウンロード可能。pc1 には 0.9.2, 1.0.0-1, 1.0.0-2 の三種類が存在するが今回は puppetlabs-release-pc1-1.0.0-1.el6.noarch.rpm を、PuppetServer は日付の近い puppetserver-2.1.2-1.el6.noarch.rpm を使用することにした。

以下 Puppet を[こちら](https://docs.puppet.com/puppet/4.0/reference/install_linux.html#installing-release-packages-on-yumrpm-systems)の記述に従ってインストールする

# Puppet のインストール

## Puppet インストール手順

```
[root@localhost ~]# rpm -Uvh https://yum.puppetlabs.com/el/6x/PC1/x86_64/puppetlabs-release-pc1-1.0.0-1.el6.noarch.rpm
[root@localhost ~]# yum install puppetserver-2.1.2
```


Puppet Server を起動

```
# service puppetserver start
Starting puppetserver:                                     [  OK  ]
```

PATH を通す:

```
# export PATH=/opt/puppetlabs/bin:$PATH
```

Firewall の設定を確認する：

```
# iptables -L --line-numbers
```

サンプルログ：

```
# iptables -L --line-numbers
Chain INPUT (policy ACCEPT)
num  target     prot opt source               destination

...

9    ACCEPT     tcp  --  anywhere             anywhere            tcp dpt:http
10   ACCEPT     tcp  --  anywhere             anywhere            tcp dpt:irdmi

...

```

Puppet Agent から通信を許可するよう設定を変更する。TCP 8140 を通せばよい。9行目と10行目の間に挿入するのであれば：

```
# iptables -I INPUT 10 -p tcp --dport 8140 -j ACCEPT
```

修正が反映されたか確認して保存：

```
# iptables -L --line-numbers
Chain INPUT (policy ACCEPT)
num  target     prot opt source               destination

...

9    ACCEPT     tcp  --  anywhere             anywhere            tcp dpt:http
10   ACCEPT     tcp  --  anywhere             anywhere            tcp dpt:8140
11   ACCEPT     tcp  --  anywhere             anywhere            tcp dpt:irdmi

...

# service iptables save
# cat /etc/sysconfig/iptables
```

## Puppet Server 2.2 の設定

設定方法は[こちら](https://docs.puppetlabs.com/puppetserver/2.2/configuration.html)。

設定を表示:

```
puppet config print
```

Nexus3048 側の作業は [続き：Cisco Nexus を Puppet で設定する２](http://qiita.com/dyoshiha/items/19026aa3ab5e5a5f678b)