LoginSignup
1
0

More than 5 years have passed since last update.

(メモ)CentOS7 の更新スクリプト作成と試験の巻

Last updated at Posted at 2018-07-10

目的

手動アップデートをスケジュールスクリプトで自動化して、ミスを無くす

目標

1.UTM へIP ベースの穴あけ
  URL ベースで対応できないソフトだった(怒)

2.アップデートとサーバ再起動のスクリプトを作成して、2~3日動かしてみる
  CentOS7 で、スクリプト作成+cron 登録して、実行する
  ・バージョンが上がっていることを確認する
  ・エラー無いことを確認する
  ・正常か異常かを管理者へ通知する

方式

UTM へCentOS アップデート先のGIP へアクセスする許可を追加する。その後、アップデートと再起動を行い、正常か異常かをメールするスクリプトを作る
WS000006.JPG

作業

まずは、調査系を。。。

1.の穴あけ用にGIP を確認

どこに問合せしてるんだろ?と思い、repo を確認する
cat /etc/yum.repos.d/CentOS-Base.repo

色々でてくるので、下のサイトで項目を確認する。
http://zudoh.com/archives/379

例えば、
released updates の mirrorlist に書いてある下のアドレスぽい。
http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=os&infra=$infra

いくつか変数で実行しているから、それらを調査。
調査対象は、下の3つ
$releasever
$basearch
$infra

下のサイトを参照
https://oki2a24.com/2016/09/11/how-to-know-yum-releaserver-basearch-infra/

下のコマンドで情報が表示される。
yum info centos-release

$releasever = 7
$basearch = x86_64

でよさそう

それぞれのIP アドレスを調べる...ための nslookup は、CentOS7 にデフォルトで入っていないようだ。
sudo yum -y install bind-utils

詳細はTips へ置いておくが、結論として、下のドメインとそれに紐づくIP を許可する。
それぞれ、2018年7月11日現在、GCP のCENTOS 7 テンプレートのもの。
ドメイン一覧

mirror.fairway.ne.jp
ftp.tsukuba.wide.ad.jp
ftp.yz.yamagata-u.ac.jp
ftp.riken.jp
ftp-srv2.kddilabs.jp
mirrors.cat.net
ftp.iij.ad.jp
ftp.nara.wide.ad.jp
ftp.jaist.ac.jp
mirror.nus.edu.sg
centos.usonyx.net
mirror.qoxy.com
mirror.0x.sg
mirrorlist.centos.org
centos.mirror.iweb.ca
mirror.team-cymru.com

下のIP を許可する

122.213.199.121/32
203.178.132.80/32
133.24.248.17/32
133.24.248.19/32
133.24.248.16/32
133.24.248.18/32
134.160.38.1/32
202.255.47.226/32
103.88.44.2/32
202.232.140.70/32
203.178.137.175/32
150.65.7.130/32
137.132.84.194/32
116.12.48.100/32
36.255.124.203/32
210.23.25.77/32
67.29.148.138/32
85.236.43.108/32
212.69.166.138/32
216.176.179.218/32
192.175.120.169/32
38.229.66.100/32

シェルスクリプトを作成する

まずは、作業場へ移動
cd /usr/local/bin/

yum-update 用のシェルスクリプトを作成

sudo vi yumupdate.sh

yumupdate.sh
#!/bin/bash
sudo yum -y update

試験してみる。

bash /usr/local/bin/yumupdate.sh
update の処理がかかれば試験完了

シェルスクリプトをスケジュール実行する

Windows でいうスケジューラーにあたる
crontab へ記載する
sudo crontab -e

vi エディタが開くので、
毎時00分に実行する場合、下のように記載

crontab
00 * * * * bash /usr/local/bin/yumupdate.sh

書き方は、下のサイトを参照
http://www.server-memo.net/tips/crontab.html

sudo cat /var/log/cron
ログへ下のように実行ログが出ていれば成功。

Jul 11 07:45:01 ホスト名 CROND[24054]: (root) CMD (bash /usr/local/bin/yumupdate.sh)

ちゃんとできているか試験

VM を新たに作り試験してみる。

スクリプト作成とスケジュールをセットして、OS のver が上がることを確認する。

試験前の情報

sudo cat /etc/redhat-release

CentOS Linux release 7.5.1804 (Core)

シェルスクリプトを作成する

まずは、作業場へ移動
cd /usr/local/bin/

yum-update 用のシェルスクリプトを作成

sudo vi yumupdate.sh

yumupdate.sh
#!/bin/bash
sudo yum -y update

crontab でスケジュール設定
sudo crontab -e

スクリプトスケジュールを近々に設定して自動で実行されるのを待つ。

再度、OS ver を表示
sudo cat /etc/redhat-release
????今日は、急遽でかけることになり、更新完了を待てない!すまねぇ。。。bash を実行すると、アップデート中で待ち~っと出たため、アップデートは走っているようだった。

Tips

/etc/yum.repos.d/CentS-Base.repo の base,updates, extras, centosplus 全ての宛先を開けなければいけないことが分かった。やってられねぇ。。。けどやるしかないか。

[base]下のサイトへアクセスして、リストを取得する
http://mirrorlist.centos.org/?release=7&arch=x86_64&repo=os&infra=
※ここのアクセスは、別端末のブラウザから実施

http://mirror.fairway.ne.jp/centos/7.5.1804/os/x86_64/
http://ftp.tsukuba.wide.ad.jp/Linux/centos/7.5.1804/os/x86_64/
http://ftp.yz.yamagata-u.ac.jp/pub/linux/centos/7.5.1804/os/x86_64/
http://ftp.riken.jp/Linux/centos/7.5.1804/os/x86_64/
http://ftp-srv2.kddilabs.jp/Linux/packages/CentOS/7.5.1804/os/x86_64/
http://mirrors.cat.net/centos/7.5.1804/os/x86_64/
http://ftp.iij.ad.jp/pub/linux/centos/7.5.1804/os/x86_64/
http://ftp.nara.wide.ad.jp/pub/Linux/centos/7.5.1804/os/x86_64/
http://ftp.jaist.ac.jp/pub/Linux/CentOS/7.5.1804/os/x86_64/
http://mirror.nus.edu.sg/centos/7.5.1804/os/x86_64/

[updates]下のサイトへアクセスして、リストを取得する
http://mirrorlist.centos.org/?release=7&arch=x86_64&repo=updates&infra=
※ここのアクセスは、別端末のブラウザから実施

http://mirrors.cat.net/centos/7.5.1804/updates/x86_64/
http://ftp.tsukuba.wide.ad.jp/Linux/centos/7.5.1804/updates/x86_64/
http://ftp.iij.ad.jp/pub/linux/centos/7.5.1804/updates/x86_64/
http://ftp.riken.jp/Linux/centos/7.5.1804/updates/x86_64/
http://ftp-srv2.kddilabs.jp/Linux/packages/CentOS/7.5.1804/updates/x86_64/
http://ftp.yz.yamagata-u.ac.jp/pub/linux/centos/7.5.1804/updates/x86_64/
http://ftp.jaist.ac.jp/pub/Linux/CentOS/7.5.1804/updates/x86_64/
http://mirror.fairway.ne.jp/centos/7.5.1804/updates/x86_64/
http://centos.usonyx.net/main/7.5.1804/updates/x86_64/
http://mirror.nus.edu.sg/centos/7.5.1804/updates/x86_64/

[extras]下のサイトへアクセスして、リストを取得する
http://mirrorlist.centos.org/?release=7&arch=x86_64&repo=extras&infra=
※ここのアクセスは、別端末のブラウザから実施

http://ftp.tsukuba.wide.ad.jp/Linux/centos/7.5.1804/extras/x86_64/
http://ftp.yz.yamagata-u.ac.jp/pub/linux/centos/7.5.1804/extras/x86_64/
http://ftp-srv2.kddilabs.jp/Linux/packages/CentOS/7.5.1804/extras/x86_64/
http://ftp.iij.ad.jp/pub/linux/centos/7.5.1804/extras/x86_64/
http://mirror.fairway.ne.jp/centos/7.5.1804/extras/x86_64/
http://ftp.riken.jp/Linux/centos/7.5.1804/extras/x86_64/
http://ftp.jaist.ac.jp/pub/Linux/CentOS/7.5.1804/extras/x86_64/
http://mirrors.cat.net/centos/7.5.1804/extras/x86_64/
http://centos.usonyx.net/main/7.5.1804/extras/x86_64/
http://mirror.qoxy.com/centos/7.5.1804/extras/x86_64/

[centosplus]
http://mirrorlist.centos.org/?release=7&arch=x86_64&repo=centosplus&infra=
※ここのアクセスは、別端末のブラウザから実施

http://ftp.tsukuba.wide.ad.jp/Linux/centos/7.5.1804/centosplus/x86_64/
http://ftp-srv2.kddilabs.jp/Linux/packages/CentOS/7.5.1804/centosplus/x86_64/
http://ftp.iij.ad.jp/pub/linux/centos/7.5.1804/centosplus/x86_64/
http://ftp.jaist.ac.jp/pub/Linux/CentOS/7.5.1804/centosplus/x86_64/
http://mirrors.cat.net/centos/7.5.1804/centosplus/x86_64/
http://ftp.riken.jp/Linux/centos/7.5.1804/centosplus/x86_64/
http://mirror.fairway.ne.jp/centos/7.5.1804/centosplus/x86_64/
http://ftp.yz.yamagata-u.ac.jp/pub/linux/centos/7.5.1804/centosplus/x86_64/
http://centos.usonyx.net/main/7.5.1804/centosplus/x86_64/
http://mirror.0x.sg/centos/7.5.1804/centosplus/x86_64/

URL からIP を正引きするため、ドメインのみに加工して、重複排除したら下の通り。
※重複排除は、エクセルで実施

mirror.fairway.ne.jp
ftp.tsukuba.wide.ad.jp
ftp.yz.yamagata-u.ac.jp
ftp.riken.jp
ftp-srv2.kddilabs.jp
mirrors.cat.net
ftp.iij.ad.jp
ftp.nara.wide.ad.jp
ftp.jaist.ac.jp
mirror.nus.edu.sg
centos.usonyx.net
mirror.qoxy.com
mirror.0x.sg
mirrorlist.centos.org

調査は、下の通り。
"nslookup"
対話モード(> だけの状態)になったら、上のドメインを入れる。

調査結果は、下の通り。(2018/07/11 現在)

122.213.199.121/32
203.178.132.80/32
133.24.248.17/32
133.24.248.19/32
133.24.248.16/32
133.24.248.18/32
134.160.38.1/32
202.255.47.226/32
103.88.44.2/32
202.232.140.70/32
203.178.137.175/32
150.65.7.130/32
137.132.84.194/32
116.12.48.100/32
36.255.124.203/32
210.23.25.77/32

実行すると下のエラーが出る

Failed connect to mirrorlist.centos.org:80

下にあるmirrorlist.centos.org ドメインのIPを追加

67.219.148.138/32
85.236.43.108/32
212.69.166.138/32
216.176.179.218/32

さらにyum update すると下のエラー

(1/10): base/7/x86_64/group_gz | 166 kB 00:00:00

base/7/x86_64/primary_db FAILED

http://centos.mirror.iweb.ca/7/os/x86_64/repodata/03d0a660eb33174331aee3e077e11d4c017412d761b7f2eaa8555e7898e701e0-primary.sqlite.bz2: [Errno 12] Timeout on http://centos.mirror.iweb.ca/7/os/x86_64/repodata/03d0a660eb33174331aee3e077e11d4c017412d761b7f2eaa8555e7898e701e0-primary.sqlite.bz2: (28, 'Connection timed out after 30000 milliseconds')
Trying other mirror.
epel/x86_64/group_gz FAILED

http://mirror.team-cymru.com/epel/7/x86_64/repodata/4aae0a3bd743fb4805be7d7f3c9fdcf76934fcb8f22ce4ea237f57bc85e9243d-comps-Everything.x86_64.xml.gz: [Errno 12] Timeout on http://mirror.team-cymru.com/epel/7/x86_64/repodata/4aae0a3bd743fb4805be7d7f3c9fdcf76934fcb8f22ce4ea237f57bc85e9243d-comps-Everything.x86_64.xml.gz: (28, 'Connection timed out after 30001 milliseconds')
Trying other mirror.
epel/x86_64/updateinfo FAILED

http://mirror.team-cymru.com/epel/7/x86_64/repodata/d51f5143ca1af84a289a105797cbd21b79d354d68842e80454dcbbdc9783db7e-updateinfo.xml.bz2: [Errno 12] Timeout on http://mirror.team-cymru.com/epel/7/x86_64/repodata/d51f5143ca1af84a289a105797cbd21b79d354d68842e80454dcbbdc9783db7e-updateinfo.xml.bz2: (28, 'Connection timed out after 30001 milliseconds')
Trying other mirror.

下のドメインのIP を追加

centos.mirror.iweb.ca
mirror.team-cymru.com

IP

192.175.120.169
38.229.66.100

再度、トライするもエラー。base のサイトが全滅したようだ。

failure: repodata/repomd.xml from base: [Errno 256] No more mirrors to try.
http://centos.mirrors.tds.net/pub/linux/centos/7.5.1804/os/x86_64/repodata/repomd.xml: [Errno 12] Timeout on http://centos.mirrors.tds.net/pub/linux/centos/7.5.1804/os/x86_64/repodata/repomd.xml: (28, 'Connection timed out after 30001 milliseconds')
http://dallas.tx.mirror.xygenhosting.com/CentOS/7.5.1804/os/x86_64/repodata/repomd.xml: [Errno 12] Timeout on http://dallas.tx.mirror.xygenhosting.com/CentOS/7.5.1804/os/x86_64/repodata/repomd.xml: (28, 'Connection timed out after 30000 milliseconds')
http://mirror.compevo.com/centos/7.5.1804/os/x86_64/repodata/repomd.xml: [Errno 12] Timeout on http://mirror.compevo.com/centos/7.5.1804/os/x86_64/repodata/repomd.xml: (28, 'Connection timed out after 30000 milliseconds')
http://mirror.scalabledns.com/centos/7.5.1804/os/x86_64/repodata/repomd.xml: [Errno 12] Timeout on http://mirror.scalabledns.com/centos/7.5.1804/os/x86_64/repodata/repomd.xml: (28, 'Connection timed out after 30000 milliseconds')
http://mirror.steadfast.net/centos/7.5.1804/os/x86_64/repodata/repomd.xml: [Errno 12] Timeout on http://mirror.steadfast.net/centos/7.5.1804/os/x86_64/repodata/repomd.xml: (28, 'Connection timed out after 30001 milliseconds')
http://mirror.vcu.edu/pub/gnu_linux/centos/7.5.1804/os/x86_64/repodata/repomd.xml: [Errno 12] Timeout on http://mirror.vcu.edu/pub/gnu_linux/centos/7.5.1804/os/x86_64/repodata/repomd.xml: (28, 'Connection timed out after 30000 milliseconds')
http://mirrors.advancedhosters.com/centos/7.5.1804/os/x86_64/repodata/repomd.xml: [Errno 12] Timeout on http://mirrors.advancedhosters.com/centos/7.5.1804/os/x86_64/repodata/repomd.xml: (28, 'Connection timed out after 30000 milliseconds')
http://mirrors.liquidweb.com/CentOS/7.5.1804/os/x86_64/repodata/repomd.xml: [Errno 12] Timeout on http://mirrors.liquidweb.com/CentOS/7.5.1804/os/x86_64/repodata/repomd.xml: (28, 'Connection timed out after 30001 milliseconds')
http://mirrors.tummy.com/mirrors/CentOS/7.5.1804/os/x86_64/repodata/repomd.xml: [Errno 12] Timeout on http://mirrors.tummy.com/mirrors/CentOS/7.5.1804/os/x86_64/repodata/repomd.xml: (28, 'Connection timed out after 30000 milliseconds')
http://repos.mia.quadranet.com/centos/7.5.1804/os/x86_64/repodata/repomd.xml: [Errno 12] Timeout on http://repos.mia.quadranet.com/centos/7.5.1804/os/x86_64/repodata/repomd.xml: (28, 'Connection timed out after 30001 milliseconds')

下のドメインも追加

centos.mirrors.tds.net
dallas.tx.mirror.xygenhosting.com
mirror.compevo.com
mirror.scalabledns.com
mirror.steadfast.net
mirror.vcu.edu
mirrors.advancedhosters.com
mirrors.liquidweb.com
mirrors.tummy.com
repos.mia.quadranet.com

IP一覧

64.50.236.218/32
69.162.87.178/32
103.25.61.44/32
23.89.0.110/32
208.100.4.53/32
128.172.15.65/32
46.229.166.133/32
69.167.187.144/32
66.35.36.129/32
173.44.32.10/32

まだエラーが出る

http://mirror.chpc.utah.edu/pub/centos/7.5.1804/updates/x86_64/repodata/repomd.xml: [Errno 12] Timeout on http://mirror.chpc.utah.edu/pub/c
entos/7.5.1804/updates/x86_64/repodata/repomd.xml: (28, 'Connection timed out after 30001 milliseconds')
http://centos.host-engine.com/7.5.1804/updates/x86_64/repodata/repomd.xml: [Errno 12] Timeout on http://centos.host-engine.com/7.5.1804/upd
ates/x86_64/repodata/repomd.xml: (28, 'Connection timed out after 30001 milliseconds')
http://centos.mirror.constant.com/7.5.1804/updates/x86_64/repodata/repomd.xml: [Errno 12] Timeout on http://centos.mirror.constant.com/7.5.
1804/updates/x86_64/repodata/repomd.xml: (28, 'Connection timed out after 30000 milliseconds')
http://centos.mirror.lstn.net/7.5.1804/updates/x86_64/repodata/repomd.xml: [Errno 12] Timeout on http://centos.mirror.lstn.net/7.5.1804/upd
ates/x86_64/repodata/repomd.xml: (28, 'Connection timed out after 30001 milliseconds')
http://mirror.ancl.hawaii.edu/linux/centos/7.5.1804/updates/x86_64/repodata/repomd.xml: [Errno 12] Timeout on http://mirror.ancl.hawaii.edu
/linux/centos/7.5.1804/updates/x86_64/repodata/repomd.xml: (28, 'Connection timed out after 30000 milliseconds')
http://mirror.san.fastserv.com/pub/linux/centos/7.5.1804/updates/x86_64/repodata/repomd.xml: [Errno 12] Timeout on http://mirror.san.fastse
rv.com/pub/linux/centos/7.5.1804/updates/x86_64/repodata/repomd.xml: (28, 'Connection timed out after 30000 milliseconds')
http://mirror.vtti.vt.edu/centos/7.5.1804/updates/x86_64/repodata/repomd.xml: [Errno 12] Timeout on http://mirror.vtti.vt.edu/centos/7.5.18
04/updates/x86_64/repodata/repomd.xml: (28, 'Connection timed out after 30001 milliseconds')
http://mirror.wdc1.us.leaseweb.net/centos/7.5.1804/updates/x86_64/repodata/repomd.xml: [Errno 12] Timeout on http://mirror.wdc1.us.leaseweb
.net/centos/7.5.1804/updates/x86_64/repodata/repomd.xml: (28, 'Connection timed out after 30001 milliseconds')
http://mirrors.seas.harvard.edu/centos/7.5.1804/updates/x86_64/repodata/repomd.xml: [Errno 12] Timeout on http://mirrors.seas.harvard.edu/c
entos/7.5.1804/updates/x86_64/repodata/repomd.xml: (28, 'Connection timed out after 30001 milliseconds')
http://mirrors.sorengard.com/centos/7.5.1804/updates/x86_64/repodata/repomd.xml: [Errno 12] Timeout on http://mirrors.sorengard.com/centos/
7.5.1804/updates/x86_64/repodata/repomd.xml: (28, 'Connection timed out after 30001 milliseconds')

まだエラーが出た。
repodata/repomd.xml from updates: [Errno 256] No more mirrors to try.
http://mirror.chpc.utah.edu/pub/centos/7.5.1804/updates/x86_64/repodata/repomd.xml: [Errno 12] Timeout on http://mirror.chpc.utah.edu/pub/centos/7.5.1804/updates/x86_64/repodata/repomd.xml: (28, 'Connection timed out after 30001 milliseconds')
http://centos.host-engine.com/7.5.1804/updates/x86_64/repodata/repomd.xml: [Errno 12] Timeout on http://centos.host-engine.com/7.5.1804/updates/x86_64/repodata/repomd.xml: (28, 'Connection timed out after 30001 milliseconds')
http://centos.mirror.constant.com/7.5.1804/updates/x86_64/repodata/repomd.xml: [Errno 12] Timeout on http://centos.mirror.constant.com/7.5.1804/updates/x86_64/repodata/repomd.xml: (28, 'Connection timed out after 30000 milliseconds')
http://centos.mirror.lstn.net/7.5.1804/updates/x86_64/repodata/repomd.xml: [Errno 12] Timeout on http://centos.mirror.lstn.net/7.5.1804/updates/x86_64/repodata/repomd.xml: (28, 'Connection timed out after 30001 milliseconds')
http://mirror.ancl.hawaii.edu/linux/centos/7.5.1804/updates/x86_64/repodata/repomd.xml: [Errno 12] Timeout on http://mirror.ancl.hawaii.edu/linux/centos/7.5.1804/updates/x86_64/repodata/repomd.xml: (28, 'Connection timed out after 30000 milliseconds')
http://mirror.san.fastserv.com/pub/linux/centos/7.5.1804/updates/x86_64/repodata/repomd.xml: [Errno 12] Timeout on http://mirror.san.fastserv.com/pub/linux/centos/7.5.1804/updates/x86_64/repodata/repomd.xml: (28, 'Connection timed out after 30000 milliseconds')
http://mirror.vtti.vt.edu/centos/7.5.1804/updates/x86_64/repodata/repomd.xml: [Errno 12] Timeout on http://mirror.vtti.vt.edu/centos/7.5.1804/updates/x86_64/repodata/repomd.xml: (28, 'Connection timed out after 30001 milliseconds')
http://mirror.wdc1.us.leaseweb.net/centos/7.5.1804/updates/x86_64/repodata/repomd.xml: [Errno 12] Timeout on http://mirror.wdc1.us.leaseweb.net/centos/7.5.1804/updates/x86_64/repodata/repomd.xml: (28, 'Connection timed out after 30001 milliseconds')
http://mirrors.seas.harvard.edu/centos/7.5.1804/updates/x86_64/repodata/repomd.xml: [Errno 12] Timeout on http://mirrors.seas.harvard.edu/centos/7.5.1804/updates/x86_64/repodata/repomd.xml: (28, 'Connection timed out after 30001 milliseconds')
http://mirrors.sorengard.com/centos/7.5.1804/updates/x86_64/repodata/repomd.xml: [Errno 12] Timeout on http://mirrors.sorengard.com/centos/7.5.1804/updates/x86_64/repodata/repomd.xml: (28, 'Connection timed out after 30001 milliseconds')

下のドメインを追加

mirror.chpc.utah.edu
centos.host-engine.com
centos.mirror.constant.com
centos.mirror.lstn.net
mirror.ancl.hawaii.edu
mirror.san.fastserv.com
mirror.vtti.vt.edu
mirror.wdc1.us.leaseweb.net
mirrors.seas.harvard.edu
mirrors.sorengard.com

IP は下の通り

204.99.128.20/32
198.255.114.50/32
108.61.5.83/32
64.31.0.51/32
128.171.104.147/32
208.85.242.118/32
198.82.152.116/32
207.244.94.80/32
140.247.173.13/32
173.52.41.34/32

なんか、だいぶ違うなぁ。。。と思い、ググったら、
どうもepel が古いようだ。
https://qiita.com/bezeklik/items/6fead3365b0e954f234e

例えば、下のドメインなどは、nslookup でIP が返ってこず、今は存在しないドメインのようだ。

http://mirror.cisp.com

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0