2
1

More than 3 years have passed since last update.

Ansibleがメチャクチャ便利だった

Last updated at Posted at 2020-03-08

初めて触るAnsible

複数のAWS EC2にOS初期設定を行う。お約束のことなので、できるだけ自動化したい。
AWSマネジメントコンソールにて複数のサーバを用意する必要があったので
構成管理ツールのAnsibleを使った。

手順

  1. EC2セットアップ
  2. pythonをインストール
  3. awscliをインストール
  4. ansibleをインストール
  5. 初期設定ファイルを取得
  6. 再起動

EC2セットアップ

AWSマネジメントコンソールにてEC2をセットアップする。用意する際にAMIを指定するようにする。
バージョン等がずれると再度インストールしなおしになるためAMIで確認することをお勧めします。

今回はRHELをインストールしたかったので下記の方法でAMIを取得した
http://blog.serverworks.co.jp/tech/2019/06/18/post-71160/

sshで接続できることを確認

EC2を構築する際にキーペアが発行される、
もしくは既存のキーペアを使ってssh接続できることを確認します。

pythonをインストール

EPELリポジトリからpython3をyumでインストール
https://aws.amazon.com/jp/premiumsupport/knowledge-center/ec2-enable-epel/

$ sudo su -
$ yum install -y https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm
$ yum -y install python3
$ yum -y install python3-pip
$ pip3 install --upgrade pip

awscliをインストール

$ sudo su -
$ pip3 install --upgrade awscli

ansibleをインストール

$ pip3 install --upgrade ansible
$ mkdir -p /opt/ansible

playbookを作成して実行

一から作るのは勉強になりますが、
今回は以下のリポジトリを参考にさせていただきました。
https://github.com/kouji-kojima/sample-ansible-el7-init

  1. ホスト名
  2. 時刻同期
  3. タイムゾーン
  4. 文字コード などなど
$ ansible-playbook -i localhost site.yml --private-key=/path/key.pem -vvv

後処理

# epel無効化
$ sed -i 's/enabled=1/enabled=0/g' /etc/yum.repos.d/epel* 
$ systemctl restart sshd
# error確認
$ egrep -i "error|warning|fatal|fail" /var/log/messages

問題なければ、このイメージをコピーして配布する。
同一の設定のOSを複数セットアップする際にはめっちゃくちゃ便利です。

余談

EC2にはユーザーデータを利用することもできる。
https://docs.aws.amazon.com/ja_jp/AWSEC2/latest/UserGuide/user-data.html

2
1
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
1