CONBU, イベント, インフォメーション, コラム, ツール

あけましておめでとうございます。実は今年初のブログです。
本年もよろしくお願いします。

先日CONBUの一員として取材を受けた内容が、日経NETWORKの最新号の「ネット管理のお助けツール」という特集記事で取りあげられています。

日経NETWORK2017年3月号
http://ec.nikkeibp.co.jp/item/backno/NN0203.html

我々が紹介した、手作りネット構築の便利ツール、は以下になります。

  • 譜面台
  • トランシーバーアプリ
  • 静電気で貼り付くホワイトボードシート
  • カーペット用ケーブルガード
  • マグネットフック
  • ゴムシート
  • 六輪台車
  • 隙間用LANケーブル
  • はがしやすいラベルシール
  • 360度カメラ
  • 面ファスナーテープ
  • 深めの折り畳みコンテナー
  • タグ付きのケーブルバンド
  • 外付けのNIC
  • 無線LAN調査機器

ネットワーク技術情報紙とは思えないものが並んでますね。
場違い感半端ない感じです。
でもそれぞれ便利なんですってば!!
便利そうなグッズを街で見かけたら、それどこで買ったの?、その道具の名前は何?、と遠慮せずに聞いちゃうのが情報集めのコツです。
深めの折り畳みコンテナは電車の中で釣りに行くおじさんからアイリスオーヤマで買えることを教えてもらい、スーパーマーケットの中の人に六輪台車の品名を教えてもらいました。

実際にこれらの道具が使われている様子は、CONBUがお手伝いしているイベント会場で見ることができますので、良かったら足を運んでみてくださいませ。

直近だと、DroidKaigi 2017、Elixir Conf Japan 2017 でお手伝いをさせていただきます。

DroidKaigi 2017
https://droidkaigi.github.io/2017/

Elixir Conf Japan 2017
http://www.elixirconf.jp/

 

残念ながら紙面に載ってないけど使うと楽しい道具は他にもあります。
過去のツチノコブログにも登場したモノを2つほど上げておきます。


ガフガン(GAFFGUN)

長いケーブルを一気に床養生できる凄いヤツです。

ケーブル養生の秘密兵器、GAFFGUNを使ってみた
http://tsuchinoko.dmmlabs.com/?p=1708

CONBU ライブ設営 @ YAPPC:Assia Tokyo 2015
https://www.youtube.com/watch?v=C8KR9W5JPfQ

大きめの会場で長い距離を一気に養生するときにはとても便利なんですよね。

とはいえ問題点がいくつかあるので、今回の紙面からは落選しました。

  • 使うのにちょっとコツがいる。
  • ベタっと貼られちゃうので撤収がしにくい
  • 床養生禁止の会場等もあり、使える場所を選ぶ
  • 面養生が必要なケースはそれほど多くない
  • 人が通るような場所をしっかり養生する場合にはゴムシート等の別の道具で養生するほうが良い
  • 使ってると楽しくなってきちゃって、使うことが目的になってきちゃう。

ウォーキングメジャー

コロコロ転がすと距離が測定できる道具です。

ツチノコNOC JANOG39会場下見に行ってきました
http://tsuchinoko.dmmlabs.com/?p=4877

ツチノコNOC〜会場ネットワーク構築下見編〜
http://tsuchinoko.dmmlabs.com/?p=4839

これも以下の理由で今回の紙面からは落選してしまいました。

  • 会場から提供される図面に距離がきちんと入っていることが多く測定が必要ないことが多い
  • 使ってると楽しくなってきちゃって、測定に夢中になって他の大事なことを見落としちゃうことがある。

使って楽しい道具のほうがもちろん良いのですが、楽しすぎて手段が目的化しちゃうのは良くない、ってことですねえ。
我々は使って楽しい便利な道具を引き続き募集中です。

ICTSC, ツール, 運用管理

はじめまして。
ICTトラブルシューティングコンテストの実行委員をやっている黒崎 (@kuro_m88) です。
学生時代に第3回の運営をやり、社会人になってからは運営学生のサポートをしています。

ICTトラブルシューティングコンテスト(以下ICTSC)とは、学生による、学生のためのインフラ技術コンテストです。
来月の2016年8月27日 にNTT西日本杯 第6回 ICTトラブルシューティングコンテストが大阪で開催されます。
トラコンに関する過去のツチノコエントリーは以下をご参照ください。

ツチノコブログICTSCエントリ集

TerraformでGitHubのチーム管理を自動化してみた

ICTSCでは出題に利用するコードや出題する問題案の管理をGitHubを利用して行っています。
https://github.com/ictsc

ICTSCに携わる学生や社会人は基本的にこのGitHub Organizationに入っているのですが、回によって運営に携わる学生も違います。
第4回だけ運営だった人もいれば、第4回, 第5回は運営だったけど、第6回は競技者として参加するといったケースもあります。

ICTSCのGitHub Organizationに入っている人は今回で50人くらいになるので、誰が第何回の運営だったかぱっと把握するのが難しくなってきました。

一番簡単なのはその回の運営に関係ない人をOrganizationからはずすことなのですが、せっかく運営に関わってくれたのにはずすのも寂しいなと思い、ユーザ管理をある程度自動化できないかなと思い立った訳です。(課金体系が変わったら運用方法を考えないといけませんが…)

Terraform GitHub Provider

その頃会社でTerraformを使い始めたので、GitHubも同じような感じで管理できないかなー?と調べてみると…!

なんと、Terraform GitHub Providerがあるではないですか…!?
https://www.terraform.io/docs/providers/github/index.html

これを使えばGitHubのOrganizationの

  • メンバー管理
  • チーム管理
  • チームのメンバー管理
  • リポジトリの権限管理

ができるようです。やりたい操作が全部用意されていました!!

ドキュメントを読みながら、こんな感じのものを作ってみました。
https://github.com/ictsc/ictsc-github-member

簡単に説明しますと、まずICTSCのGitHub Organizationのメンバーをここで定義します。
ictsc-github-member/members.tf

次に、チームを作ります。例えば第6回の運営参加メンバーはICTSC6というチームに所属させます。
また、そのチームが読み書きできるリポジトリも定義しています。
ictsc-github-member/team-ictsc6.tf

過去の運営チーム(ICTSC5等)のチームはプライベートリポジトリを見られないようにしています。
ictsc-github-member/team-ictsc5.tf

最後にこれらの操作をCircle CIで自動化できるようにします。
こんな感じの設定ファイルを書きました。
ictsc-github-member/circle.yml

運用方法

ICTSCのチームメンバに追加して欲しい人はプルリクエストを投げます。
https://github.com/ictsc/ictsc-github-member/pull/40

(ちなみに、彼は第5回の運営委員で、第6回は運営ではなく競技者として参加するのでこのプルリクエストは拒否します)

このリポジトリはpublicですが、マージする権限があるのは実行委員(社会人サポートチーム)の人だけなので、レビューののち production ブランチにマージするとCircleCI上でterraform applyが走り記述したとおりの権限がメンバーに与えられます?

いい感じですね!?

事故は突然に

github_membership.membership_for_kurochanという名前が冗長に感じたのでmembership_for_を取り払ってgithub_membership.kurochanのような書き方に統一したくなったので統一しました。

terraform planで変更内容を確認して、terraform applyしてみました。以下がその時のログです。

$ ~/terraform/terraform apply --var-file=conf/github.tfvars
github_membership.membership_for_kurochan: Refreshing state... (ID: ictsc:kurochan)
github_membership.membership_for_kurochan: Destroying...
github_membership.netmarkjp: Creating...
role: "" → "admin"
username: "" → "netmarkjp"
github_membership.kurochan: Creating...
role: "" → "admin"
username: "" → "kurochan"
github_membership.membership_for_kyontan: Destruction complete
github_membership.membership_for_kurochan: Destruction complete
github_membership.netmarkjp: Creation complete
github_membership.kurochan: Creation complete

コマンドの実行も成功し、当時管理者権限を持っていた僕ともう一名のアカウント設定の名前が、変更されています。
うんうん、ちゃんとうまく行ったようです。

ひととおり仕組みを作ったので学生に自慢しようと思った矢先、GitHubから一通の不穏なメールが…?

!?!?

誰かに僕のアカウントの管理者権限が外されたようです。

せっかくterraformで管理しているのでもう一度terraform applyしてみましょう。

2 error(s) occurred:

* github_membership.netmarkjp: PUT https://api.github.com/orgs/ictsc/memberships/netmarkjp: 403 You must be an admin to add or update an organization membership. []
* github_membership.kurochan: PUT https://api.github.com/orgs/ictsc/memberships/kurochan: 403 You must be an admin to add or update an organization membership. []

Terraform does not automatically rollback in the face of errors.

403 You must be an admin to add or update an organization membership.

??なんかやばそう!!??

とりあえずもう一人の管理者権限を持っている方に僕を管理者に戻すようにお願いしました。

えっ、もうこれはどうしようもないのでは…?

そしてだれもいなくなった…

管理者権限のあるユーザ全員(自分含め)から権限を剥奪してしまったようです。
誰一人管理者がいない状態なので、復旧のしようがありません。
学生にドヤ顔するつもりがなんと説明すればいいのか分からない状態になりました…。こんなことってあるのか…?

困ったときの神頼み

どうしようもなくなったので神様(サポート)に連絡するしかありません。
自分の英語力で通じるのか自信なかったですがとりあえず連絡…

すると

よかった…回復してもらえそうです。

どうしてこうなったのか

最初のログを見ると一見成功したように見えます。
ただ、2度目実行した時には権限がなくなっていてエラーになっていたので、APIコールした瞬間はすくなくとも権限を持っていたようです。

ここからは僕の想像なので本当にこうなっていたのか分かりませんが、例えばGitHub側が

こんな感じの権限の更新の処理が非同期に行われる仕組みになっていたとしたらTerraformのように高速でAPIを叩くアプリケーションを実行した場合、今回ような事故が起きそうです。。

対策

Terraformを実行する用のユーザを作成しました。
このユーザに管理者権限をもたせ、このユーザのアカウントに関してはTerraformの管理外としました。
これで自分で自分の権限を剥奪するような事故は起きないはずです。

教訓

terraform planはあくまでも実行計画を表示するだけであって、実際に適用したら成功するかどうかは別の話で保証されないということを身を持って経験しました…。
実行される内容が問題ないかしっかり確認してから適用しましょう。。(以後気をつけます)

さいごに

ICTトラブルシューティングコンテストではこのような実際の経験を元にしたトラブルの問題を運営学生がたくさん作っています!
次回コンテストも面白い(つらい?)トラブルが出題されると思いますのでご期待ください!!

イベント, ツール, デザイン, 勉強会

SONY DSC

ドーモ、arimoです。

このたびステッカー作成大使に任命されまして、IllustratorというAdobeのソフトを駆使して発注するまでのまとめをつづります。

今回発注した商品はこれです。http://www.graphic.jp/lineup/ondemand/sticker.php
入稿から5営業日で発送してくれるのですごいです。
作り方の注意はhttp://www.graphic.jp/technical/data_goods/sticker.phpに書いてありますがよくわからない。

0,準備編

スクリーンショット 2016-06-29 16.03.19

まずステッカーにしたいロゴのaiデータがあります。ない場合はどうしようもないのでがんばって発掘するか、ご自身で作ってください。

スクリーンショット 2016-06-29 16.03.57

ウィンドウ>レイヤーでレイヤーウィンドウを表示させて、右下のゴミ箱の隣の新規レイヤー作成ボタンを2回押してレイヤーを2つ作ります。

レイヤー名のところをダブルクリックして、デザイン(元のai)、ホワイト版、カットパスと名前を変えてわかりやすくします。

透明塩ビのステッカーを作る際にホワイト版というものがないと、白くしたいところが透明になってしまうので作る必要があります。たとえばチーノくんの目玉とかです。チーノくんの目玉が透明になると貼ったときにかなり恐ろしい仕上がりになります。ホワイト版といいつつ黒いシルエットのような画像のレイヤーです。

カットパスというのはシールをはがすときの切り込み線です。

1,ホワイト版レイヤーにロゴをコピーします

スクリーンショット 2016-06-29 16.06.53

デザインレイヤーにいる状態で、command+Aで全選択するか、左上の黒い矢印(選択ツール)をクリックして全体を囲うようにドラッグします。
すると全部のオブジェクトが選択されている状態になるので、command+Cまたは編集>コピーでコピーします。

レイヤーパネルで「ホワイト版」をクリックして、編集>同じ位置にペーストをすると、同じ位置にロゴがコピーされます。

2,ごちゃごちゃしたところをくっつけて、黒くしてホワイト版を作る

スクリーンショット 2016-06-29 16.15.09

ごちゃごちゃしたチーノくんのところを黒い矢印(選択ツール)で選択します。

線とか色とかがいっぱいあってわけがわからないところはとりあえず選択します。shiftを押しながらクリックすると選択が追加されたり、選択が解除されたりします。

スクリーンショット 2016-06-29 17.46.01

ウィンドウ>パスファインダーでパスファインダーパネルを表示させて、一番左上の四角が2個くっついているアイコンをクリックします。

スクリーンショット 2016-06-29 16.15.42

選択したところがくっつきました。色を黒にしなければならないので左下の色四角と白斜線があるところの色四角(ここではピンク)の部分をダブルクリックします。カラーピッカーで黒にします。

スクリーンショット 2016-06-29 16.15.56

「ツチノコブログ」の部分も選択ツールで選択して先ほどと同じようにカラーピッカーから黒にします。

スクリーンショット 2016-06-29 16.16.22

3,ホワイト版をグレースケールに変換して確認します

グレースケールでないとダメだとサイトに書いてあったのでいちおうグレースケールに変換します。
黒い部分を全部選択した状態で、編集>カラーを編集>グレースケールに変換

スクリーンショット 2016-06-29 16.17.43

ウィンドウ>カラーでカラーウィンドウを表示させ、

スクリーンショット 2016-06-29 16.18.06

カラーの下の四角が斜線と黒と白のみになっていることを確認します。

スクリーンショット 2016-06-29 16.18.15

レイヤーの順番をカットパス、デザイン、ホワイト版の順にします。ドラッグで重なり順が変えられます。

スクリーンショット 2016-06-29 16.18.46

チーノくんとロゴを別々に処理しないで、最初から全部選択してパスファインダーでくっつければいいじゃんと思っていたのですが、そうするとDMMのDの穴とブログのロの穴も埋まってしまうので、分けています。(Dとロの穴は透明にしたいためホワイト版がいらない)

4,地道にカットパスを作ってシールの切れ込みを指定する

スクリーンショット 2016-06-29 16.19.22

手順1と同様に、「カットパス」レイヤーに「ホワイト版」レイヤーを全選択したものをコピー、同じ位置にペーストをします。

わかりやすいように「デザイン」と「ホワイト版」のレイヤーの左側にある目玉アイコンをクリックして、非表示にしておきます。

スクリーンショット 2016-06-29 18.03.34

オブジェクト>パス>パスのオフセットを選択し、

スクリーンショット 2016-06-29 16.25.45

オフセット2mm(ロゴの位置から2mmぐらいのところを切り取り線にしたいため。用途に応じて変えてください)

角の形状をラウンドにしてOKを押します。

スクリーンショット 2016-06-29 16.25.53

モコモコしたのができます。

左下の色四角と白斜線があるところの入れ替え矢印を押します。

スクリーンショット 2016-06-29 18.08.15

モコモコの何かが線と中身に分かれます。再度選択ツールで全選択して、オブジェクト>グループ解除をします。

スクリーンショット 2016-06-29 16.26.23

中身だけを選択ツールで選択し、deleteボタンで削除していきます。

スクリーンショット 2016-06-29 16.27.00

ポチポチ消していって、こんなかんじでモコモコの線だけになります。線は削除しないように気をつけてください。

線だけになったら全選択して、パスファインダーで一番左上の四角が2個くっついているアイコンをクリックします。

スクリーンショット 2016-06-29 17.46.01

スクリーンショット 2016-06-29 16.27.44

カットパスの原型ができました。

5,カットパスの整形をする

Dのところに余分な線があるので「アンカーポイントの削除ツール」で削除します。

選択ツールの2つ下にあるペンツールを長押しするとマイナスのついたペン先が出てくるのでそれでアンカーポイントをクリックして消していきます。

image1

白い四角を探して、ポチポチ。いずれ消えます。

 

スクリーンショット 2016-06-29 16.29.59

こういう鋭利なところや込み入ったところがあると、うまくカットできないのでアンカーポイントの削除ツールでなめらかにします。

スクリーンショット 2016-06-29 16.30.19

数個アンカーポイントを削除するとこんな感じでなめらかになります。

気になる部分を削除してきれいにします。

スクリーンショット 2016-06-29 18.27.31

「デザイン」レイヤーと「ホワイト版」レイヤーの左にある目玉を表示させて保存して、完成です!

 

ツール, 運用管理

最近ギックリ腰(筋膜炎)で腰の大切さ、ありがたさを実感したトウマツです。こんにちは。
今回は、便利ツールを見つけましたので、みなさまに紹介したいと思います。

DMM.comラボは、DMM.comのサービスを快適にご利用いただくために、毎日のようにサーバを増設しています。

このサーバ増設には、サーバに対してIPアドレス等の初期設定をする為に、キーボード、ディスプレイ、マウスの3点セットが必要となる場合があります。
しかし、これらは大きく、重く、そしてかさばるので持ち運びに適さず、ギックリ腰の僕には苦行です。また、ディスプレイは電源を必要とするため200V供給のみのラックでは電源の確保も一苦労なのです。

というわけで、そんな悩みを解決してくれそうなツールを探してみたところ、良さげなツールを発見したので実際にどんな使い方が出来るのかを試してみました。

ノートパソコン接続KVMコンソール
http://www.startech.com/jp/Server-Management/KVM-Switches/USB-Crash-Cart-Adapter~NOTECONS02

CrashCartAdapter単体

 

実際にMacBook Pro‎とノートパソコン接続KVMコンソールを接続し、サーバをセットアップしてみるの図

CrashCartAdapter全体

 

このノートパソコン接続KVMコンソールをノートパソコンに接続して専用アプリケーションを起動すると、ノートパソコンのキーボードとマウスの入力信号をサーバにそのまま転送し、サーバから出力されるビデオ出力をノートパソコンの画面上に表示します。
つまり、従来サーバの初期設定に必要であったキーボード、ディスプレイ、マウスは不要となり、ノートパソコン1台とこのノートパソコン接続KVMコンソールのみ持っていけば済むのです。

ノートパソコン接続KVMコンソールの専用アプリケーションは、Mac OS XやWindowsにはもちろん、Linuxにも対応しています。また操作画面の録画機能を搭載していたり、USB CD-ROMに見せかけてISOイメージを読み込ませたりできるなど、「現場」で必要な機能が詰まっており、DMM.comラボのサーバデータセンタチームでも評判のツールの一つです。

というわけで、今後も面白そう、便利そうなツールをどんどん紹介していきますのでよろしくお願いします。

 

※こちらから購入しました@2015/12/02時点 $323.99
KVM Console to USB 2.0 Portable Laptop Crash Cart Adapter
(もちろんアフェリエイトではありません)

ツール

WAN高速化ツール

自分に対しての備忘録です。

APPEX NETWORKSのWAN高速化のプロダクト

アプライアンス機器とソフトウェアの両方で有償で提供されています。

net.ipv4.tcp_available_congestion_controlで設定できるcubic、bicのようなアルゴリズム。

提供されている主な製品群はこちら

LotServer:コンテンツサーバにソフトウェアをインストールし高速化

LotWAN:コンテンツサーバの前段に専用のアプライアンスを挟み込み高速化

LotClient:クライアントPCにインストールしてアップロードを高速化

アプライアンスは提案のあった販社様より借りて評価するとして、

今回はLotServerを検証してみます。

LotServerはWindowsでもLinuxでも対応しているので小回りの利く使い方ができそうです。

では、早速試してみます。

まずはFreeTrialを申し込みます。

メアドと電話番号とパスワードの登録が必要です。

登録するとメールが届きますのでそこに記載されているURLへ飛んでアクティベーション化します。

次にLotServerをダウンロード

注意点

lotServerを起動するスクリプトにてtso gso gro lro sgがoffにされます。

ただ、私の環境ではlroをoffにしようとするとエラーになりlotServerが起動しませんでした。

bnx2xのnicではこれをオフするために下記の設定が必要でした。

こちらの設定でlroはoffとなります。

とりあえず、インストールはこれだけですので早速試してみます。

■zetatcpをON 米国バージニア州のec2環境より東京にあるサーバから1.2GBのファイルをダウンロード

15.0MB/sでした。

■zetatcpをOFF 米国バージニア州のec2環境より東京にあるサーバから1.2GBのファイルをダウンロード

こちらは4.65MB/s。ONの時の三分の一程度の速度でした。

ちなみに

ローカル同志でも高速化するのかも試してみました。

■zetatcpをON 隣接サーバから1.2GBのファイルをダウンロード

370M/sでした。

■zetatcpをOFF 隣接サーバから1.2GBのファイルをダウンロード

459M/sでした。逆にONのほうが遅い。

隣接なら輻輳等の制御などしなくていいので逆にないほうが高速ということでしょうかね。

検証結果から

世によくあるWAN高速化の製品とあまり変わらいように思います。

ただ、終端ノード側で設置、もしくはインストールするだけでも効果があるので、

金額や用途によっては検討できるかもしれません。

ちなみにawsのサンパウロリージョンのec2環境からも試しています。

ON:72Mbps
OFF:56Mbps

pingの応答時間は400ms程度なのですが、回線が安定しているのか地球の裏側からでも結構早いんですよね。

PAGE TOP