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でインターネット接続できるようになるまでをゴールとしよう。流れとしては以下の通り。




  1. 回線事業者とのIPv6契約

  2. プロバイダとの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に挑戦できるんさぁ♪



SSDを買ってきた

最初は買う気なんて全く無かったのだけど、先輩にそそのかされて買ってしまった。

購入したのは、Intel製の710シリーズの300GB。サーバ用途に出されているモデルのようで、MLCなのにSLC並みの書換耐性を誇る。なんと公称で3PB。

現在の最新は3710シリーズなので、2世代ほどの型落ち、かつSATA2インタフェースのためスループットは3Gbps。

けれどこいつが1本\7,999で売っていた。SATA HDDと比較してシーケンシャルはさほど変わらないであろうものの、ランダムアクセスに強いSSDならばそれだけでも利用価値が高いと思われ。

MLCとSLCの特徴についてこのサイト様がわかりやすい。



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