LoginSignup
2
2

More than 5 years have passed since last update.

Windows上にDigdagサーバ構成を作る その2 Digdagサーバ

Last updated at Posted at 2016-10-27

http://qiita.com/pilot/items/e763a67675e264ed0347 の続き

http://qiita.com/pilot/items/f555dcf503f9880745c4http://qiita.com/pilot/items/8b6f14caa48ec018cbc6 とかぶる箇所あり

Digdagサーバマシン用Vagrantfile

Vagrant.configure("2") do |config|
  # Vagrant公式Box https://atlas.hashicorp.com/bento
  config.vm.box = "bento/centos-6.7"
  # ネットワーク設定
  config.vm.define :digsv1 do |digsv1|
    digsv1.vm.hostname = "digsv1"
    digsv1.vm.network :private_network, ip: "192.168.1.21", virtualbox__intnet: "dignet"
    digsv1.vm.network :forwarded_port, guest:    22, guest_ip: "0.0.0.0", host:  2201, host_ip: "127.0.0.1", id: "ssh"
    digsv1.vm.network :forwarded_port, guest: 65432, guest_ip: "0.0.0.0", host: 12201, host_ip: "127.0.0.1", id: "digdagUI"
  end
  config.vm.define :digsv2 do |digsv2|
    digsv2.vm.hostname = "digsv2"
    digsv2.vm.network :private_network, ip: "192.168.1.22", virtualbox__intnet: "dignet"
    digsv2.vm.network :forwarded_port, guest:    22, guest_ip: "0.0.0.0", host:  2202, host_ip: "127.0.0.1", id: "ssh"
    digsv2.vm.network :forwarded_port, guest: 65432, guest_ip: "0.0.0.0", host: 12202, host_ip: "127.0.0.1", id: "digdagUI"
  end
  # VirtualBox独自設定
  config.vm.provider "virtualbox" do |vb|
    # メモリ
    vb.memory = "768"
    # CPU
    vb.cpus = 1
    # サスペンドからの復帰時に時刻をホストと同期
    vb.customize ["guestproperty", "set", :id, "/VirtualBox/GuestAdd/VBoxService/--timesync-set-threshold", 10000]
  end
  config.vm.provision "shell", inline: <<-EOT
    # タイムゾーン設定
    rm /etc/localtime
    ln -s /usr/share/zoneinfo/Asia/Tokyo /etc/localtime
    # カーネルアップデート (Vagrantで共有フォルダマウントのため)
    yum update -y kernel
    # NTPサーバ設定
    yum -y install ntp
    cd /etc
    mv ntp.conf ntp.conf.org
    sed 's|\\(^server .*$\\)|#\\1|' ntp.conf.org >  ntp.conf
    echo                                         >> ntp.conf
    echo 'server ntp.nict.jp'                    >> ntp.conf
    echo 'server ntp1.jst.mfeed.ad.jp'           >> ntp.conf
    echo 'server ntp2.jst.mfeed.ad.jp'           >> ntp.conf
    echo 'server ntp3.jst.mfeed.ad.jp'           >> ntp.conf
    service ntpd start
    chkconfig ntpd on
    # OracleJDKインストール
    wget -nv --header "Cookie: oraclelicense=accept-securebackup-cookie" http://download.oracle.com/otn-pub/java/jdk/8u152-b16/aa0333dd3019491ca4f6ddbe78cdb6d0/jdk-8u152-linux-x64.rpm
    rpm -ivh jdk-8u152-linux-x64.rpm
    echo 'export JAVA_HOME=/usr/java/default' >> /etc/profile.d/jdk.sh
    rm -f jdk-8u152-linux-x64.rpm
    # Digdagインストール
    wget -nv https://dl.digdag.io/digdag-latest
    mv -f digdag-latest /usr/local/bin/digdag
    chmod +x /usr/local/bin/digdag
    cat << 'EOF' > /etc/init.d/digdag-server
~ ここに http://qiita.com/pilot/items/8b6f14caa48ec018cbc6#etcinitddigdag-server の内容を貼付け ~
EOF
    chmod +x /etc/init.d/digdag-server
    chkconfig --add digdag-server
    # td-agentインストール
    curl --tlsv1.2 -L https://toolbelt.treasuredata.com/sh/install-redhat-td-agent2.sh | sh
    # Embulkインストール
    wget -nv http://dl.embulk.org/embulk-latest.jar
    mv -f embulk-latest.jar /usr/local/bin/embulk
    chmod +x /usr/local/bin/embulk
    # Gitインストール
    yum  -y install curl-devel expat-devel gettext-devel openssl-devel zlib-devel perl-ExtUtils-MakeMaker
    cd /usr/local/src
    GIT_VERSION=2.14.1
    wget -nv https://www.kernel.org/pub/software/scm/git/git-${GIT_VERSION}.tar.gz
    tar xzf git-${GIT_VERSION}.tar.gz
    rm -f   git-${GIT_VERSION}.tar.gz
    cd      git-${GIT_VERSION}
    make prefix=/usr/local install
    # Gitのmanインストール
    mkdir man
    cd man
    wget https://www.kernel.org/pub/software/scm/git/git-manpages-${GIT_VERSION}.tar.gz
    tar xzf git-manpages-${GIT_VERSION}.tar.gz
    rm -f   git-manpages-${GIT_VERSION}.tar.gz
    cp -r * /usr/local/share/man
    # sudoersのsecure_pathに/usr/local/binが含まれていないので追加(gitを使用するため)
    export PATH=/usr/local/bin:${PATH}
    # Rubyインストール
    RUBY_VERSION=2.3.4
    yum -y install readline-devel
    git clone git://github.com/rbenv/rbenv.git /usr/local/rbenv
    echo 'export RBENV_ROOT="/usr/local/rbenv"'     >  /etc/profile.d/rbenv.sh
    echo 'export PATH="${RBENV_ROOT}/bin:${PATH}"'  >> /etc/profile.d/rbenv.sh
    echo 'eval "$(rbenv init -)"'                   >> /etc/profile.d/rbenv.sh
    source                                             /etc/profile.d/rbenv.sh
    git clone git://github.com/rbenv/ruby-build.git ${RBENV_ROOT}/plugins/ruby-build
    rbenv install ${RUBY_VERSION}
    rbenv global  ${RUBY_VERSION}
    cp -r ${RBENV_ROOT}/versions/${RUBY_VERSION}/share/man/* /usr/local/share/man
    # Rubyライブラリインストール
    gem install td
    # NFS共有ディレクトリマウント
    yum install -y nfs-utils
    mkdir -p                 /export/home
    chown -R vagrant.vagrant /export/home
    echo '192.168.1.31:/home/vagrant/nfs /export/home nfs tcp,rw,hard,intr 0 0' >> /etc/fstab
    service   rpcbind start
    chkconfig rpcbind on
    service   netfs   start
    chkconfig netfs   on
  EOT
  config.vm.provision "shell", privileged: false, inline: <<-EOT
    # TreasureData接続設定
    mkdir                                         ~/.td
    echo '[account]'                           >  ~/.td/td.conf
    echo 'user     = <ユーザ名>'              >> ~/.td/td.conf
    echo 'apikey   = <APIキー>'               >> ~/.td/td.conf
    echo 'endpoint = https://<エンドポイント>' >> ~/.td/td.conf
    # Digdagサーバ設定
    mkdir -p ~/digdag-server/bin ~/digdag-server/log ~/digdag-server/task-log ~/digdag-server/access-log ~/.config/digdag
    echo 'server.bind                  = 0.0.0.0'                                >  ~/.config/digdag/config
    echo 'server.access-log.path       = /home/vagrant/digdag-server/access-log' >> ~/.config/digdag/config
    echo 'server.access-log.pattern    = combined'                               >> ~/.config/digdag/config
    echo 'digdag.secret-encryption-key = ~ここに http://docs.digdag.io/command_reference.html#secret-encryption-key の値を貼付け'                                    >> ~/.config/digdag/config
    echo 'database.type                = postgresql'                             >> ~/.config/digdag/config
    echo 'database.host                = 192.168.1.11'                           >> ~/.config/digdag/config
    echo 'database.port                = 5432'                                   >> ~/.config/digdag/config
    echo 'database.ssl                 = true'                                   >> ~/.config/digdag/config
    echo 'database.database            = digdagdb'                               >> ~/.config/digdag/config
    echo 'database.user                = digdaguser'                             >> ~/.config/digdag/config
    echo 'database.password            = digdagpassword'                         >> ~/.config/digdag/config
    echo '~ここに http://qiita.com/pilot/items/8b6f14caa48ec018cbc6#homevagrantdigdag-serverbindigsvsh の内容を貼付け~' > ~/digdag-server/bin/digsv.sh
    chmod +x ~/digdag-server/bin/digsv.sh
    sudo service digdag-server start
    # Embulkプラグインインストール
    embulk gem install embulk-input-td embulk-output-td embulk-input-sftp embulk-output-sftp embulk-filter-timestamp_format embulk-filter-column embulk-filter-stdout
  EOT
end

2016/12/15追記:0.9.0から追加になったUIのポートへのポートフォワード追加 http://docs.digdag.io/releases/release-0.9.0.html#server-mode-changes

実行はvagrant up digsv1 & vagrant up digsv2 & vagrant up & vagrant reload & vagrant reload

ポイント

  1. Embulkのプラグインのインストールは一般ユーザ毎に行う
    • rootでインストールしても一般ユーザでの実行に効かない
    • Embulkをバージョンアップしたらプラグインをインストールし直すという話も聞いたことがある
  2. JCEのインストールが要るかも
    • 以前にembulkコマンドでSSLのEOFがどうのというエラーに効いたことがある
    # JCEインストール
    wget -nv --header "Cookie: oraclelicense=accept-securebackup-cookie" http://download.oracle.com/otn-pub/java/jce/8/jce_policy-8.zip
    unzip jce_policy-8.zip
    rm -f jce_policy-8.zip
    mv -f UnlimitedJCEPolicyJDK8/*.jar /usr/java/jdk1.8.0_112/jre/lib/security/
    rm -fr UnlimitedJCEPolicyJDK8

TODO

  1. ログローテート

続き

2
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
2