Template CentOS7

Page content

いつぞや仮想化に力を入れていた時、数十の仮想マシンを構築する時がありました。テンプレート作っては直して、を何度か繰り返していたので、それで出来たテンプレートです。まあまあ使えるかと。

CentOS7 構築記録

OS

$ cat /etc/redhat-release
CentOS Linux release 7.4.1708 (Core)

hostname

  • 恒久的に変更するにはこれ
    sudo hostnamectl set-hostname <your_hostname>
    

network

  • IP address

  • IPv6 を無効化 (optional)

    echo net.ipv6.conf.all.disable_ipv6 = 1 > /etc/sysctl.d/disableipv6.conf
    
  • DNS

  • ethtool

proxy (optional)

Qiita - CentOS7.1の初期設定手順(プロキシ環境有)

yum

  • コマンド
    yum update -y
    yum install epel-release
    
    yum groupinstall -y "Development Tools" "Legacy UNIX Compatibility"
    
    yum install -y aggregate aggregate-ios dstat glib2-devel iotop jq jwhois ltrace net-snmp net-snmp-devel net-snmp-utils nkf nmap ntp perl-CPAN rrdtool ruby ruby-devel screen strace telnet tree vim w3m wireshark yum-plugin-priorities yum-plugin-ps yum-utils zlib-devel zsh
    

ntp

  • ntpd を止める

    # systemctl stop ntpd.service
    
  • ntpdate コマンドで同期できることを確認

    # ntpdate 192.168.11.50
    11 Mar 05:06:35 ntpdate[30179]: the NTP socket is in use, exiting
    
  • vim /etc/ntp/step-tickers (ntpd 起動前に 対象のうち1つに対して ntpdate する)

    192.168.11.50
    192.168.101.50
    
  • vim /etc/ntp.conf

    restrict default kod nomodify notrap nopeer noquery
    restrict -6 default kod nomodify notrap nopeer noquery
    restrict 127.0.0.1
    restrict -6 ::1
    server 192.168.11.50 minpoll 6 maxpoll 6
    server 192.168.101.50 minpoll 6 maxpoll 6
    includefile /etc/ntp/crypto/pw
    keys /etc/ntp/keys
    logfile /var/log/ntpd.log
    
  • ntpd に反映

    # systemctl enable ntpd.service
    # systemctl start ntpd.service
    

timezone

  • sudo timedatectl で現状の確認

            Local time: Sun 2018-03-11 05:07:57 EDT
        Universal time: Sun 2018-03-11 09:07:57 UTC
            RTC time: Sun 2018-03-11 09:07:57
            Time zone: America/New_York (EDT, -0400)
        NTP enabled: yes
    NTP synchronized: yes
    RTC in local TZ: no
            DST active: yes
    Last DST change: DST began at
                        Sun 2018-03-11 01:59:59 EST
                        Sun 2018-03-11 03:00:00 EDT
    Next DST change: DST ends (the clock jumps one hour backwards) at
                        Sun 2018-11-04 01:59:59 EDT
                        Sun 2018-11-04 01:00:00 EST
    
  • sudo timedatectl set-timezone Asia/Tokyo でJSTにする

  • sudo timedatectl で確認

            Local time: Sun 2018-03-11 18:10:10 JST
        Universal time: Sun 2018-03-11 09:10:10 UTC
            RTC time: Sun 2018-03-11 09:10:10
            Time zone: Asia/Tokyo (JST, +0900)
        NTP enabled: yes
    NTP synchronized: yes
    RTC in local TZ: no
            DST active: n/a
    

ロケール

  • /etc/sysconfig/i18n ではないようだ。
  • localectl コマンドを使用するらしい
    $ localectl status
        System Locale: LANG=en_US.UTF-8
            VC Keymap: jp
            X11 Layout: jp,us
        X11 Variant: ,
    

グループ、ユーザ、sudo

  • グループ・ユーザ追加

    # groupadd -g 999 serveradmin
    # useradd -c "me" -d /home/george -m -g serveradmin -u 1194 -s /bin/zsh george
    
  • visudo で以下を追加

    #Defaults    always_set_home
    Defaults    !env_reset
    #
    Cmnd_Alias     SHUTDOWN = /sbin/shutdown,/usr/bin/reboot,/usr/bin/halt,/usr/bin/poweroff
    %serveradmin    ALL=(ALL)    ALL,!SHUTDOWN
    

syslog

  • syslogはreadだけはみんなから出来るように
    # find /var/log/ -type f | xargs chmod -c +r
    

logrotate

  • weekly でちょっと多めに12世代(約3ヶ月)保持, ファイル名に日付, 圧縮

    # vim /etc/logrotate.conf
    weekly
    rotate 15
    dateext
    compress
    #略
    
  • boot.log は独立設定しない

    rm /etc/logrotate.d/bootlog
    
  • 権限維持するように vim /etc/logrotate.d/syslog

    /var/log/boot.log
    /var/log/cron
    /var/log/maillog
    /var/log/messages
    /var/log/secure
    /var/log/spooler
    {
        sharedscripts
        postrotate
            create 0664 root root
            /bin/kill -HUP `cat /var/run/syslogd.pid 2> /dev/null` 2> /dev/null || true
        endscript
    }
    

SELinuxの無効化

  • setenforce 0 を実行
  • /etc/sysconfig/selinux を編集し、 SELINUX=disabled に書き換え

open-vm-tools (optional)

CentOS 7 以降は vmware-tools はもう推奨されないらしく、 open source で vmware full support の open-vm-tools を使うといいらしい。 (https://kb.vmware.com/s/article/2074713)

  • コマンド
    [root@localhost ~]# yum -y install open-vm-tools
    [root@localhost ~]# systemctl enable vmtoolsd.service
    [root@localhost ~]# systemctl start vmtoolsd.service
    
    [root@localhost ~]# systemctl status vmtoolsd.service
    ● vmtoolsd.service - Service for virtual machines hosted on VMware
        Loaded: loaded (/usr/lib/systemd/system/vmtoolsd.service; enabled; vendor preset: enabled)
        Active: active (running) since Sun 2018-03-11 03:22:45 EDT; 31s ago
        Docs: http://github.com/vmware/open-vm-tools
    Main PID: 29690 (vmtoolsd)
        CGroup: /system.slice/vmtoolsd.service
                └─29690 /usr/bin/vmtoolsd
    
    Mar 11 03:22:45 map-e systemd[1]: Started Service for virtual machines hosted on VMware.
    Mar 11 03:22:45 map-e systemd[1]: Starting Service for virtual machines hosted on VMware...
    

daemon の整理

$ systemctl list-unit-files -t service | grep enabled
auditd.service                                enabled
autovt@.service                               enabled
chronyd.service                               enabled
crond.service                                 enabled
dbus-org.freedesktop.NetworkManager.service   enabled
dbus-org.freedesktop.nm-dispatcher.service    enabled
getty@.service                                enabled
irqbalance.service                            enabled
kdump.service                                 enabled
lvm2-monitor.service                          enabled
microcode.service                             enabled
NetworkManager-dispatcher.service             enabled
NetworkManager.service                        enabled
ntpd.service                                  enabled
postfix.service                               enabled
rsyslog.service                               enabled
sshd.service                                  enabled
systemd-readahead-collect.service             enabled
systemd-readahead-drop.service                enabled
systemd-readahead-replay.service              enabled
tuned.service                                 enabled
vgauthd.service                               enabled
vmtoolsd.service                              enabled

Ctrl-Alt-Delによるshutdown/rebootの防止

  • 電源操作をボタン、shutdown/rebootコマンドのみに絞り、誤操作を防止
  • CentOS7 では /usr/lib/systemd/system/ctrl-alt-del.target をコメントアウトする
  • CentOS6 では /etc/init/control-alt-delete.conf
  • CentOS5 までは /etc/inittab