Quilog
夢と文字を詰め込む場所
2015/06/24
ブログ、引っ越してきました
ブログのお引っ越しを敢行しましたが、見事に記事の作成日時が反映されずに、インポート時の日時となってしまいました。
そんなに記事の数も多くないし、そこのトラブルシュートに費やす時間もないのでこのままでいきたいとおもいます。グータラ
以上、明日からまたよろしくです。
// nagamee
yum-cronでyum updateを自動化してみた
パッケージの脆弱性が発表された場合、運用顧客のサーバが該当しているとアップデートをかけて脆弱性には早め早めで対応する。最近だとglibcの脆弱性(GHOST)が記憶に新しい(そこまで騒がなくても、という内容ではあったけど)。その場合は、もちろん該当するパッケージのみアップデートしてやる。ほかのパッケージをアップデートしてサービスが動かなくなったりしたら恐いわけで。
自宅環境の場合、正直にいうとパッケージ管理まであまり意識できていない。気づいたら都度あげる程度。そもそも自分で定期的にチェックして必要なパッケージを更新するなんて面倒くさい。ただ、それでも脆弱性のあるパッケージを放置しているほうがよろしくない。せめて、インターネットからアクセス可能なサーバは最新状態を維持しましょう、というのが今回の主旨。
yum-cronのインストール
そんなわけで、今回はyum upateをcronで定期実行してくれるyum-cronを導入してみた。
インストールはコマンド一発!
# yum install yum-cron
��略~
================================================================================
Package Arch Version Repository
Size
================================================================================
Installing:
yum-cron noarch 3.2.29-60.el6.centos base 42 k
Installing for dependencies:
yum-plugin-downloadonly noarch 1.1.30-30.el6 base 23 k
Transaction Summary
================================================================================
Install 2 Package(s)
��略~
依存パッケージも1つインストールされた。更新対象のパッケージに対してダウンロードのみ実施する、なオプションがあるのかな。
yum-cronの設定
関連する設定ファイルをみてみる。
# rpm -ql yum-cron
/etc/cron.daily/0yum.cron
/etc/rc.d/init.d/yum-cron
/etc/sysconfig/yum-cron
/etc/yum/yum-daily.yum
/etc/yum/yum-weekly.yum
/usr/share/doc/yum-cron-3.2.29
/usr/share/doc/yum-cron-3.2.29/COPYING
/usr/share/man/man8/yum-cron.8.gz
設定ファイル、スタートアップスクリプト、cron用スクリプト等。
設定ファイルは/etc/sysconfig/yum-cronとなるので、この中身を見てみる。
cat /etc/sysconfig/yum-cron
# Pass any given paramter to yum, as run in all the scripts invoked
# by this package. Be aware that this is global, and yum is invoked in
# several modes by these scripts for which your own parameter might not
# be appropriate
YUM_PARAMETER=
# Don't install, just check (valid: yes|no)
CHECK_ONLY=no
# Check to see if you can reach the repos before updating (valid: yes|no)
CHECK_FIRST=no
# Don't install, just check and download (valid: yes|no)
# Implies CHECK_ONLY=yes (gotta check first to see what to download)
DOWNLOAD_ONLY=no
# Error level, practical range 0-10, 0 means print only critical errors which
# you must be told, 1 means print all errors, even ones that are not important
# Level 0 is the default
# ERROR_LEVEL=0
# Debug level, practical range 0-10, higher number means more output
# Level 1 is a useful level if you want to see what's been done and
# don't want to read /var/log/yum.log
# Level 0 is the default
# DEBUG_LEVEL=1
# randomwait is used by yum to wait random time
# default is 60 so yum waits random time from 1 to 60 minutes
# the value must not be zero
RANDOMWAIT="60"
# if MAILTO is set and the mail command is available, the mail command
# is used to deliver yum output
# by default MAILTO is unset, so crond mails the output by itself
# example: MAILTO=root
MAILTO=
# you may set SYSTEMNAME if you want your yum emails tagged differently
# default is output of hostname command
# this variable is used only if MAILTO is set too
#SYSTEMNAME=""
# you may set DAYS_OF_WEEK to the days of the week you want to run
# default is every day
#DAYS_OF_WEEK="0123456"
# which day should it do cleanup on? defaults to 0 (Sunday). If this day isn't in the
# DAYS_OF_WEEK above, it'll never happen
CLEANDAY="0"
# set to yes to make the yum-cron service to wait for transactions to complete
SERVICE_WAITS=yes
# set maximum time period (in seconds) for the yum-cron service to wait for
# transactions to complete. The default is 300 seconds (5 minutes)
SERVICE_WAIT_TIME=300
CHECK_ONLYとDOWNLOAD_ONLYの設定に応じて、更新はせずに更新可なパッケージを確認、またはダウンロードのみに留めることができるみたい。デフォルト設定のまま、更新まで実行させておく。冒頭の通り、逐次それを自分で確認して必要なものだけインストールするのは面倒この上ない。どうせ自宅環境だし、パッケージアップデートによって動かくなったサービスがあっても特に問題無い。
最後にyum-cronを起動して、chkconfigで自動起動を有効にする。
# /etc/rc.d/init.d/yum-cron start
Enabling nightly yum update: [ OK ]
# chkconfig yum-cron on
ps auxしてもそれらしきプロセスが存在しないので、デーモンプログラムでは無いみたい。
/var/log/yum.logにログが出力されるようなので、後日確認しよう。
あとは、メール通知させるくらいかなぁ。。。
IPv6化の準備してみた
今度はIPv6化に興味を持ち始めた。まずはその準備ということで、記録をまとめてみる。ひとまず、IPv6でインターネット接続できるようになるまでをゴールとしよう。流れとしては以下の通り。
前提として、足回りはNTTのフレッツ光ネクストを使用している。フレッツ光などの場合はまた方法が変わってくるので、注意すべし。
フレッツ・v6オプションの追加
とりあえずNTT西日本へ電話し、v6オプションの契約方法について案内してもらった。以下のURLから「フレッツ・v6オプション」を追加で契約すればよいとのこと。
サービス申し込み受付ページ:https://www.flets-west.jp/wso/
nagamee「やっぱオンラインで変更できるよね♪。なんだ簡単じゃん(ポチっ)。あれ、WEBページに繋がらない。。。」
電話かけなおす。
NTT担当「IPv6のアドレス割り当てられてますか?」
nagamee「ん?無いですね(それを今からやろうとしてるのに。。。)」
NTT担当「ではIPv6パススルーが有効化されていないのかと。そうでないと当WEBページにはアクセスできませんよ。一般的なブロードバンドでは有効になっていると思うのですが。ルータは何を使ってますか?」
nagamee「YAMAHAルータです。」
NTT担当「あ、弊社ではサポート外ですねぇ。。。」
nagamee「うす。こちらで設定します」
というわけで、IPv6パススルーの設定が必要なようだ。だがまてよ。ということはIPv6アドレスを持つクライアントと、IPv6をパススルーしてくれるルータが必要なる。そして、フレッツ・v6オプション契約前からIPv6アドレスは配られていることとなる。どういうことだ、誰か説明しろ。とりあえず、配られてるのならば、まず設定をしてみよう。この謎はあとで解消することとする。
IPv6パススルー
IPv6パススルーは、ルータ広告をプロキシする機能。すなわち上位回線(NGN網)からのルータ広告(RA)を、ルータで受けてLAN内にばらまく。LAN内のノードは広告されたネットワークアドレスから、自身のIPv6アドレスを決定する。RAについては、JPNICに記載されている説明がわかりやすい。
肝心のRTX1100に対する設定内容は、以下の通り。(自分の環境では、LAN2がWAN側、LAN1がLAN側となっているため、異なる場合は適宜読替えてもらえれば。)
ipv6 prefix 1 ra-prefix@lan2::/64
ipv6 lan1 address ra-prefix@lan2::1/64
ipv6 lan1 rtadv send 1
1行目。WAN側(LAN2)でNGN網からRAを受けるぞ
2行目。WAN側(LAN2)で受けたRAの情報から、LAN側(LAN1)インタフェースのアドレスを設定するぞ
3行目。受けとったRAは、LAN側(LAN1)にマルチキャストするぞ
手順自体は、YAMAHAのサポートページ]に記載されている。
最後に、IPv6アドレスが設定されたことを確認する。
[FCASTRUM]# show ipv6 address
LAN1 scope-id 1 [up]
Received: 155516 packets 34264064 octets
Transmitted: 9 packets 744 octets
global 2001:a452:xxxx:xxxx::1/64 (lifetime: 604779/2591979)
link-local fe80::2a0:deff:fe34:d39d/64
link-local ff02::1/64
link-local ff02::2/64
link-local ff02::1:ff00:1/64
link-local ff02::1:ff34:d39d/64
[global]の項目にアドレスが割り当てられていればOK。LAN内のノードについてもIPv6アドレスが割り当てられていたので、きちんとRAプロキシされているようだ。
この段階で、やっと先のフレッツ・v6オプション申し込みページを表示することができる。
サービス申し込み受付ページ:https://www.flets-west.jp/wso/
ログインにはお客様IDとアクセスキーが必要となる。契約書類に記載されているはず。別途準備しておくがよし。手続き自体は何も難しいことはなく無事完了。NTTの工事が完了次第メール通知がくるとのことなので、気長に待つことにする。
RTX1100をファームアップしてみた
YAMAHAのファームウェアリリースページからバイナリをDLする。
バイナリのアップロード
まず、RTX側でTFTPを有効化する。
アップロード元ホストのIPアドレスを指定
# tftp host xxx.xxx.xxx.xxx
バイナリをDLしたホストからRTXへバイナリをアップロードし、ファームを更新する。
$ tftp
tftp> connect xxx.xxx.xxx.xxx
tftp> mode binary
tftp> put rtx1100.bin exec
RTX側のログ
Update file receiving...
Testing received file...
Writing to Nonvolatile Memory...
done
Restarting...
��切断~
再度接続してファームのバージョンを確認する。TFTPはOFFっておく。
# show config
# RTX1100 Rev.8.03.94 (Thu Dec 5 19:06:16 2013)
��以下略~
# no tftp host xxx.xxx.xxx.xxx
以上、楽勝。これでL2TP/IPSecでリモートVPNに挑戦できるんさぁ♪
grepのオプションABC
先輩がコマンド打っているのを横で眺めていて、初めて知った。
grepの-A, -B, -Cオプション
$ rpm -qa | grep nginx -A 1
nginx-release-centos-6-0.el6.ngx.noarch
findutils-4.4.2-6.el6.x86_64
--
nginx-1.6.2-1.el6.ngx.x86_64
libselinux-utils-2.0.94-5.3.el6_4.1.x86_64
- -A n: ヒットした行から後n行を表示
- -B n: ヒットした行から前n行を表示
- -C n: ヒットした行の前後n行を表示
After, Before, Contextの略なり。
この次の行にアレがくるはず!!なんて時使えるね。
スキルを習得すること
めまぐるしく移り変わるIT業界において、エンジニアにはスキルの習得に終わりがない。
スキルというと、まず資格が思い浮かぶ。っで、勉強して、試験を受けて、合格して、満足してしまうのが王道パターンではなかろうか。
以前は自分もその傾向にあったので、今年に入ってからはなるべく短期一発は控えている。
少し長めのスパンで知識の定着を図りながら勉強に励んでいる。
けれども最近になって、ちょっと考えなおした。
「スキルを習得する」、「知識の定着」って言葉を使っているけど、どういう状態を以ってそういえるのか。
そして、最近読んでいる「ドラッカーさんに教わったIT技術者が変わる50の習慣」でそのもやもやが明確になった。
本書の中で、スキルの習得のステップについて記載があった。大きく四段階に分かれていて、
最初の状態は、知識があることを知らず能力も持っていない状態です。
スキルを習得する最初のステップは、それに「気づく」という段階です。
能力があるといえる状態になるには、実践と訓練が必要です。
スキルが身についたと言える状態は、無意識で能力を発揮できる状態ということです。
とてもシンプルなのだけど、非常に感銘を受けた。
まず、人はそれに気づいた時点で一歩成長しているのだ。
ここで「実践と訓練」を重ねれば当たり前になる。そうなったらスキルを習得したといえるんだ。
こうやってシンプルに考えると、自分がこれまで学んできた中で
習得できていること、できていないことが分類できる。指標になる。
これができている人、わかっている人からみればフツーのことかもしれないけど、
こんなん考えてみれば当たり前じゃんよーって思わなくなった素直な自分がいて、
これは一歩成長かとおもった次第。
//
nagamee