mackerel-agentをubuntuにインストールするときに作成したansibleのめも
-
環境
- ubuntu16.04
- ansible2.5
-
やったこと
- Ubuntu環境のため、Ubuntu以外で実行したらFailさせる
- AutoScaling環境を使うため、Mackerelの機能である自動退役モードを設定する
- PackerでAMIを作成するため、インストール・設定後にidファイルを削除する
- (※ mackerel_agent_apikeyはansible-vaultで暗号化する必要あり)
-
参考: AnsibleでインストールするためのMackerel公式のGitHubがある
roles/mackerel/tasks/main.yml
---
- name: Import mackerel GPG key v2
apt_key: url=https://mackerel.io/file/cert/GPG-KEY-mackerel-v2 state=present
failed_when:
- ansible_distribution != 'Ubuntu'
become: yes
- name: Add repository mackerel v2
apt_repository: repo='deb http://apt.mackerel.io/v2/ mackerel contrib' state=present update_cache=yes
failed_when:
- ansible_distribution != 'Ubuntu'
become: yes
- name: Install mackerel-agent
apt:
name: mackerel-agent
state: latest
update_cache: yes
force: yes
dpkg_options: 'force-confdef,force-confold'
become: yes
- name: Install mackerel-agent-plugins
apt:
name: mackerel-agent-plugins
state: latest
update_cache: yes
force: yes
dpkg_options: 'force-confdef,force-confold'
when: mackerel_use_plugins
become: yes
- name: Install mackerel-check-plugins
apt:
name: mackerel-check-plugins
state: latest
update_cache: yes
force: yes
dpkg_options: 'force-confdef,force-confold'
when: mackerel_use_plugins
become: yes
- name: Update agent config
template:
src: mackerel-agent.conf.j2
dest: /etc/mackerel-agent/mackerel-agent.conf
become: yes
- name: Set auto-retirement agent
template: src=auto-retirement.conf.j2 dest=/etc/default/mackerel-agent
become: yes
- name: Apply mackerel-agent conf
systemd:
name: mackerel-agent.service
state: reloaded
become: yes
- name: Enable mackerel-agent
systemd:
state: started
daemon_reload: yes
enabled: yes
name: mackerel-agent.service
become: yes
- name: Wait until created mackerel-id file
wait_for:
path: /var/lib/mackerel-agent/id
timeout: 30
- name: Stop service mackerel-agent if running for createAMI
systemd:
name: mackerel-agent.service
state: stopped
become: yes
- name: Check mackerel-id file for createAMI
stat:
path: /var/lib/mackerel-agent/id
become: yes
register: mackerel_id_file
- name: Delete mackerel-id file if exist for createAMI
file:
state: absent
path: /var/lib/mackerel-agent/id
become: yes
when: mackerel_id_file.stat.exists
roles/mackerel/templates/auto-retirement.conf.j2
AUTO_RETIREMENT=1
roles/mackerel/templates/mackerel-agent.conf.j2
apikey = "{{ mackerel_agent_apikey }}"
include = "/etc/mackerel-agent/*"
roles/mackerel/defaults/main.yml
mackerel_use_plugins: yes
mackerel_agent_start_on_setup: yes