#はじめに
ubuntu(14.04)とcentOS(6, 7)の初期設定の備忘録です.
IPアドレスの固定,LDAP認証,dockerの導入,sambaのマウント,その他細かい設定です.
#設定
##初期設定
パッケージのアップグレード
ubuntu
$ apt-get update
$ apt-get upgrade
centOS
$ yum update
###ネットワーク関連
以下のアドレスは例ですので,設定前に必要な情報を確認してください.
####ubuntu
auto eth0
iface eth0 inet static
address 192.168.0.10 # IPアドレス
netmask 255.255.255.0 # サブネットマスク
gateway 192.168.0.1 # デフォルトゲートウェイ
dns-nameservers 192.168.0.1 XXX.XXX.XXX.XXX 8.8.8.8 #dnsサーバ
ifdown eth0 && ifup eth0
またはリブートして設定を適用します.sshが切断されて,また接続できるようになるのを祈ります.設定を誤るとネットワーク経由でアクセスできなくなるので慎重に作業してください.
eth0
はインタフェース名です.ubuntu 16.04ではenp0s31f6
などです.ifconfig
で確認できます.
####centOS6
DEVICE=eth0 #デバイス名
ONBOOT=yes #システム起動時に有効にするか
BOOTPROTO=none #固定IP:none,static DHCPはdhcp
HWADDR=XX:XX:XX:XX:XX:XX #MACアドレス
TYPE=Ethernet #インタフェースのデバイスタイプ。他にxDSLなど
#DHCP_HOSTNAME=example.com #DHCPサーバに通知するホスト名
IPADDR=192.168.0.10 #IPアドレスの指定
NETMASK=255.255.255.0 #IPアドレスに対するネットマスクの指定
USERCTL=no #デバイスの制御をroot以外にも許すか。
PEERDNS=no #DHCPによって取得したDNSサーバのアドレスを/etc/resolv.confに反映するか。DHCPを使う場合は通常yes。
GATEWAY=192.168.0.1 #デフォルトのゲートウエイアドレス(普通はルータのIPアドレスを書く)
IPV6INIT=no #このデバイスでIPv6を有効にするか
nameserver 192.168.0.1
nameserver XXX.XXX.XXX.XXX
####centOS7
$nmtui
コマンドを使います.TUIというグラフィカルなCUI(?で設定できます.
(参考) 複数のNICを使う場合
eth0にグローバルIP,eth1にローカルIPが振られているケースを想定します.グローバルIPに向けて何らかのサービスを提供する場合,default gatewayをグローバルIP側に設定する必要があります.
ubuntuでは,/etc/network/interfaces
で,最初に宣言されたgatewayがdefault gatewayとして設定されるようです.すなわちこの例では,eth0の定義を先に記述します.$route
コマンドで設定されているルーティングテーブルを確認することが出来ます.また,$ping [IP address] -I [interface]
のように,特定のインターフェースからpingを打つことで接続状況を確認することが出来ます.
##LDAP認証
稼働済みのldapサーバに接続して,ldap認証を用いてログインできるように設定します.
####ubuntu
基本的にLDAPClientAuthenticationのサイトに従って設定.
以下のように設定するところがありますが,例えばdockerグループを追加しておくとldapでログインしたユーザがdockerをsudoせずに使えるようになります(そもそもsudoもできませんが).(;;*;という設定だとすべてのユーザがdockerに追加される?
*;*;*;Al0000-2400;audio,cdrom,dialout,floppy
####centOS
こちらを参考にさせていただきました.
authconfig-tui
で設定したあと,/etc/pam.d/system-auth
,/etc/pam.d/password-auth
,/etc/nsswitch.conf
のsssをldapに置換します.
ホームディレクトリ生成の設定は$authconfig --enablemkhomedir --update
でできるみたいです.
ubuntuと同様にldapユーザを特定のグループに所属させたいと思います./etc/security/group.conf
についてはubuntuと同様に設定します.
問題は,ubuntuで/etc/pam.d/common-auth
に追記する内容ですが,/etc/pam.d/password-auth
に追記するとうまくいきました.何をやっているかいまいち理解していないので試行錯誤です...
ログインシェルの指定
LDAPサーバ側で指定されているシェルが存在しない場合エラーとなりログインできません.以下の設定を追記することで,ログインシェルを上書きすることが出来ます.
nss_override_attribute_value loginShell /bin/bash
map passwd loginShell "/sbin/bash"
####トラブルシューティング
認証に失敗する場合,以下のログを解析すると原因が分かるかも知れません.
- ubuntu:
/var/log/auth.log
- centOS:
/var/log/secure
##docker環境導入
以下のスクリプトを用いて最新版を導入できます.
(参考サイト: http://docs.docker.jp/linux/step_one.html)
$curl -fsSL https://get.docker.com/ | sh
まっさらな環境であれば問題なく入れられると思いますが,すでに古いバージョンが入っているとコンフリクトする場合があります.その場合は$yum remove docker docker-selinux
で一度アンインストールしました(centOS).
###dockerグループ
前述のようにユーザをdockerグループ(dockerrootグループの場合もあるようです)に追加するとsudoなしで実行できるようになりますが,これは/var/run/docker.sock
の所有者がdockerグループであることに起因している(みたいです).なので,もしパーミッションが異なる場合dockerグループのユーザでもdockerを実行できません.パーミッションを変更すれば良いようです.
###ブート時の起動
ブート時にdockerサービスを自動的に起動します.
$ systemctl enable docker # ubuntu
$ chkconfig docker on # centOS
###docker-compose
pipで簡単に入ります,が一部のpythonライブラリのバージョン関連で面倒な事態になる場合も...
$ pip install docker-compose
###nvidia-docker
公式github通りに入れましたが,ここでもdockerのバージョンが古いと動きません.
sambaをマウントする
- パッケージを導入します.
$apt-get install cifs-utils
- マウント先のディレクトリを作成します
$mkdir /path/to/mount
-
/etc/fstab
に追記します.オプションは適宜.
//samba/server cifs username=hoge,password=foo,uid=nobody,gid=nogroup,file_mode=0777,dir_mode=0777 0 0
$ mount -a
によってマウントすることが出来ます.
rootログインを許可する
セキュリティ的に大丈夫で必要な場合のみ
以下を追加します.
PermitRootLogin yes