OpenStack, 小ネタ

おはようございます。ライトノベル好きのツチノコです。

さて、先日までOpenStackの検証環境を作って検証をしていました(Mitaka Release)。
その時につらかったことの1つが、設定項目に設定するべき値やそもそも項目自体の存在がわからないということでした。
結果としてドキュメントやdaemon起動時の設定値のダンプを見ていろいろと悩んで解決できたのですが、そもそも設定値がどこで定義されているかをmain関数から追いかけてみました。

novaを例にとるとmain関数はcmd/以下にあります。
cmd/api.pyを例に読んでいきます。

37行目にそれっぽい部分があります。

nova.conf.CONFはconf/__init__.pyで定義されています。
cfg.CONFはoslo_config.cfg.CONFというグローバル変数で、その下にそれっぽい関数があります。

この関数の実態はconf/api.py#L403にあります。
それで上のほうを見ると、OptGroup(confファイルで[api]などのセクションになる)とOpt(confファイルでauth_stratedy=…_というオプションと値となる)が定義されているところが見つかります。

まとめ(novaの場合)
・conf/*.py に各オプションの定義があります。
・import nova.conf した段階で各オプションがCONFに登録されます。

他の(いまのところドキュメントが充実していない)プロジェクトもこうやっていけばオプションにたどり着けるはずです。

おまけ
こんな感じで全ファイルをロードしてregister_opts関数を呼べばひょっとしてオプションのリストができるのではということを思いつきました。何事も暴力で解決するのが一番だ。

結果のnova.txt(348KBあります)の一部です。

わーい。

生成に利用したツールは以下の場所にあります。
リポジトリ
プロジェクトごとに生成したテキスト
中間生成されるjsonの例

ドキュメントがあればそちらを参照するのがよいですが、今のところドキュメントが見当たらないdesignate/magnumなども生成できますので、これはこれでよいかなというところです。

今後もいろいろ実験していこうかと思います。

P.S. 発売日が近い本の中でぜったい転職したいんです!! ~バニーガールは賢者を目指す~が気になっています

コラム, 小ネタ

そろそろ忘年会シーズンです。
PPAP、練習してますかー?

ちなみにPPAPというのは、HPの独自プロトコルです。
詳細は以下を読んでください。

PPA – HP Printing Performance Architecture
http://www.undocprint.org/formats/page_description_languages/ppa

 

英語は苦手ですよね?
最近パワーアップしたというGoogle翻訳を使ってみました。

PPAPをGoogle翻訳

英語

The PPA protocol is actually composed of two protocols: a lower-level packet protocol called VLink and the Sleek Control Protocol (SCP). The VLink protocol regulates all data transferred back and forth between the printer and the computer. SCP sends command sequences to tell the printer to do things like load a sheet of paper, eject, and print a sweep.

Although PPA is a bi-directional protocol, I have mainly concentrated on its uni-directional component. It is not required for the host to be aware of the bi-directional nature of the device, which makes this easy to do.

All values are stored in big endian format.

日本語

PPAプロトコルは実際には、VLinkと呼ばれる低レベルパケットプロトコルとSCP(Sleek Control Protocol)という2つのプロトコルで構成されています。 VLinkプロトコルは、プリンタとコンピュータ間で転送されるすべてのデータを制御します。 SCPは、コマンドシーケンスを送信して、プリンタに用紙のセット、取り出し、掃引などの処理を指示します。

PPAは双方向プロトコルですが、私は主にその一方向コンポーネントに集中しています。 ホストがデバイスの双方向性を認識することは必須ではありません。このため、これを簡単に行うことができます。

すべての値はビッグエンディアン形式で格納されます。

 

ほぼ完璧な翻訳。
Google翻訳すげー、というネタでした。

忘年会で無駄な小ネタを披露してツルツル滑って欲しいな、と願っています。

コマンド, 小ネタ

おはようございます。ライトノベル好きのツチノコです。年末年始に読むライトノベルは決めましたか?

さてansibleのplaybookを書いていたりすると、ディレクトリ構造が深くなりがちです。
作業中に深いディレクトリから浅いディレクトリへ移動するときにめんどいのでなんとかしました。
・cd ../../../ などで上がろうとすると、いくつ上がるんだっけとか、間違って ./ や …/ と typo する
・popd しようとしても移動先ディレクトリがスタックに入ってるとは限らない

.bashrc に以下のfunctionを定義します。

これでカレントディレクトリのパスの一部を指定して、そのディレクトリにcdするコマンドuptoができました。

こんな感じで使えます。

補完も効きます(候補がsortされるけど・・・)

部分一致にも対応してます。

べんり。

p.s. 華麗なる探偵アリス&ペンギンおもしろいですね

小ネタ, 趣味, 雑談

今日はポッキーの日ですが、酉の市の日でもあります。

酉の市
https://ja.wikipedia.org/wiki/%E9%85%89%E3%81%AE%E5%B8%82

今年の酉の市は11月11日と23日、深夜0時から24時間続きます。

昨晩新宿の花園神社に行ってきました。
沢山の提灯が吊られ、縁起物である熊手が沢山売られていました。

img_4364

小さいのを1つ買ってみましたが、自分でも作ってみたくなりますよね。

img_4368

ということで、みんなの手元にあるUTPケーブルを使って熊手を自作してみます。

素材、道具

  • UTPケーブル
  • ニッパー
  • ケーブルストリッパー
  • 細径電動ドリル

img_4373

ケーブルを剥く

ケーブルストリッパーで 被膜を剥きます。

img_4374

img_4376

被膜を加工

開いて、ドリルで穴を開けていきます。
安全のためダンボール箱に養生テープで固定しつつ作業をしています。

img_4382

img_4383

ケーブルを整形

より線をほどいて、まっすぐにして、いつもの順番に揃えます。

img_4386

img_4389

パーツを組み合わせて整形

被覆の穴にケーブルを通して整形します。

img_4391

img_4393

飾って完成

とりあえずディスプレイに貼ってみました。

img_4395

 

30分ほどで作れます。

みなさんも作ってみてはいかがでしょうか?

もの作りは楽しいです。

DMM.make AKIBA も今日で2周年です。

hardware, linux, 小ネタ

おはようございます。ライトノベル好きのツチノコです。ヒマワリの季節が近づいてきましたね。

さて、タイトルの通り、ONIEをbuildしました(というか何回かしている)ので日本語で手順をまとめておきます。
公式のドキュメントは https://github.com/opencomputeproject/onie/wiki/Building-ONIE です。

5月のJapan ComCamp meets de:codeでLTした、例のブンチンカッコカリからのリカバリの時にも利用しました(スライド中ではONIE関連は省略)。

前の記事はここです。間があいてしまってもうしわけないです(夏休みの宿題はためるタイプでした)

環境はDockerで作ってしまうことにします。Dockerfileは https://gist.github.com/wataken44/e5e6c7f94b257c15196d50bab9a9a2de にあります。

まずはimageをbuildします。

Dockerfileの中身は以下のようになってます。

コンテナを走らせてbuildします。

<vendor>,<model>のところにはお手元の機種名を入れます。DellのS6000-ONだとそれぞれdell, s6000_s1220になります。一覧は ~/onie/machine 以下にあります。

1時間くらいでbuildが終わり、isoイメージやpxe用のイメージができます。

あとはUSBメモリに焼くなりなんなりしてセットアップすればONIEのインストールができるようになります。
ご活用ください。

BIOS
上はDell S6000-ONのBIOS画面です。AMIのBIOSが動いていて、8GBのメモリが乗っていることがわかります。
シリアル経由ですがツチノコブログの読者には見慣れた画面ではないでしょうか。

S6000のBIOS
Boot orderを変更できる画面です。

ネットワークスイッチのBIOS画面が見れて、そこらへんのPCと同じようにOSをインストールしたりできるようになりました。すごい時代ですね。

p.s. このテンプレ展開のせいで、おれのラブコメが鬼畜難易度がすごい

PAGE TOP