CentOS7が出たので、最小インストールからSSHが接続できるまで

VMware playerにCentOS7.0をインストール。
簡単インストールがまだできなかったので、
CentOS 64bit のメニューでインストール。
インストール中で選ぶ項目もほとんど選ばない状態からスタート。

CentOS6.5の感覚で設定しようと思ったら全然だめだったので
最少インストールから、外部端末からSSHが接続できるまでの
IPアドレス設定周りをメモ。

----------

## デバイス名の確認

CentOS6.5でおおよそeth0だったインタフェース名は
CentOS7.0のデフォルトでは環境によって異なる模様。

```
# ip address show
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host
       valid_lft forever preferred_lft forever
2: eno16777728: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
    link/ether 00:0c:29:5d:6a:xx brd ff:ff:ff:ff:ff:ff
```

```ip address show```はアドレスを確認するコマンド。
```ifconfig -a```あたりと同じようなイメージ。
lo はローカルのループバックだから、eno16777728 というのがインタフェース名になりそう。

```
# nmcli d show
GENERAL.DEVICE:                         eno16777728
GENERAL.TYPE:                           ethernet
GENERAL.HWADDR:                         00:0C:29:5D:6A:xx
GENERAL.MTU:                            1500
GENERAL.STATE:                          30 (disconnected)
GENERAL.CONNECTION:                     --
GENERAL.CON-PATH:                       --
WIRED-PROPERTIES.CARRIER:               on

GENERAL.DEVICE:                         lo
GENERAL.TYPE:                           loopback
GENERAL.HWADDR:                         00:00:00:00:00:00
GENERAL.MTU:                            65536
GENERAL.STATE:                          10 (unmanaged)
GENERAL.CONNECTION:                     --
GENERAL.CON-PATH:                       --
IP4.ADDRESS[1]:                         ip = 127.0.0.1/8, gw = 0.0.0.0
IP6.ADDRESS[1]:                         ip = ::1/128, gw = ::
```

```nmcli device show```はデバイス情報を見る。
```nmcli```はNetworkManagerのコマンドのようです。

```
# nmcli con show eno16777728
connection.id:                          eno16777728
connection.uuid:                        4bcd9aaf-2f9c-4725-b1ba-89f57471afe7
connection.interface-name:              --
connection.type:                        802-3-ethernet
connection.autoconnect:                 no
connection.timestamp:                   0
connection.read-only:                   no
connection.permissions:
connection.zone:                        --
connection.master:                      --
connection.slave-type:                  --
connection.secondaries:
connection.gateway-ping-timeout:        0
802-3-ethernet.port:                    --
802-3-ethernet.speed:                   0
802-3-ethernet.duplex:                  --
802-3-ethernet.auto-negotiate:          yes
802-3-ethernet.mac-address:             00:0C:29:5D:6A:xx
802-3-ethernet.cloned-mac-address:      --
802-3-ethernet.mac-address-blacklist:
802-3-ethernet.mtu:                     auto
802-3-ethernet.s390-subchannels:
802-3-ethernet.s390-nettype:            --
802-3-ethernet.s390-options:
ipv4.method:                            auto
ipv4.dns:
ipv4.dns-search:
ipv4.addresses:
ipv4.routes:
ipv4.ignore-auto-routes:                no
ipv4.ignore-auto-dns:                   no
ipv4.dhcp-client-id:                    --
ipv4.dhcp-send-hostname:                yes
ipv4.dhcp-hostname:                     --
ipv4.never-default:                     no
ipv4.may-fail:                          yes
ipv6.method:                            auto
ipv6.dns:
ipv6.dns-search:
ipv6.addresses:
ipv6.routes:
ipv6.ignore-auto-routes:                no
ipv6.ignore-auto-dns:                   no
ipv6.never-default:                     no
ipv6.may-fail:                          yes
ipv6.ip6-privacy:                       -1 (unknown)
ipv6.dhcp-hostname:                     --
```

```nmcli con show <デバイス名>```でデバイスの設定情報を
もう少し詳しく見る。

まず```connection.autoconnect```が no なので起動時に自動 up しないような気がする。
また、```ipv4.method```が auto なので dhcp でアドレスを取りに行きそう。
DHCP環境の場合はいじる必要がなさそうだけど、固定にしたい。
固定にした場合は```ipv4.addresses```にアドレスが入りそう。

## 設定変更

というわけで、以下のコマンドを実行。

```
# nmcli con mod eno16777728 connection.autoconnect "yes"
# nmcli con mod eno16777728 ipv4.addresses "192.168.101.2/24"
# nmcli con mod eno16777728 ipv4.method "manual"
```

なお、```ipv4.method```はアドレスが先に入っていないとはじかれました。

以下、設定確認。

```
# nmcli con show eno16777728
connection.id:                          eno16777728
connection.uuid:                        4bcd9aaf-2f9c-4725-b1ba-89f57471afe7
connection.interface-name:              --
connection.type:                        802-3-ethernet
connection.autoconnect:                 yes
connection.timestamp:                   0
connection.read-only:                   no
connection.permissions:
connection.zone:                        --
connection.master:                      --
connection.slave-type:                  --
connection.secondaries:
connection.gateway-ping-timeout:        0
802-3-ethernet.port:                    --
802-3-ethernet.speed:                   0
802-3-ethernet.duplex:                  --
802-3-ethernet.auto-negotiate:          yes
802-3-ethernet.mac-address:             00:0C:29:5D:6A:xx
802-3-ethernet.cloned-mac-address:      --
802-3-ethernet.mac-address-blacklist:
802-3-ethernet.mtu:                     auto
802-3-ethernet.s390-subchannels:
802-3-ethernet.s390-nettype:            --
802-3-ethernet.s390-options:
ipv4.method:                            manual
ipv4.dns:
ipv4.dns-search:
ipv4.addresses:                         { ip = 192.168.101.2/24, gw = 0.0.0.0 }
ipv4.routes:
ipv4.ignore-auto-routes:                no
ipv4.ignore-auto-dns:                   no
ipv4.dhcp-client-id:                    --
ipv4.dhcp-send-hostname:                yes
ipv4.dhcp-hostname:                     --
ipv4.never-default:                     no
ipv4.may-fail:                          yes
ipv6.method:                            auto
ipv6.dns:
ipv6.dns-search:
ipv6.addresses:
ipv6.routes:
ipv6.ignore-auto-routes:                no
ipv6.ignore-auto-dns:                   no
ipv6.never-default:                     no
ipv6.may-fail:                          yes
ipv6.ip6-privacy:                       -1 (unknown)
ipv6.dhcp-hostname:                     --
GENERAL.NAME:                           eno16777728
GENERAL.UUID:                           4bcd9aaf-2f9c-4725-b1ba-89f57471afe7
GENERAL.DEVICES:                        eno16777728
GENERAL.STATE:                          activating
GENERAL.DEFAULT:                        no
GENERAL.DEFAULT6:                       no
GENERAL.VPN:                            no
GENERAL.ZONE:                           --
GENERAL.DBUS-PATH:                      /org/freedesktop/NetworkManager/ActiveConnection/0
GENERAL.CON-PATH:                       /org/freedesktop/NetworkManager/Settings/0
GENERAL.SPEC-OBJECT:                    --
GENERAL.MASTER-PATH:                    --
```

## インタフェース再起動

インタフェースを一度ダウンさせないと設定が有効にならないようだったので
一度ダウン、アップさせる。

```
# nmcli device disconnect eno16777728
# nmcli device connect eno16777728
Device 'eno16777728' successfully activated with '4bcd9aaf-2f9c-4725-b1ba-89f57471afe7'.
```

これで、アドレスが振られているか確認。

```
# ip address show
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host
       valid_lft forever preferred_lft forever
2: eno16777728: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
    link/ether 00:0c:29:5d:6a:xx brd ff:ff:ff:ff:ff:ff
    inet 192.168.101.2/24 brd 192.168.101.255 scope global eno16777728
       valid_lft forever preferred_lft forever
    inet6 fe80::20c:29ff:fe5d:6a4a/64 scope link
       valid_lft forever preferred_lft forever
```

ここまでやって、外部からSSHが接続できた。