itamae

itamaeメモ

More than 3 years have passed since last update.


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