近年Webアプリが増え、サーバの環境構築を行ったり、アプリのデプロイを行ったりする機会が増えてきました。しかし、いまだにこのようなサーバ作業をマニュアル頼りに手作業で行っていることもあるかと思います。環境構築やデプロイなどを何度も行う場合は自動化したいところです。 サーバ作業を自動化しようと考えたとき、最初に思い浮かぶのはシェルスクリプトを利用することではないでしょうか。シェルスクリプトを使って環境構築やリリースを自動化することは可能ですが、シェルスクリプトだけだと手間が掛かってしまう作業もあります。 例えば、リリースを行う環境が複数ある場合、scpでビルド成果物を送り、sshで接続してリリース用スクリプトを実行する、といった作業が環境ごとに必要になってしまいます。 また、ファイルの追記や修正などを行うシェルスクリプトが途中で失敗してしまった場合、シェルスクリプトを修正した後にそのまま再実