備忘録

家で構築作業。以下にシェルをメモ(動作保証しません)

=== setup.sh ===

#!/bin/sh
# Apply to CentOS 6.6 x86_64 Full Desktop VirtualBox VDI Virtual Computer, 
# available by https://virtualboximages.com/


function print_title()
{
msg=${1}

echo "======>"
echo "======>"
echo "======> ${msg} #######"
echo "======>"
echo "======>"

}

print_title 'Installing CI Tools for CentOS 6.6'
print_title 'Prepare to installing'
yum install -y git

print_title 'Installing ruby. Take a few minutes '
git clone https://github.com/sstephenson/rbenv.git ~/.rbenv
git clone https://github.com/sstephenson/ruby-build.git~/.rbenv/plugins/ruby-build
echo 'export PATH="$HOME/.rbenv/bin:$PATH"' >> ~/.bash_profile
echo 'eval "$(rbenv init -)"' >> ~/.bash_profile
source ~/.bash_profile
yum groupinstall -y "Development tools"
yum install -y zlib zlib-devel openssl openssl-devel
rbenv install 2.0.0-p598
rbenv global 2.0.0-p598
gem update --system

print_title 'Installing serverspec'
gem install rspec
gem install serverspec
# For using this, execute 'source ~/.bash_profile' and 'serverspec-init'.

print_title 'Installing Chef & knife-solo'
mkdir ~/setup_work
curl -L http://www.opscode.com/chef/install.sh >~/setup_work/install.sh
chmod +x ~/setup_work/install.sh
~/setup_work/install.sh -v 11.04.0
gem install knife-solo

print_title 'Installing Fabric'
yum groupinstall -y "Base"
yum install -y zlib-devel tk-devel tcl-devel sqlite-devel ncurses-devel gdbm-devel readline-devel bzip2-devel db4-devel openssl-devel python-setuptools python-devel
easy_install pip
pip install setuptools --no-use-wheel --upgrade
pip uninstall -y pycrypto
echo "### NOTE: If failed to uninstall pycrypto, its ok. ###"
pip install --upgrade setuptools
pip install PyCrypto==2.3
pip install fabric
fab -V

print_title 'Installing Qcow2 to tarball converter For Docker'
yum install -y http://dl.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm
yum install -y libguestfs-tools
yum install -y libvirt virt-manager libvirt-python python-virtinst qemu kvm virt-viewer
yum install -y virt-top

print_title 'Installing Jenkins'
yum -y install java-1.7.0-openjdk
wget -O /etc/yum.repos.d/jenkins.repo http://pkg.jenkins-ci.org/redhat/jenkins.repo
rpm --import http://pkg.jenkins-ci.org/redhat/jenkins-ci.org.key
yum -y install jenkins
chkconfig jenkins on
service jenkins start

print_title 'Installing Docker'
sudo rpm --import http://dl.fedoraproject.org/pub/epel/RPM-GPG-KEY-EPEL-6
yum -y install http://dl.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm
yum -y install docker-io
service docker start
chkconfig docker on

print_title 'Done !!!'

=== init_base_image.sh ===

#!/bin/sh -x
host='127.0.0.1'
user='root'
ssh_alt_port='10222'

scp -P ${ssh_alt_port} setup.sh ${user}@${host}:/root/setup.sh
ssh -p ${ssh_alt_port} ${user}@${host} chmod +x /root/setup.sh
ssh -p ${ssh_alt_port} ${user}@${host} /root/setup.sh

=== rollback.sh ===

#!/bin/sh
base_image='4867f9d0aae2'
ssh_alt_port='10222'

echo "=====> Destroy old container."
result="$(docker ps -a | grep ${base_image} | awk '{print$1}')"

for container_id in ${result}
do
docker rm -f ${container_id}
done

echo "=====> Launch new container."
docker run -d -p ${ssh_alt_port}:22 ${base_image} /usr/sbin/sshd -D

echo "=====> Done !!! You can login ${host}:${ssh_alt_port}"

===spechelper.rb ===

text

require 'serverspec'require 'net/ssh'set :backend, :sshif ENV['ASK_SUDO_PASSWORD']  begin    require 'highline/import'  rescue LoadError    fail "highline is not available. Try installing it."  end  set :sudo_password, ask("Enter sudo password: ") { |q| q.echo = false }else  set :sudo_password, ENV['SUDO_PASSWORD']endhost = ENV['TARGET_HOST']options = Net::SSH::Config.for(host)options[:user] ||= Etc.getloginoptions[:password] = ENV['LOGIN_PASSWORD']set :ssh_options, options[:password]set :host,        options[:host_name] || hostset :ssh_options, options# Disable sudo# set :disable_sudo, true# Set environment variables# set :env, :LANG => 'C', :LC_MESSAGES => 'C'# Set PATH# set :path, '/sbin:/usr/local/sbin:$PATH'

===tar convertor ===

# For openstack's image, download at https://github.com/rcbops/oz-image-build# Introduced by openstack manual.virt-tar-out -a centos60_x86_64.qcow2 / - | gzip --best >centos60.tar.gz# And, ubuntu server, execute below commandcat centos60.tar.gz | sudo docker import - kitaimage# Refer Docker install. http://hidemium.hatenablog.com/entry/2014/05/04/185550#http://hidemium.hatenablog.com/entry/2014/05/05/042322# save� load