LoginSignup
0
0

More than 5 years have passed since last update.

既存サーバをPuppetマニフェスト化するツール作ってみた( puppet resource)

Last updated at Posted at 2015-11-03

2015/12/30変更

ツール説明等はGitHub側に引っ越したので、こっちはtipsぽい内容に変更しました。
引越し先:https://github.com/kijibato/puppet-manifest-maker
説明は、README.ja.mdに記載しています。

puppet resource

puppet resourceコマンドを使うと、現在のリソースをPuppetのコードで表示することができます。

uesrリソースの中から、guestユーザを表示する例です。

# puppet resource user guest

user { 'guest':
  ensure           => 'present',
  gid              => '1000',
  home             => '/home/guest',
  password         => '$6$YtdVuKy6$qoKZLThvlBfSwc8hDj2sWAMx9/CM4Sss61nqOdjV9Zp2iI4QKD5jQgBuX5cKhflQFoRizNDh95nl55e8sqhAN1',
  password_max_age => '99999',
  password_min_age => '0',
  shell            => '/bin/bash',
  uid              => '1000',
}

fileリソースの中から、/etc/httpd/conf/httpd.confを表示する例です。

# puppet resource file /etc/httpd/conf/httpd.conf

file { '/etc/httpd/conf/httpd.conf':
  ensure  => 'file',
  content => '{md5}3b1c36bd33644c783e13f634861b20c2',
  ctime   => '2015-10-29 13:07:35 +0000',
  group   => '0',
  mode    => '644',
  mtime   => '2015-10-29 13:07:35 +0000',
  owner   => '0',
  type    => 'file',
}

リファレンスによると利用可能なタイプを表示するにはtypeとありますが、表示されたタイプ全部がpuppet resourceで表示できるわけではないようです。

# puppet resource --types

また、user, groupなどは、タイプまでの指定で全ユーザ、全グループが表示されますが、fileなどはエラーになるなど、タイプごとにばらつきがあります。

# puppet resource user
user { 'adm':
...略...
}
user { 'apache':
...略...
}
...略...

# puppet resource file
Error: Could not run: Listing all file instances is not supported.  Please specify a file or directory, e.g. puppet resource file /etc

ちなみに、puppet resourceコマンドのオプション指定などで値を書き換えると、実際にサーバの設定を変えることができたりします。

puppet resourceを活用する

このままだとちょっと足りないですが、サーバの状態をpuppet定義として表示する機能は便利なので、puppet resourceの結果を組み立ててマニフェスト化するツールを作りました。

GitHubで公開中です。公開場所は投稿の上部に記載しています。

Puppetマニフェストを作るとき、事前に設定確認のためにサーバを構築して、その後マニフェストにすることがたびたびあります。どうせなら手で設定したサーバから手軽にマニフェストが作れたら便利かなと。
ゼロベースからマニフェストを作るより、既存サーバの設定を有効活用してみようかなというものです。マニフェスト作成や、サーバからの設定ファイル類の回収が”ちりつも”でめんどうなので、その辺を自動化しています。

参考

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0