0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Ansibleを使用して、EC2へのApacheインストール自動化作業

Posted at

はじめに

Ansibleというすごい便利な自動化ツールがあると知りましたので、実際に試してみました。

構成

[ローカルPC(WSLまたはDocker)※今回はDocker使用]
↓ SSH + Ansible実行
[AWS EC2インスタンス(Amazon Linuxなど)]

構築手順

ステップ➀:EC2作成※AmazonLinux2使用
・EC2を起動(パブリックIP付き)

・キーファイルをローカルに保存

・一応、httpがインストールされていないことを確認
image.png

ステップ➁:ローカルにAnsible実行環境を用意
・Dockerコンテナを作成するディレクトリ配下に下記ファイルを準備
➀Dockerfile

FROM ubuntu:22.04
RUN apt update && apt install -y python3-pip ssh ansible

➁hosts.ini(Ansible用インベントリファイル)

[web]
[EC2のDNS名] ansible_user=ec2-user ansible_ssh_private_key_file=./[EC2のキーファイル名]

➂EC2用のキーファイル

➃playbook.yaml(Ansible用playbook)

# install_apache.yml
- name: Install Apache
  hosts: web
  become: true
  tasks:
    - name: Install httpd
      yum:
        name: httpd
        state: present

    - name: Start service
      service:
        name: httpd
        state: started
        enabled: true

・Dockerを使ってAnsibleコンテナで実行

 実行コマンド

docker build -t ansible .

image.png

docker run -it --name [作成するコンテナ名] `  -v "ローカルPC上に配置したEC2キーファイルの絶対パス:/[キーファイル名]" ` -v "[ローカルPC上に配置したplaybook.yamlの絶対パス]:/playbook.yaml"` -v "[ローカルPC上に配置したhosts.iniの絶対パス]:hosts.ini"`  ansible /bin/bash

ステップ➂: 起動後のチェック
・コンテナ内で以下を確認

ls /

image.png

EC2との疎通確認

ansible -i /hosts.ini web -m ping

image.png

EC2へのApacheインストール

ansible-playbook -i /hosts.ini playbook.yaml

image.png

一応、httpがインストールされていることを確認
image.png

EC2へApacheインストールされているかブラウザで確認

http://[EC2のパブリックIP]

image.png

おわりに

正直すごく効率的なツールだと感じました。個人的には、IaCでCloudFormationやTerraformを使って、インフラの作成を実施→その他のMW製品のインストールや各種設定ファイルの設定にAnsibleを活用するといった分け方が良いのかなと感じました。

明日から、クラウドの業務が始まりますので、積極的にこういった自動化ツールを活用していけるように知識のキャッチアップをしていきます!

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

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?