Edo::World::Blog

〜Linux/Solaris関連の作業メモ〜

Chef

[Ruby] chef-solo その3(ohai)

続きを読む

[Ruby] chef-solo その2

続きを読む

[Ruby] chef-solo その1

chefの管理対象ホストでジョブを実行するところまで

続きを読む

[Ruby] chef-solo その4

ユーザ・グループ作成

ユーザに指定するパスワードはハッシュ化する必要あり

$ openssl passwd -1 'hogehoge'
$1$U5pWHk/D$fipXY8Dwj.BTuZZtn3pe//

レシピを追加

$ vi site-cookbooks/build/recipes/default.rb
# 以下の行を追加
group 'dev' do
  group_name 'dev'
  gid        1000
  action     [:create]
end

user 'ope' do
  uid        1000
  group      'dev'
  home       '/home/ope'
  shell      '/bin/bash'
  password   '$1$U5pWHk/D$fipXY8Dwj.BTuZZtn3pe//'
  supports :manage_home => true        ※ユーザ作成時にホームディレクトリを作成
  action     [:create]
end

[実行結果]

$ ssh foo "id ope"
uid=1000(ope) gid=1000(dev) 所属グループ=1000(dev)


既存groupにユーザを追加

group 'wheel' do
  action :modify
  members ['ope']
  append true
end


ディレクトリを作成

$ vi site-cookbooks/build/recipes/default.rb
# 以下の行を追加
directory '/var/myspool' do
  owner 'ope'
  group 'dev'
  mode  '0755'
  action :create    ※削除する場合は":delete"を指定
end

[実行結果]

$ ssh foo "ls -ld /var/myspool/"
drwxr-xr-x 2 ope dev 4096  9月 25 11:36 2013 /var/myspool/


変数で指定する場合

普通にrubyの文法が利用可能

dirname = 'testdir'

directory "/var/#{dirname}" do
  owner 'ope'
  group 'dev'
  mode  '0755'
  action :create
end


ファイルを配布

$ vi site-cookbooks/build/recipes/default.rb
# 以下の行を追加
cookbook_file "/var/myspool/testfile" do
  owner 'vagrant'        ※owner,group指定が無い場合はroot/rootの所有者となる。
  group 'vagrant'
  mode 00644
end
$ echo 'test' > site-cookbooks/build/files/default/testfile
$ knife solo cook foo

[実行結果]

$ ssh foo "ls -l /var/myspool/"
合計 4
-rw-r--r-- 1 ope dev 5  9月 25 11:36 2013 testfile
プロフィール

edworld

記事検索
アクセスカウンター
  • 今日:
  • 昨日:
  • 累計:

livedoor 天気
  • ライブドアブログ