見出し画像

ansibleでRHEL8の初期セットアップ~テストコードを添えて~

どうも2人目です。
最近AWS上にRed Hat Enterprise Linux 8のサーバを立てる機会がありましたので備忘として残そうと思います。

特にAnsibleを使う方の参考になれば幸いです。
最近はテスト駆動の考え方も流行ってきているので、テストコードも書いておきます。

前提

環境:AWS(EC2)
OS:Red Hat Enterprise Linux 8
構成管理ツール:Ansible
テストツール:ServerSpec

TimeZone(jst)対応

日本語のOSを選択すれば問題ないと思いますが、念のため設定しておくことをおススメします。

Playbook 

- name: set timezone to Asia/Tokyo
  timezone:
    name: Asia/Tokyo

テストコード

describe command('date') do 
  it { should return_stdout /JST/ } 
end


IPv6無効化

IPv6は使わないのであれば無効化しておきましょう。

Playbook

- name: "set ipv6 disable"
  sysctl:
    name: net.ipv6.conf.all.disable_ipv6
    value: '1'
    sysctl_set: yes

テストコード

describe command('ip a') do
  its(:stdout) { is_expected.to_not match(/inet6/) }
end


SELinux 無効化

デフォだとSELinuxは有効ですが、何かと接続確認などで悪さをするので必要なければ無効化しましょう。

Playbook

- name: Disable selinux
  selinux: state=disabled

テストコード

describe file('/etc/selinux/config') do
  it { should exist }
  its(:content) { should match 'SELINUX=disabled' }
end


net-tools インストール

デフォだとインストールされていません。とりあえずifconfigを使いたい場合は、最初に使えるようにしておきましょう。

Playbook

- name: "install bind-utils"
  yum:
    name: bind-utils

テストコード

describe package('net-tools') do
  it { is_expected.to be_installed }
end

describe command('which nslookup') do
  its(:stdout) { is_expected.to match %r{/usr/bin/nslookup} }
end



この記事が気に入ったらサポートをしてみませんか?