yumコマンド実行時に Cannot retrieve repository metadata と出て失敗する(CentOS 6.4)

#■症状
CentOS 6.X系にて、特にyum系の設定に触っていないのに、yumコマンドをたたくと以下エラーが発生する。

```sh:
# yum update
Loaded plugins: fastestmirror, security
Could not retrieve mirrorlist http://mirrorlist.centos.org/?release=6&arch=x86_64&repo=os error was
14: PYCURL ERROR 6 - "Couldn't resolve host 'mirrorlist.centos.org'"
Error: Cannot retrieve repository metadata (repomd.xml) for repository: base. Please verify its path and try again
#
```


#■診察結果
CentOS 6.X系のyumレポジトリの場所が変わってしまっているので、変えてあげましょう。

今回は変更先として以下とします。
http://vault.centos.org/6.4/


#■回復方法
①レポジトリ設定ファイルの編集
場所：`/etc/yum.repos.d/CentOS-Base.repo`

この設定ファイルの中に、レポジトリの場所がたくさん書いてあります。
レポジトリの場所を中身を書き換えます。
　→方針1.とりあえずファイルはバックアップする
　→方針2.mirrorlistはコメントアウト
　→方針3.basenameはコメントアウトを外して、URLを書き換え

```sh:/etc/yum.repos.d/CentOS-Base.repo
[base]
name=CentOS-$releasever - Base
mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=os
#baseurl=http://mirror.centos.org/centos/$releasever/os/$basearch/
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-6

  ≪後略≫
```

・コマンド

```sh:
cp -p /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo_bak
sudo sed -i -e "s|mirror\.centos\.org/centos/\$releasever|vault\.centos\.org/6.4|g" /etc/yum.repos.d/CentOS-Base.repo`
sudo sed -i -e "s|#baseurl=|baseurl=|g" /etc/yum.repos.d/CentOS-Base.repo
sudo sed -i -e "s|mirrorlist=|#mirrorlist=|g" /etc/yum.repos.d/CentOS-Base.repo
```
>覚え書き：
1行目はファイルのバックアップ
2行目はURLの書き換え
3行目はbaseurlのコメントアウト外し
4行目はmirrorlistのコメントアウト
>
sed [option] [file]
-i :ファイルの直接編集
-e :スクリプトの追加
s/置換前/置換後/g :置換前でマッチした部分を置換後に置き換え、/gで対象範囲内全箇所を置換
\\. \\\$ :ピリオドとドルは\によるエスケープが必要
http://www.atmarkit.co.jp/ait/articles/1610/17/news015.html
https://qiita.com/katsukii/items/1c1550f064b4686c04d4

・編集結果

```sh:/etc/yum.repos.d/CentOS-Base.repo
[base]
name=CentOS-$releasever - Base
#mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=os
baseurl=http://vault.centos.org/6.4/os/$basearch/
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-

  ≪後略≫
```

②yum実行
うまくいけばyumコマンドが実行できるようになるはずです。

```sh:
# yum update
Loaded plugins: fastestmirror, security
Loading mirror speeds from cached hostfile
base                                                                                              | 3.7 kB     00:00     
base/primary_db                                0% [                                    ]  0.0 B/s |  30 kB     --:-- ETA 
base/primary_db                                1% [                                    ]  37 kB/s |  59 kB     02:00 ETA 
base/primary_db                                2% [=                                   ]  48 kB/s | 131 kB     01:31 ETA 

  ≪後略≫
```



#■上記で解決しない場合
私の場合は以下エラーが発生し、結果としてDNS設定をやってませんでした。

コマンド：`yum update`

```sh:エラー内容
# yum update
Loaded plugins: fastestmirror, security
Loading mirror speeds from cached hostfile
http://vault.centos.org/6.4/os/x86_64/repodata/repomd.xml: [Errno 14] PYCURL ERROR 6 - "Couldn't resolve host 'vault.centos.org'"
Trying other mirror.
Error: Cannot retrieve repository metadata (repomd.xml) for repository: base. Please verify its path and try again
#
```

・状況確認①　ネット接続(pingでgoogleのIPアドレス) →OK

```sh:
# ping 216.58.197.195
PING 216.58.197.195 (216.58.197.195) 56(84) bytes of data.
64 bytes from 216.58.197.195: icmp_seq=1 ttl=128 time=8.68 ms
64 bytes from 216.58.197.195: icmp_seq=2 ttl=128 time=9.21 ms
^C
--- 216.58.197.195 ping statistics ---
2 packets transmitted, 2 received, 0% packet loss, time 1744ms
rtt min/avg/max/mdev = 8.685/8.949/9.214/0.280 ms
```

・状況確認②　ネット接続(pingでレポジトリのIPアドレス)　→OK

```sh:
# ping 162.251.108.7
PING 162.251.108.7 (162.251.108.7) 56(84) bytes of data.
64 bytes from 162.251.108.7: icmp_seq=1 ttl=128 time=142 ms
64 bytes from 162.251.108.7: icmp_seq=2 ttl=128 time=144 ms
64 bytes from 162.251.108.7: icmp_seq=3 ttl=128 time=146 ms
64 bytes from 162.251.108.7: icmp_seq=4 ttl=128 time=142 ms
64 bytes from 162.251.108.7: icmp_seq=5 ttl=128 time=153 ms
^C
--- 162.251.108.7 ping statistics ---
5 packets transmitted, 5 received, 0% packet loss, time 4845ms
rtt min/avg/max/mdev = 142.394/145.783/153.022/3.979 ms
[root@cent64-gn01 ~]#
```

・状況確認③　ネット接続(pingでレポジトリのDNS)　→NG

```sh:
# ping vault.centos.org
ping: unknown host vault.centos.org
```


・インターフェース設定にDNS設定を追加（viで直接編集）
　コマンド：`vi /etc/sysconfig/network-scripts/ifcfg-eth0`
>補足：今回はGoogle DNS(プライマリ8.8.8.8, セカンダリ8.8.4.4)を選定

```sh:/etc/sysconfig/network-scripts/ifcfg-eth0

DEVICE=eth0
HWADDR=xx:xx:xx:xx:xx:xx
TYPE=Ethernet
UUID=xxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
ONBOOT=yes
NM_CONTROLLED=yes
BOOTPROTO=static
IPADDR=xxx.xxx.xxx.xxx
NETMASK=xxx.xxx.xxx.xxx
GATEWAY=xxx.xxx.xxx.xxx
DNS1=8.8.8.8
DNS2=8.8.4.4
```

・ネットワーク設定のリブート
　コマンド：`/etc/rc.d/init.d/network restart`

```sh:
# /etc/rc.d/init.d/network restart
インターフェース eth0 を終了中:  [  OK  ]
インターフェース eth1 を終了中:  [  OK  ]
ループバックインターフェースを終了中  [  OK  ]
ループバックインターフェイスを呼び込み中 [  OK  ]
インターフェース eth0 を活性化中:  [  OK  ]
インターフェース eth0_20181008 を活性化中:  RTNETLINK answers: File exists
[  OK  ]
インターフェース eth1 を活性化中:  [  OK  ]
# 
```

・状況確認③　ネット接続(pingでレポジトリのDNS)　→OK

```sh:
# ping vault.centos.org
PING vault.centos.org (208.100.23.71) 56(84) bytes of data.
64 bytes from ip71.208-100-23.static.steadfastdns.net (208.100.23.71): icmp_seq=1 ttl=128 time=159 ms
64 bytes from ip71.208-100-23.static.steadfastdns.net (208.100.23.71): icmp_seq=2 ttl=128 time=157 ms
^64 bytes from ip71.208-100-23.static.steadfastdns.net (208.100.23.71): icmp_seq=3 ttl=128 time=159 ms
64 bytes from ip71.208-100-23.static.steadfastdns.net (208.100.23.71): icmp_seq=4 ttl=128 time=162 ms
^V64 bytes from ip71.208-100-23.static.steadfastdns.net (208.100.23.71): icmp_seq=5 ttl=128 time=162 ms
^C
--- vault.centos.org ping statistics ---
5 packets transmitted, 5 received, 0% packet loss, time 4907ms
rtt min/avg/max/mdev = 157.744/160.263/162.505/1.812 ms
# 
```

・yum実行　→OK
コマンド：`yum update`

```sh:
# yum update
Loaded plugins: fastestmirror, security
Loading mirror speeds from cached hostfile
base                                                                                              | 3.7 kB     00:00     
base/primary_db                                0% [                                    ]  0.0 B/s |  30 kB     --:-- ETA 
base/primary_db                                1% [                                    ]  37 kB/s |  59 kB     02:00 ETA 
base/primary_db                                2% [=                                   ]  48 kB/s | 131 kB     01:31 ETA 

  ≪後略≫
```

#■出典/参考
[tips][Linux]旧バージョンCentOSでyum更新できなくなった時
http://luozengbin.github.io/blog/2015-08-29-%5Btips%5D%5Blinux%5D%E6%97%A7%E3%83%90%E3%83%BC%E3%82%B8%E3%83%A7%E3%83%B3centos%E3%81%A7yum%E6%9B%B4%E6%96%B0%E3%81%A7%E3%81%8D%E3%81%AA%E3%81%8F%E3%81%AA%E3%81%A3%E3%81%9F%E6%99%82.html

【CentOS】【Linux】yum コマンド エラー集とその対策まとめ
https://go-journey.club/archives/3766

CentOS6.6(64bit)をインストール後にyum更新に失敗する
https://teratail.com/questions/31756

お試しあれ！無料のDNSサーバおすすめ４選！
http://suqare.info/archives/239

IPアドレスを保存しない高速パブリックDNSサービス「1.1.1.1」、APNICとCloudflareが無料提供
https://internet.watch.impress.co.jp/docs/news/1114805.html

CentOS 参照するDNSサーバの設定
http://ezxnet.com/linux/entry3560/

CentOS6のネットワークの設定ファイル
http://girochinful.hatenablog.com/entry/2015/12/28/000159