ssmでansibleしてみたメモ(ただのメモ)


事前作業

SSM

EC2にSSMエージェントを入れ、EC2をSSMの管理下に置く。SSM マネージドインスタンス から見えてればOK

参考リンク
https://dev.classmethod.jp/articles/troubleshooting-ssm-session-manager-configuration/

S3バケット作成

AnsibleのテンプレートをzipにしてS3に配置するため。

Ansibleテンプレート

MacでもEC2でもいいので作成する。

[root@ip-10-1-1-87 .ansible]# cat apache.yml 
- hosts: all
  become: yes
  tasks:
  - name: Apacheインストール
    yum: name=httpd state=latest
  - name: Apacheの起動
    service: name=httpd state=started enabled=yes
  - name: Apacheの起動確認
    shell: ps aux | grep httpd
    register: ps_result
    changed_when: false
  - debug: var=ps_result.stdout_lines
    when: ps_result 

zipコマンドでzip化し、
zipファイルをS3にアップロードする
S3パスは控えておく

今回はyamlファイル1個ですが、AnsibleのRoleなどディレクトリごと固めてもOK

[root@ip-10-1-1-87 .ansible]# zip ansible.zip apache.yml 
updating: apache.yml (deflated 33%)
[root@ip-10-1-1-87 .ansible]# ls
ansible.zip  apache.yml
[root@ip-10-1-1-87 .ansible]# aws s3 cp ansible.zip s3://xxx/ansible/

SSMでRun Command

SSM->Run Command->[Run command]ボタン の順でクリック
コマンドドキュメント"AWS-ApplyAnsiblePlaybooks"をクリック

[コマンドを実行する]をクリック

コマンドパラメータで以下を入力や選択し、[実行]をクリック

確認

ターゲットEC2にhttpdがちょい前にインストールと起動がされてる

[ec2-user@ip-10-1-1-165 ~]$ sudo systemctl status httpd.service
● httpd.service - The Apache HTTP Server
   Loaded: loaded (/usr/lib/systemd/system/httpd.service; enabled; vendor preset: disabled)
   Active: active (running) since Tue 2020-11-17 04:35:02 UTC; 27s ago
     Docs: man:httpd.service(8)
 Main PID: 2963 (httpd)
   Status: "Total requests: 0; Idle/Busy workers 100/0;Requests/sec: 0; Bytes served/sec:   0 B/sec"
   CGroup: /system.slice/httpd.service
           ├─2963 /usr/sbin/httpd -DFOREGROUND
           ├─2965 /usr/sbin/httpd -DFOREGROUND
           ├─2966 /usr/sbin/httpd -DFOREGROUND
           ├─2967 /usr/sbin/httpd -DFOREGROUND
           ├─2968 /usr/sbin/httpd -DFOREGROUND
           └─2969 /usr/sbin/httpd -DFOREGROUND