東京生まれHOUSE MUSIC育ち

悪そうな奴はだいたい友達なの?

ansibleを使って自動構築する試み

録画サーバを再インストールした時に思ったのは、「とても面倒臭い」です。

なんとか自動化できないかと考えて、冪等性を担保できるansibleを活用しようと考えました。

そこで、SELinuxとFirewallを無効化するplaybookを作りました。作ったといっても、ほぼ参考にした記事からなのですが。。。

playbookを作るのは手間がかかりますが、これを活用できれば環境構築が楽になりますね。もう少し勉強していきたいです。

---
- name: SELinuxとFirewallのPythonモジュールをインストール
  yum: name={{ item }} state=installed
  with_items:
   - libselinux-python
   - libsemanage-python
   - firewalld

- name: SELinuxの無効化
  selinux: state=disabled
  register: selinux

- name: SSHのポート番号の取得
  set_fact:
    ssh_port: "{{ hostvars[inventory_hostname].ansible_port if 'ansible_port' in hostvars[inventory_hostname] else 22 }}"
  when: selinux.reboot_required

- name: マシンのリブート
  shell: "sleep 2 && reboot"
  async: 1
  poll: 0
  when: selinux.reboot_required

- name: マシンの停止を待ち合わせ
  local_action: wait_for host={{ inventory_hostname }} port={{ ssh_port }} state=stopped
  when: selinux.reboot_required

- name: マシンの起動を待ち合わせ
  local_action: wait_for host={{ inventory_hostname }} port={{ ssh_port }} state=started
  when: selinux.reboot_required

- name: firewalldの無効化
  systemd:
    name: firewalld
    state: stopped
    enabled: false

参考にした記事

以下の記事がとても参考になりました。