Chef-blueprints

提供:Dev Guides
移動先:案内検索

シェフ-設計図

Chefでは、設計図はサーバー上に存在するものを正確に見つけて記録するためのツールです。 ブループリントは、ディレクター、パッケージ、構成ファイルなど、必要なすべてのものを記録します。 ブループリントには、サーバー情報をさまざまな形式で分割する機能があります。 それらの1つはシェフのレシピです。 これは、Chefを使用して一意のサーバーを構成するのに役立ちます。

装着方法

ブループリントを実行する必要があるノードにPythonとGitをインストールする必要があります。

  • ステップ1 *-ブループリントをインストールします。
vipin@server:~$ pip install blueprint
  • ステップ2 *-ブループリントを作成します。
user@server:~$ sudo blueprint create internal-cookbook
# [blueprint] using cached blueprintignore(5) rules
# [blueprint] searching for Python packages
# [blueprint] searching for PEAR/PECL packages
# [blueprint] searching for Yum packages
# [blueprint] searching for Ruby gems
# [blueprint] searching for npm packages
# [blueprint] searching for software built from source
# [blueprint] searching for configuration files
# [blueprint]/etc/ssl/certs/AC_Ra\xc3\xadz_Certic\xc3\
xa1mara_S.A..pem not UTF-8 - skipping it
# [blueprint]/etc/ssl/certs/NetLock_Arany_=Class_Gold=_F\xc5\
x91tan\xc3\xbas\xc3\xadtv\xc3\xa1ny.pem not UTF-8 - skipping it
# [blueprint]/etc/ssl/certs/EBG_Elektronik_Sertifika_Hizmet_Sa\
xc4\x9flay\xc4\xb1c\xc4\xb1s\xc4\xb1.pem not UTF-8 - skipping it
# [blueprint]/etc/ssl/certs/Certinomis_-_Autorit\xc3\xa9_Racine.
pem not UTF-8 - skipping it
# [blueprint]/etc/ssl/certs/T\xc3\x9cB\xc4\xb0TAK_UEKAE_K\xc3\
xb6k_Sertifika_Hizmet_Sa\xc4\x9flay\xc4\xb1c\xc4\xb1s\xc4\xb1_-_S\
xc3\xbcr\xc3\xbcm_3.pem not UTF-8 - skipping it
# [blueprint] searching for APT packages
# [blueprint] searching for service dependencies
  • ステップ3 *-ブループリントからクックブックを作成します。
user@server:~$ blueprint show -C internal-cookbook my-server/recipes/default.rb
  • ステップ4 *-生成されたファイルの内容を検証します。
user@server:~$ cat internal-cookbook/recipes/default.rb
#
# Automatically generated by blueprint(7). Edit at your own risk.
#
cookbook_file('/tmp/96468fd1cc36927a027045b223c61065de6bc575.tar')
do
   backup false
   group 'root'
   mode '0644'
   owner 'root'
   source 'tmp/96468fd1cc36927a027045b223c61065de6bc575.tar'
end
execute('/tmp/96468fd1cc36927a027045b223c61065de6bc575.tar') do
   command 'tar xf "/tmp/96468fd1cc36927a027045b223c61065de6bc575.tar"'
   cwd '/usr/local'
end
directory('/etc/apt/apt.conf.d') do
...TRUNCATED OUTPUT...
service('ssh') do
   action [:enable, :start]
   subscribes :restart, resources('cookbook_file[/etc/default/
      keyboard]', 'cookbook_file[/etc/default/console-setup]',
      'cookbook_file[/etc/default/ntfs-3g]', 'package[openssh-server]',
      'execute[96468fd1cc36927a027045b223c61065de6bc575.tar]')
end

ワークフロースクリプト

ブループリントは、サーバーの関連するすべての構成データを見つけてGitリポジトリに保存するPythonパッケージです。 各ブループリントには独自の名前があります。

さまざまなフォルマントでGitリポジトリのコンテンツを表示するように設計図を要求できます。

user@server:~$ ls -l internal-cookbook/
total 8
drwxrwxr-x 3 vagrant vagrant 4096 Jun 28 06:01 files
-rw-rw-r-- 1 vagrant vagrant 0 Jun 28 06:01 metadata.rb
drwxrwxr-x 2 vagrant vagrant 4096 Jun 28 06:01 recipes

ブループリント表示コマンド

user@server:~$ blueprint show-packages my-server
...TRUNCATED OUTPUT...
apt wireless-regdb 2011.04.28-1ubuntu3
apt zlib1g-dev 1:1.2.3.4.dfsg-3ubuntu4
python2.7 distribute 0.6.45
python2.7 pip 1.3.1
pip blueprint 3.4.2
pip virtualenv 1.9.1

上記のコマンドは、インストールされているすべての種類のパッケージを表示します。 他のshowコマンドは次のとおりです-

  • ショーファイル
  • ショーサービス
  • show-sources