Upgrade to Pro — share decks privately, control downloads, hide ads and more …

職人任せにしないインフラ構築/運用 ~ DevOps時代を生きぬくために ~

職人任せにしないインフラ構築/運用 ~ DevOps時代を生きぬくために ~

株式会社ヌーラボ

February 05, 2014
Tweet

More Decks by 株式会社ヌーラボ

Other Decks in Technology

Transcript

  1. "OTJCMF w1ZUIPO੡ͷαʔόߏ੒؅ཧπʔϧ wႈ౳ੑԿ౓࣮ߦͯ͠΋݁Ռ͸ಉ͡ wαʔόଆ͸1ZUIPOͱTTIE͚ͩ -­‐  name:  install  requirement  system  packages

         action:  yum  name={{  item  }}      with_items:          -­‐  make          -­‐  gcc          -­‐  curl
  2. 'BCSJD w1ZUIPO੡ͷσϓϩΠπʔϧ wγΣϧίϚϯυΛྻڍ͍ͯ͘͠ɺ γϯϓϧͳهड़ @task   def  start_tomcat():    

     sudo('rm  -­‐f  /usr/java/tomcat/temp/*.{index,data}')      sudo('service  tomcat  start’)      print  green("Tomcat  started!!!")
  3. 1BDLFS wΠϝʔδ ".*  ࡞੒πʔϧ w"OTJCMFΛىಈ࣌ ʹ࣮ߦՄೳ wఆظ࣮ߦͯ͠".* Λఆظతʹ࠷৽ʹ {

         "builders":  [{          "type":  "amazon-­‐ebs",          "region":  "us-­‐west-­‐2",          "source_ami":  "ami-­‐ccf297fc",          "instance_type":  "m1.small",          "ssh_username":  "ec2-­‐user",          "ami_name":  "base  {{isotime}}"      }],      "provisioners":  [          {              "type":  "ansible-­‐local",              "playbook_file":  "ansible/ami.yml",              "role_paths":  [                      "ansible/roles/base"              ]          }      ]   }
  4. TFSWFSTQFD w34QFD෩ͷαʔ όߏ੒؅ཧς ετπʔϧ wՔಇதͷαʔ όʹ͔͚ͯɺ ઃఆΛςετ describe  "#{ENV['TARGET_HOST']}.spec"  do

      !    describe  service('tomcat')  do          it  {  should  be_running      }          it  {  should_not  be_enabled  }      end   !    describe  port(8080)  do          it  {  should  be_listening  }      end   ! ...
  5. ઀ଓઌϗετͷ؅ཧΛ౷Ұ $  tree   .   ├──  ansible   │

         └──  ansible.cfg   ├──  fabfile   │      └──  __init__.py   ├──  serverspec   │      └──  spec   │                └──  spec_helper.rb   └──  ssh.config RSpec.configure  do  |c|    options  =          Net::SSH::Config.for(c.host,  files=[‘../ssh.config'])   ... env.use_ssh_config  =  True   env.ssh_config_path  =  'ssh.config' [ssh_connection]   ssh_args  =  -­‐F  ../ssh.config wTTIDPOpH͸ಉҰͷ΋ͷΛྲྀ༻
  6. ӡ༻࣌ͷ*'ΛҰݩԽ @task   def  hosts_update():          """

             શϗετͷ  /etc/hosts  Λߋ৽͢Δ          """          with  lcd('ansible'):                  local("ansible-­‐playbook  -­‐i  all.yml  -­‐-­‐tags=hosts_setup") -­‐  name:  copy  hosts  file      copy:  src=etc/hosts  dest=/etc/hosts      tags:  hosts_setup wӡ༻खॱ͸ۃྗ'BCSJDʹدͤΔ