【Cloud9】Ansible実行で同一VPCのEC2を操作する手順

devops

前回の記事では、ローカルPCからAnsibleでEC2を操作しました。今回は、Cloud9からAnsibleを実行してEC2を操作してみたいと思います。EC2と同一VPC内にCloud9を作成し、プライベートIPアドレスで接続するようにします。また、Ansible定義はCodeCommitで管理しているため、Cloud9からクローンします。

Cloud9からAnsibleを実行する手順

前提条件

  • EC2と同じVPC内にCloud9を起動
  • EC2のセキュリティグループで、Cloud9からの接続を許可
  • Ansibleの定義ファイルは下記で作成したものを使用

Ansible定義の変更点

上記の記事からAnsibleの定義を変更した箇所を記載します

  • inventoryファイルの対象サーバのIPアドレスをプライベートIPに変更
  • ssh_configファイルの対象サーバのIPアドレスをプライベートIPに変更
  • ~/.sshにプライベートキーを配置

Cloud9の起動

1.AWSにログインしてAWS Cloud9のコンソールを開く
2.左ペインの「Your environments」を開き、作成済みenvironmentsの「Open IDE」ボタンをクリックする

Cloud9でCodeCommitのリポジトリをクローンする

Ansible用のディレクトリを作成

$ mkdir ansible

作成したディレクトリに移動する

$ cd ansible

下記コマンドでCodeCommitのリポジトリからクローンする

$ git clone https://git-codecommit.ap-northeast-1.amazonaws.com/v1/repos/<リポジトリ名>

Ansibleを実行する

Cloud9で作成したEC2サーバにはAnsibleが入っていなかったので、実行前にインストールします。

$ sudo yum install ansible

下記コマンドでAnsibleを実行

$ ansible-playbook web.yml -i hosts/prd
PLAY [Deploy web server] *****************************************************************************************************************************************************************
(中略)
PLAY RECAP *******************************************************************************************************************************************************************************
10.0.0.155

まとめ

今回はCloud9からAnsibleを実行することに成功しました。Cloud9を対象EC2と同一VPC内に作成することにより、プライベートIPアドレスとSSHで接続できるため、よりセキュアな状態で実行することができました。

タイトルとURLをコピーしました