18. capistranoでやってみよう
1)下準備
role :web, '***.***.***.***'
default_run_options[:pty] = true
19. capistranoでやってみよう
2)サーバへのログイン
namespace :setup do
task :default, :roles => :web do
set :user, 'root'
set :port, '22'
set :password, Capistrano::CLI.password_prompt('root
password: ')
end
end
20. capistranoでやってみよう
3)ユーザの追加
set :group, Capistrano::CLI.ui.ask('group name: ')
set :user_name, Capistrano::CLI.ui.ask('user name: ')
run "/usr/sbin/useradd -m -g #{group} -G wheel #{user_name}"
set :user_password, Capistrano::CLI.password_prompt('user password: ')
run "echo -e #{user_name}:#{user_password} ¦ /usr/sbin/chpasswd"
21. capistranoでやってみよう
4)sudoによる管理者権限の付与
run "echo '%wheel ALL=(ALL) ALL' >> /etc/sudoers"
run "echo '#{user_name} ALL=(ALL) NOPASSWD:ALL' >> /etc/sudoers"
run "echo 'alias sudo="sudo env PATH=$PATH"' >> /home/
#{user_name}/.bashrc"
22. capistranoでやってみよう
4)sudoによる管理者権限の付与
run "echo '%wheel ALL=(ALL) ALL' >> /etc/sudoers"
run "echo '#{user_name} ALL=(ALL) NOPASSWD:ALL' >> /etc/sudoers"
run "echo 'alias sudo="sudo env PATH=$PATH"' >> /home/
#{user_name}/.bashrc"
ごめんなさい、手抜きです。
23. capistranoでやってみよう
5)sshの設定(1)
set :key_path, Capistrano::CLI.ui.ask('key path: ')
set :ssh_dir, "/home/#{user_name}/.ssh"
run "mkdir #{ssh_dir}"
run "chown #{user_name}:#{group} #{ssh_dir}"
upload("#{key_path}/id_rsa.pub", "#{ssh_dir}/", :via => :scp)
run "cat #{ssh_dir}/id_rsa.pub >> #{ssh_dir}/authorized_keys"
run "chmod 600 #{ssh_dir}/authorized_keys"
run "chown #{user_name}:#{group} #{ssh_dir}/authorized_keys"
run "rm #{ssh_dir}/id_rsa.pub"
24. capistranoでやってみよう
6)sshの設定(2)
run "sed -i 's/^#Port.*$/Port 15001/' /etc/ssh/sshd_config"
run "sed -i 's/^GSSAPIAuthentication.*$/GSSAPIAuthentication
no/' /etc/ssh/sshd_config"
run "sed -i 's/^PasswordAuthentication.*$/
PasswordAuthentication no/' /etc/ssh/sshd_config"
run "sed -i 's/^PermitRootLogin.*$/PermitRootLogin no/' /etc/
ssh/sshd_config"
run "sed -i 's/^UsePAM.*$/UsePAM no/' /etc/ssh/sshd_config"
run "service sshd restart"
25. capistranoでやってみよう
7)rbenvのインストール(1)
run "yum install -y build-essential libreadline-dev libssl-dev
zlib1g-dev git-core curl readline readline-devel zlib zlib-devel
openssl-devel"
run "git clone git://github.com/sstephenson/rbenv.git /usr/
local/rbenv"
run "mkdir /usr/local/rbenv/shims /usr/local/rbenv/versions"
run "chgrp -R #{group} /usr/local/rbenv"
run "chmod -R g+rwxXs /usr/local/rbenv"
26. capistranoでやってみよう
8)rbenvのインストール(2)
run "git clone git://github.com/sstephenson/ruby-build.git /usr/
local/ruby-build"
run "cd /usr/local/ruby-build ; ./install.sh"
run "echo 'export RBENV_ROOT="/usr/local/rbenv"' >> /etc/
profile.d/rbenv.sh"
run "echo 'export PATH="/usr/local/rbenv/bin:$PATH"' >> /etc/
profile.d/rbenv.sh"
run "echo 'eval "$(rbenv init -)"' >> /etc/profile.d/rbenv.sh"
27. capistranoでやってみよう
9)rubyのインストール
run "ruby-build --definitions"
set :ruby_version, Capistrano::CLI.ui.ask('version: ')
run "rbenv install #{ruby_version}"
run "rbenv global #{ruby_version}"
run "rbenv rehash"
28. capistranoでやってみよう
9)rubyのインストール
run "ruby-build --definitions"
set :ruby_version, Capistrano::CLI.ui.ask('version: ')
run "rbenv install #{ruby_version}"
run "rbenv global #{ruby_version}"
run "rbenv rehash"
29. capistranoでやってみよう
10)chefのインストール
run "gem install chef --no-rdoc --no-ri"
run "gem install rack --no-rdoc --no-ri"
run "gem install bundler --no-rdoc --no-ri"
30. capistranoでやってみよう
11)chefの作業ディレクトリ
run "mkdir /home/#{user_name}/work /home/#{user_name}/
work/chef"
run "chown -R #{user_name}:#{group} /home/#{user_name}/
work"
run "chmod -R 750 /home/#{user_name}/work"