LoginSignup
3
2

More than 5 years have passed since last update.

AnsibleでRHEL7系にCloudWatch Logs Agentをいれた話

Last updated at Posted at 2018-06-16

背景

数十台のRHEL 7.2のサーバーにCloudWatch Logs Agen(以下、CWLAgent)を導入することタスクが発生した。省力化というより構成管理の観点からAnsibleでCWLAgentを導入することになった。

環境

Ansibleサーバー
OS: RHEL7.5
Ansible: 2.5

ServerA(実行対象)
OS: RHEL7.5

個人的で触れる環境がRHEL7.5しかなかった、、、

目的

いい感じにAnsibleで対象のサーバーにCWLAgentを導入すること

playbook/task

サーバーごとにplaybookを作っています。
命名法はhost名.yml

ServerA.yml
- hosts: ServerA
  remote_user: ansible
  become: yes
  become_user: root
  vars_files:
    - /etc/ansible/variable/test/host_vars/ServerA_vars
    - /etc/ansible/variable/test/group_vars/GroupA_vars

  roles:
#    - common
     - cloud_watch_logs_agent

この記事のメインは下のroleです。(正しくないroleです。正しいのは章:'改善したrole'を参照)

roles/cloud_watch_logs_agent/tasks/main.yml
- name: copy Install Script
  copy:
    src: tmp/awslogs-agent-setup.py
    dest: /tmp
    owner: root
    group: root
    mode: 0755

- name: copy awslogs.conf
  copy:
    src: tmp/awslogs.conf
    dest: /tmp/awslogs.conf
    owner: root
    group: root
    backup: yes
    mode: 755

- name: install AWS CloudWatch Logs Agent
  shell: python /tmp/awslogs-agent-setup.py -n -r ap-northeast-1 -c /tmp/awslogs.conf

- name: enabled awslogs
  service:
    name: awslogs
    enabled: yes

*文字に変な色ついてる。 なんでだろ?

このplaybook(role)を実行しても、CWLAgentは導入されるけど、自動起動が有効化(enabled)にならない。
ansibleでやりたいことに自動起動も含まれているので、どうにかしたい。
いろいろ試した

serviceモジュール がおかしいのかな? (原因不明)

ansibleにはserviceモジュール、systemdモジュールがあることがわかった。
serviceモジュールをsystemdモジュールに置き換えた。それ以外はオプションも含めて変更なし。

だめだ。自動起動設定入ってない

もっといろいろ原因を探した。原因がpythonスクリプトで導入するという意味のわからんことをやっているかもしれないとか思ってた。
深夜2時くらいまでAnsible実行前の状態のサーバーを再構築してPlaybook流すのループとか5回くらいやった

改善したtask

これでいけた。(原因はわかってないんだが) できたときは 初めて自分で自分をほめたいと思いますって思った

roles/cloud_watch_logs_agent/tasks/main.yml
- name: copy Install Script
  copy:
    src: tmp/awslogs-agent-setup.py
    dest: /tmp
    owner: root
    group: root
    mode: 0755

- name: copy awslogs.conf
  copy:
    src: tmp/awslogs.conf
    dest: /tmp/awslogs.conf
    owner: root
    group: root
    backup: yes
    mode: 755

- name: install AWS CloudWatch Logs Agent
  shell: python /tmp/awslogs-agent-setup.py -n -r ap-northeast-1 -c /tmp/awslogs.conf

- name: enabled awslogs
  service:
    name: awslogs.service
    enabled: yes

serviceモジュールの対象のサービスを指定する部分をawslogs.serviceに変更したらいけた

あとがき

なにが原因なんだ。

それよりも、ymlファイルの/tmp/の色が緑になっている方が気になる。
PCがMacなんだが、そんなのが関係しているのかな?

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