無能が苦悩したメモ

無能な著者が学んだことを忘れないための覚え書きです...

Ansible:CentOSのctrl-alt-del.targetを無効にする

CentOSRHELでは、キーボードからCtrl-Alt-Delを入力するとOSの再起動が始まります。何かしらのサービスを提供しているサーバで誤ってCtrl-Alt-Delを打つと、サービスが一時的に停止してしまいます(恐ろしいですね…)。また、Ctrl-Alt-DelはWindowsサーバだとサインイン時に使うので、なおさら入力ミスしてしまう可能性があります。


というわけで、Ctrl-Alt-Delによる再起動を無効化しておく方がよいです。

ターミナルでctrl-alt-del.targetを無効化

ctrl-alt-delを無効にするには、systemctlコマンドでctrl-alt-del.targetをマスクします、

# echo "実行前ステータス確認" > /dev/null
# systemctl status ctrl-alt-del.target
● reboot.target - Reboot
   Loaded: loaded (/usr/lib/systemd/system/reboot.target; disabled; vendor preset: disabled)
   Active: inactive (dead)
     Docs: man:systemd.special(7)
#
# echo "ctrl-alt-delをマスク" > /dev/null
# systemctl mask ctrl-alt-del.target
#
# echo "実行後ステータス確認" > /dev/null
# systemctl status ctrl-alt-del.target
● ctrl-alt-del.target
   Loaded: masked (/dev/null; bad)
   Active: inactive (dead)


ただ、これだけではctrl-alt-delが2秒以内に7回以上押された場合、再起動が実行されてしまうそうです。ctrl-alt-delが2秒以内に7回以上押されても再起動されないように「/etc/systemd/system.conf」を編集し、CtrlAltDelBurstActionというパラメータにnoneを設定します。

~ 省略 ~
#CtrlAltDelBurstAction=reboot-force
~ 省略 ~

~ 省略 ~
#CtrlAltDelBurstAction=reboot-force
CtrlAltDelBurstAction=none
~ 省略 ~

Ansibleでctrl-alt-del.targetを無効化

先ほどの内容をAnsibleで記述すると以下のようになります。


systemdモジュールでctrl-alt-del.targetをマスクし、copyモジュールで/etc/systemd/system.confを書き換えています。

---
- hosts: all
  become: yes
  become_method: su
  tasks:
    - name: disable ctrl-alt-del.target
      systemd:
        name: ctrl-alt-del.target
        masked: yes
    - name: copy system.conf
      copy:
        src: system.conf
        dest: /etc/systemd/system.conf
        mode: 0644
        owner: root
        group: root
        backup: yes

[Manager]
CtrlAltDelBurstAction=none