AnsibleでのCentOS 8の初期設定

black 技術(ITエンジニア向け)

サーバのローカルのAnsibleでGCP(GCE)のCentOS 8の初期設定をした際の記録です。

個人的な検証用途なので、SELinux・firewalldは一旦止めてしまっています。

事前準備

サーバのローカルからAnsibleを実行するには事前に下記が必要です。

dnf install epel-release
dnf install ansible

ディレクトリ・ファイル構造

必要最低限のファイルのみで構成しています。

centos8-init/
├── hosts
├── roles
│   └── system
│       └── tasks
│           └── main.yml
└── site.yml

詳細

hosts
[centos8-server]
localhost ansible_connection=local
site.yaml
- hosts: centos8-server
  roles:
    - system
main.yml
# パッケージアップデート
- name: dnf upgrade
  yum: name=* state=latest

# パッケージインストール
- name: dnf install
  yum:
    name: "{{packages}}"
  vars:
    packages:
      - langpacks-ja
      - vim

# ロケール事前確認
- name: check locale
  shell: localectl status
  register: check_localectl_result
  check_mode: no
  changed_when: false

# ロケール設定
- name: set locale
  shell: localectl set-locale LANG=ja_JP.utf8
  when: "'LANG=ja_JP.utf8' not in check_localectl_result.stdout"

# タイムゾーン設定
- name: set timezone to Asia/Tokyo
  timezone:
    name: Asia/Tokyo

# SELinux無効化
- name: disable SELinux
  selinux: state=disabled

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

補足

  • ansible-playbook -i hosts site.yml -Dで実行します。
  • 実行後にrebootが必要です。
  • dnfを実行するにはshell等でコマンドをそのまま書く必要があるようなので、dnfではなくyumを実行するようにしています。
Ansibleでdnfコマンドを使う際の注意 - Qiita
Ansible作成時に詰まったのでメモ。 2019/12/02現在の話。 環境はCentOS8、ansible2.9.1 dnf moduleコマンドがサポートされていない まだサポートされていない模様。 参考:

参考

コメント

タイトルとURLをコピーしました