いろいろバックエンドな人の備忘録

CとGoが大好きな人のポエム掲載所

<ひとりごと>命名規則について(特にホスト名)

ちょっと疑問におもったから書く。

命名するシチュエーション

ITの世界では何かと一意の名前が必要になることが多い。

たとえば・・・

  1. プログラミングにおける変数名
  2. サーバーのホスト名
  3. ルーターのアクセスコントロールリスト(ACL)名
  4. アプリケーションのプロファイル名

など。

それらに命名するときは一定の法則となる 命名規則 を定義すると思う。(するべき。) この命名問題はAWSGCPなどのクラウドに移行したとしても、命名の問題はずっとつき続ける。 皆さんはどのように命名しているだろうか。

ホスト名にIPアドレス必要か

今回はホスト名を例にとる。

以前、自分が担当してきたシステムでは、ホスト名(VMのインベントリ名も)にの命名ルールに「IPアドレスの第4オクテット」をつける慣習があった。
例えば 10.11.12.13 のメールサーバーは mail13 という具合だ。 自分はこの慣習に違和感があった。

なぜなら、

  • IPアドレスは変わる可能性がある。
  • 構築の時期によって飛び番号になることがある。
  • そもそも、その数字にその情報にあまり意味がない 。
IPアドレスは変わる可能性がある

IPアドレスは基本的に可変的な性質のものだ。と書くと、 「いやいや、IPアドレスを固定にすればいいじゃん」と思うかもしれない。

もちろん、企業内のシステムの原則はそうなのだが、システム統合や移転などはIPアドレスを変更する必要ことがよくある。 古くなったシステムを入れ替えたときに変わることも珍しくない。 このことから、IPアドレスは永久的に固定というのは前提にしないほうがいい。

余談だが、IPアドレスを変更しなくても、NATなどで無理やり設計することもできなくもないが、 色々制限が加わるので通常はIPアドレスの変更で対処する。

構築の時期によって飛び番号になることがある

例えば、はじめはシングル構成のWebサーバーとして、web2(192.168.0.2)を作ったとしよう。 その後、メールサーバーとしてmail3(192.168.0.3)を構築した。

ある時、アクセス増加に伴いWebサーバを増強し、増強したWebサーバのホスト名をどうするかを考えたとき、 web2がすでにいるのでweb3にしたほうが自然になる。ルールに従えばIPアドレスは 192.168.0.3 なる。 しかし、すでにmail3(192.168.0.3)がいるため、web4(192.168.0.4)など飛び番号にするしかなくなる。

結果、インベントリからは web2,web4など不自然な形になる。

そもそも、その数字にその情報にあまり意味がない 。

そもそも、ホスト名にIPアドレスの情報が必要だろうか。 重複排除目的にしてはには 1/256(厳密にはネットワーク・アドレスとブロードキャスト・アドレスがあるのでもう少し少ない) の確率でで重複するし、

メリットを無理やり考えるならSSHでログインして、第4オクテットとホスト名が一致してたらちょっと安心するくらいである。

理想的なホスト名

(先に書いておくと結論はない。)

理想的なホスト名は何がいいのか他のシステム担当をしている人に聞く機会があった。 その人が担当しているものは システム名-(ハイフン)ある分野の単語 で命名しているらしく、ある分野の単語は現在のところ星の名前にしているらしい。 例えば、水金地火木土天海…の順番で命名すると決めた場合は web-mercury, web-venus, mail-mercury,mail-venus という具合だそうだ。

これもちょっと疑問がある。僕みたいに星に詳しくない人はまず読みにくいし、枯渇する可能性もある。

っというか、そもそもそんな名前にしなくても、普通に web-01 web-02 では不都合があるのだろうか。。。

<メモブログ> XenServer + Softether VPNサーバを構築するときはプロミスキャスモードを有効にすること。

※加筆中

構築するにはプロミスキャスモードを有効にする必要がある

[root@xenserver ~]# xe pif-param-list uuid=<UUID★>
uuid ( RO)                       : <UUID★>
                     device ( RO): eth0
                        MAC ( RO): fe:ff:ff:ff:ff:ff
                   physical ( RO): false
                    managed ( RO): true
         currently-attached ( RO): true
                        MTU ( RO): 1500
                       VLAN ( RO): 301 ★VLANでも適用できる
             bond-master-of ( RO):
              bond-slave-of ( RO): <not in database>
       tunnel-access-PIF-of ( RO):
    tunnel-transport-PIF-of ( RO):
                 management ( RO): false
               network-uuid ( RO): <UUID★>
         network-name-label ( RO): (network)to ServerDMZ
                  host-uuid ( RO): <UUID★>
            host-name-label ( RO): hydro-dez
      IP-configuration-mode ( RO): None
                         IP ( RO):
                    netmask ( RO):
                    gateway ( RO):
    IPv6-configuration-mode ( RO): None
                       IPv6 ( RO):
               IPv6-gateway ( RO):
       primary-address-type ( RO): IPv4
                        DNS ( RO):
                 properties (MRO):
               capabilities (SRO):
                io_read_kbs ( RO): 0.108
               io_write_kbs ( RO): 0.000
                    carrier ( RO): true
                  vendor-id ( RO): 10ec
                vendor-name ( RO): Realtek Semiconductor Co., Ltd.
                  device-id ( RO): 8168
                device-name ( RO): RTL8111/8168/8411 PCI Express Gigabit Ethernet Controller
                      speed ( RO): 1000 Mbit/s
                     duplex ( RO): full
            disallow-unplug ( RW): false
               pci-bus-path ( RO): 0000:06:00.0
               other-config (MRW): promiscuous: true  ★これがついていればOK

https://support.citrix.com/article/CTX139535

<つぶやき>世知辛いですな

下記記事がおもしろかった。 piano6789.hatenablog.com

このブログの一発目記事(※1)になったように、自分も社会人になってからピアノを再開した身であるし、教室探しに苦労したから共感できることは多かった。

※1 ITエンジニアがピアノを習い始めに行ったようです。(1日目) - いろいろバックエンドな人の備忘録

現在は某大手教室に通っている。 大手だとカラオケボックスのようにガラスドアの部屋が幾つかあるスタイルになっている。 なので、個人レッスンを受けつつセキュリティ(男が脅威になっているのは悲しいがそういう時代なのである)対策もできるという合理的な構成だとおもう。

恥ずかしながらピティナを知らなかったので、自分は会社の福利厚生サイトから見つけた。 (蛇足:福利厚生のプランは女性限定だったので使えなかったけどね。ここも男性には世知辛い世である。)

自分は、バレエ事件、アイドル殺傷、某芸能人の性的暴行事件などよりすこし前に入会していたが もし、今から入会するとなるともっと気を使うんだろうなあ。

<メモブログ> devise の seeds.rb の書き方

問題

メール認証(confirm) を有効にしている状態で User.create(… してもメール認証が走りアクティブ化されない問題

解決

.confirm を呼べば良い。

## ユーザー生成
user_admin = User.create(
  email: 'admin@example.com',
  password: 'password',
  fullname: 'Administrator'
)
user_admin.confirm