capistrano rails

30
Баш скриптики Capistrano Puppet Chef Cfengine Свой вариант Tuesday, November 2, 2010

Upload: -

Post on 13-Jan-2017

114 views

Category:

Data & Analytics


0 download

TRANSCRIPT

Баш скриптики

Capistrano

Puppet

Chef

Cfengine

Свой вариант

Tuesday, November 2, 2010

Tuesday, November 2, 2010

Tuesday, November 2, 2010

unless ::File.exists?(@new_resource.path) Chef::Log.info("Creating #{@new_resource} at #{@new_resource.path}") ::File.open(@new_resource.path, "w+") { |f| } @new_resource.updated = true end

Tuesday, November 2, 2010

Lorenz

Tuesday, November 2, 2010

mysql 5.0

git: /etc/configs(master)

php 5.3

Tuesday, November 2, 2010

mysql 5.0

git: /etc/configs(master)

php 5.3

Tuesday, November 2, 2010

mysql 5.0

git: /etc/configs(master)

php 5.3

mysql 5.1

git: /etc/configs(develop)

ruby 1.8.7

Tuesday, November 2, 2010

mysql 5.0

git: /etc/configs(master)

php 5.3

mysql 5.1

git: /etc/configs(develop)

ruby 1.8.7

Diff

apt-get install mysql=5.1

apt-get remove php

apt-get install ruby=1.8.7

git fetch && git checkout develop

Tuesday, November 2, 2010

ssh [email protected] apt-get install mysql=5.1ssh [email protected] apt-get remove phpssh [email protected] apt-get install ruby=1.8.7ssh [email protected] git fetch && git checkout develop

Tuesday, November 2, 2010

Tuesday, November 2, 2010

mysql 5.1

git: /etc/configs(develop)

ruby 1.8.7

Tuesday, November 2, 2010

mysql 5.1

git: /etc/configs(develop)

ruby 1.8.7

mysql 5.1

git: /etc/configs(develop)

ruby 1.8.7

Tuesday, November 2, 2010

mysql 5.1

git: /etc/configs(develop)

ruby 1.8.7

mysql 5.1

git: /etc/configs(develop)

ruby 1.8.7

Diff

Tuesday, November 2, 2010

3.4.7

1.3.103.3.7

3.3.7

2.3.7

3.3.7

3.3.3

3.2.7

3.3.5

3.3.74.3.7

3.3.1

3.3.7

3.5.9

3.6.9

3.5.7

3.3.7 3.6.4

3.7.7

3.4.7

3.1.7

3.1.53.1.7

3.3.2

Tuesday, November 2, 2010

global

variant package :ruby, :version => :staging

host

variant

specific

package :ruby

host web1: package :ruby

host web1: package :ruby,:version => :staging

package :ruby, :version => “1.8.6”

Tuesday, November 2, 2010

Tuesday, November 2, 2010

Server

Lib

Tools

RecipesLorenz

Tuesday, November 2, 2010

server1

server2

server3

server4

server5

server6

Worker1

Worker2

Tuesday, November 2, 2010

server1

server2

server3

server4

server5

server6

Worker1

Worker2

Tuesday, November 2, 2010

server1

server2

server4

server6

Worker1

Worker2

ssh

Tuesday, November 2, 2010

Tuesday, November 2, 2010

include_recipe :ruby

gem "ohai"

collector :command => "ohai", :attribute_name => "ohai", :filter => proc { |res| ActiveSupport::JSON.decode res }

Tuesday, November 2, 2010

Tuesday, November 2, 2010

directory parent.path directory parent.releases_path.to_s directory parent.shared_path.to_s parent.git_repo = git parent.repo_path.to_s, :url => parent.url, :revision => parent.revision directory :path => (parent.releases_path + parent.git_repo.sha).to_s, :copy => parent.repo_path.to_s

ln :to => (parent.releases_path + parent.git_repo.sha).to_s, :from => parent.current_path.to_s

Tuesday, November 2, 2010

gem "bundler"

%w{libmysqlclient-dev libxml2-dev libxslt1-dev libsqlite3-dev mysql-server}.each do |name| package nameend

include_recipe :unicornunicorn_config :path => "/etc/unicorn/test.rb" do listen({ 3050 => '{ :tcp_nodelay => true, :backlog => 100 }' }) worker_timeout 60 before_fork 'sleep 1'enddeploy "/srv/typo", :url => "http://github.com/fdv/typo.git", :revision => 'master' do after_update do path = (parent.releases_path + parent.git_repo.sha).to_s execute "cd #{path} && cp config/database.yml.example config/database.yml" execute "cd #{path} && bundle install" execute "cd /srv/typo/shared/repo && cp config/database.yml.example config/database.yml" execute "cd /srv/typo/shared/repo && rake db:create" execute "cd #{path} && rake db:migrate" end end runit_service :name => 'typo', :run_command => 'unicorn_rails -c /etc/unicorn/test.rb', :hup_restart => true

Tuesday, November 2, 2010

Tuesday, November 2, 2010

lorenz(current_state, new_state, versions) =

action1

action1

action1

...

actionN

Tuesday, November 2, 2010

state :ohai do include_recipe :ohaiend

transition :empty => :ohai do a 'apt-get update' a 'apt-get -q -y install ruby=1.8.7' a 'apt-get -q -y install rubygems=1.3.7' a 'apt-get -q -y install irb=0.9.5' a "gem install ohai -v 2" a "ohai"end

packages do runit '1.4' git '1.5' rubygems '1.3.7' irb '0.9.5' rake '0.8.3'end

package 'git-core', '1:1.5.6.5-3+lenny3.1'package 'ruby', '1.8.7'

gems do ohai '2' unicorn '2'end

Tuesday, November 2, 2010

http://github.com/prepor/lorenz

Tuesday, November 2, 2010