[Elastic Beanstalk] commandsとcontainer_commandsの違い

commands

  • シェルコマンドを実行可能。
  • アルファベット順に処理される。
  • アプリケーションとWebサーバーがセットアップされ、アプリケーションのバージョンファイルが抽出される前に実行される。

container_commands

  • シェルコマンドを実行可能。
  • アプリケーションとWebサーバーがセットアップされ、アプリケーションバージョンのアーカイブが抽出された後、アプリケーションのバージョンが展開される前に実行される。
  • アルファベット順に処理される。
  • container_commands以外は、アプリケーションソースコードを抽出する前に実行される。
  • 1つのインスタンスが”AutoScaling Group”のleaderとなり、”leader_only: true”の場合、コマンドはleaderのインスタンスでしか実行されない。
packages:
  yum:
    tree: []
    dstat: []
    sysstat: []
    htop: []
    iotop: []

commands:
  install-mod_extract_forwarded:
    command: "sudo yum -y install mod_extract_forwarded --enablerepo=epel"
    ignoreErrors: true

container_commands:
  remove-webxml:
    command: "rm -f /etc/tomcat7/web.xml"
    ignoreErrors: true
  replace-webxml:
    command: "cp -f /tmp/deployment/application/ROOT/.ebextensions/web.xml /etc/tomcat7/"
    ignoreErrors: true
  overwrite-mod_extract_forwarded:
    command: "cp -f /tmp/deployment/application/ROOT/.ebextensions/mod_extract_forwarded.conf /etc/httpd/conf.d/mod_extract_forwarded.conf"
    ignoreErrors: true
    leader_only: true

files:
  "/opt/elasticbeanstalk/hooks/appdeploy/pre/server-setup.sh":
    mode: "000755"
    owner: root
    group: root
    content: |
      #!/bin/bash
      ## change hostname
      HOSTNAME="test.com"

      ## file parameter check
      if test "$HOSTNAME" = "" ;then
        echo "HOSTNAME Parameter error"
        exit 1
      fi
      echo "127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4 $HOSTNAME" > /etc/hosts
      echo "::1         localhost6 localhost6.localdomain6" >> /etc/hosts
      sed -i s/localhost.localdomain/$HOSTNAME/ /etc/sysconfig/network
      hostname $HOSTNAME

      ## change timezone
      cp -fp /usr/share/zoneinfo/Asia/Tokyo /etc/localtime
      sed -i s@\"UTC\"@\"Asia/Tokyo\"@ /etc/sysconfig/clock

      ## stop iptables
      chkconfig iptables off
      chkconfig ip6tables off
      chkconfig --list | grep ip

      exit 0