Ubuntuのaptコマンドによるパッケージのアップグレード、インストール作業を非対話形式で行う方法です。
背景
EC2インスタンス作成時にapt upgradeを「ユーザーデータまたは設定スクリプト」に登録しましたが、対話式の応答が求められてしまったようで、EC2インスタンス作成時の自動実行が失敗しました。
そこで、Ubuntu18.04をインストールする際に、「ユーザーデータまたは設定スクリプト」に追加の構築スクリプトを設定することで、インストール作業を簡略化する方法を調べました。
目的
aptコマンドによる非対話形式によるアップグレードが出来るようにする。
利用するサービス
- EC2
対象OS
- Ubuntu 18.04
- Ubuntu 17.10
- Ubuntu 17.04
- Ubuntu 16.10
- Ubuntu 16.04
手順
Debian 管理者ハンドブックにある様に、以下のようにすることで対話式の応答をせずに、パッケージのアップグレードが出来ます。
export DEBIAN_FRONTEND=noninteractive
apt update
yes '' | apt -y -o DPkg::options::="--force-confdef" \
-o DPkg::options::="--force-confold" upgrade
パッケージのインストールを行う場合には以下のようにします。
以下の例では、apacheとawscliをインストールしています。
export DEBIAN_FRONTEND=noninteractive
yes '' | apt -y -o DPkg::options::="--force-confdef" \
-o DPkg::options::="--force-confold" install apache2 awscli
まとめ
aptによるパッケージのインストール中に出る選択肢に対して自動回答するようにすることで、EC2でのOS構築が楽になりました。