Chefでユーザーを作成してみる
Vagrantの仮想マシンにChefを実行するための準備をする
の続き
Chefでユーザーを作成してみる。
【参考】 アルパカchef日記3日目 data bagについて / またはユーザ管理クックブックなど - アルパカDiary http://d.hatena.ne.jp/toritori0318/20130516/1368722444
準備
Cookbookを作成する。
$ cd chef-repoのディレクトリ $ knife cookbook create adduser -o site-cookbooks
パスワードはshadow passwordというものを設定する必要があるとの事なので、生成する。
$ openssl passwd -1 'パスワード' シャドーなパスワードの文字列
レシピ作成
レシピを記述する。
$ vi site-cookbooks/adduser/recipes/default.rb
user "hoge" do password "シャドーなパスワードの文字列" supports :manage_home => true action :create end group "wheel" do action [:modify] members ["hoge"] append true end
上記のレシピでは、ユーザーの作成だけでなく、wheelグループにもついでに追加している。
今回利用したCentOSのBOXでは、/etc/sudoersの最後に
%wheel ALL=NOPASSWD: ALL
が追加されているので、
wheelグループにユーザーを追加するだけで、sudoがパスワード無しで実行できるようになる。
適用
nodesのjsonを下記のように修正する。
$ vi nodes/centos.json
{ "run_list": [ "recipe[adduser]" ] }
料理する。
$ knife solo cook centos
結果
ログインして、作成したユーザーに切り替えられるか確認する。
$ ssh centos
centos$ su hoge
sudoもパスワードなしで実行できる
centos$ sudo echo Hello, world! Hello, world!