itamaeをインストール
$ sudo gem install itamae
レシピー作成
どこのディレクトリでもいいんで、base.rb
ファイルを作成して、下のコードを入れます。
package "git" do
action :install
end
###ローカル環境でItamaeを実行する
$ sudo itamae local git.rb
これでgitがインストールされます。
リモートサーバーで実行
仮に公開鍵認証でリモートサーバーに入れるとします。リモートのサーバーでgit.rbレシピーを実行します。
$ itamae ssh -h <hostname> -u root -p 2222 git.rb
INFO : Starting Itamae...
INFO : Recipe: /Users/N1210A001/Playground/itamae/git.rb
INFO : package[git] installed will change from 'false' to 'true'
itamaeのhelp
$ itamae help ssh
Usage:
itamae ssh RECIPE [RECIPE...]
...
$ itamae help local
Usage:
itamae local RECIPE [RECIPE...]
Options:
[--dot=PATH] # Only write dependency graph in DOT
-j, [--node-json=NODE_JSON]
-y, [--node-yaml=NODE_YAML]
-n, [--dry-run], [--no-dry-run]
[--ohai], [--no-ohai] # This option is DEPRECATED and will be inavailable.
-l, [--log-level=LOG_LEVEL]
# Default: info
[--color], [--no-color]
# Default: true
Run Itamae locally
ディレクトリ作成
リモートホストにディレクトリを作成、ユーザーを指定する際に実際に存在しているユーザーを指定する必要がある
directory
はitamaeのリソースです。
directory "create itamae-test dir" do
action :create
path "/root/itamae-test"
mode "755"
owner "wang"
group "root"
end
ファイルを作成する
file "create file foo" do
path "/root/foo"
content "this is just a random file"
mode "755"
group "root"
end
gitからelixirをcloneする
git "clone elixir" do
destination "/root/elixir"
repository "https://github.com/elixir-lang/elixir.git"
revision "HEAD"
end
リモートサーバーにフィアルを転送
リモートの/etc/sudoers.d/
ディレクトリにローカルの現在のディレクトリ下のremote_files/wzj
ファイルを送ります。リモートでもwzj
という名前で保存します。
remote_file "/etc/sudoers.d/wzj" do
source "remote_files/wzj"
end
userリソースを利用して、ユーザーを作成する
user "create user" do
username "wang"
password "123456"
end
Erlangをインストールレシピー
directory "create Download directory" do
action :create
path "/root/Download"
mode "755"
owner "root"
group "root"
end
execute "get erlang repo" do
cwd "/root/Download"
command "wget http://packages.erlang-solutions.com/erlang-solutions-1.0-1.noarch.rpm"
end
execute "install erlang repo" do
cwd "/root/Download"
command "rpm -Uvh erlang-solutions-1.0-1.noarch.rpm"
not_if "rpm -q erlang-solutions-1.0-1.noarch" # 0であれば、上のコマンド実行しない
end
# 必須
package "epel-release" do
action :install
end
package "erlang" do
action :install
not_if "hash erl"
end
dockerをインストールして、起動する
package "epel-release"
package "docker"
service "docker" do
action :restart
name "docker"
end
jenkinsをインストール
include_recipe './apache.rb'
package "java-1.8.0-openjdk"
execute "download repo" do
command "wget -O /etc/yum.repos.d/jenkins.repo http://pkg.jenkins-ci.org/redhat/jenkins.repo"
not_if "test -e /etc/yum.repos.d/jenkins.repo"
end
execute "import jenkins key" do
command "rpm --import http://pkg.jenkins-ci.org/redhat/jenkins-ci.org.key"
end
package "jenkins" do
action :install
end
include_recipe
を使って同じディレクトリのしたのレシピーapache.rb
をincludeして、apacheがなければ、インストールするようにしてくれます。
ベースとなるソフトを一度にインストール
%w(ctags tmux vim).each do |pkg|
package pkg do
action :install
end
end