LoginSignup
0
0

More than 5 years have passed since last update.

Chefを利用したときに気がついたこと

Last updated at Posted at 2016-12-01

はじめに

chefを使用する機会があり実施する場合に気をつけたことをメモする。

chefは冪等性を担保するツールではなく冪等性を実現できる手段です。
(最近のProvisioningToolはだいたいそうな気もするしBashだってそうな気がする。)

冪等性を実現するために気にしたこと。

versionを指定する。

少し前に冪等性が、冪等性が。。。なんて話もあったかと思います。
確かに冪等性は大事です。
冪等性を守る一つとしてversion管理が大事だと思います。

chefはパッケージ管理ごとにversion指定ができます。
現状利用するバージョンまたはこれから利用するバージョンを確認した上で指定してあげることは優しさですね。

packageを利用した場合は以下のような形でversion管理が行えます。

package "tar" do
  version "1.16.1-1"
  action :install
end

package以外にも以下のようなパッケージ管理ソフトが指定できます。

  • apt_package
  • bff_package
  • chef_gem
  • chocolatey_package
  • dpkg_package
  • easy_install_package
  • freebsd_package
  • gem_package
  • homebrew_package
  • ips_package
  • macports_package
  • openbsd_package
  • pacman_package
  • paludis_package
  • portage_package
  • rpm_package
  • smartos_package
  • solaris_package
  • windows_package
  • yum_package

cf: https://docs.getchef.com/resource_package.html

バージョン管理を、サーバとクライアントのいずれでやるか問題。

どのような管理方法にするか。で決められることが出来る。

  • サーバ管理型

    • サーバ側で管理するためクライアント管理型より工数が少ない。
    • クライアントごとの設定差異がない場合にとても有効。
    • クライアント設定の一括変更時は同じコマンドで実施できる。
  • クライアント管理型

    • クライアント側で管理するためサーバ管理型より工数が多い。
    • クライアントのロール別に設定変更することが可能

更新処理をする

actionを指定しない

file "/tmp/something" do
end

削除して作成する

こちらはファイルがある場合です。
明示的に記述するので処理がわかりやすいと思います。

file "/tmp/something" do
  action [:delete, :create]
end

chefを利用する際に、時間が経過したときに同じ設定ができるか。
この点に注意しながら構築ができると
その後の設定管理に時間を(使わなく|少なく)することができます。
ので是非注意してみてください。

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