タグ

ブックマーク / tdoc.info (29)

  • DockerコンテナでAnsibleをテストする — そこはかとなく書くよん。 ドキュメント

    DockerコンテナでAnsibleをテストする¶ Ansible 2.0になり、Docker connection pluginが標準で入りました。これにより、Docker内にsshdを立てることなくAnsibleを直接実行できるようになりました。 すでに導入されている方も多く、かなり今更ではありますが、Dockerコンテナに対してAnsibleを実行してテストする方法についてここに記します。 参考GitHubリポジトリ Dockerに対する場合の制限¶ まず最初にAnsibleをDockerコンテナに対して実行する際の制限についてです。 基的にはすべての機能が使えます。ただ、以下の制限があります。 /etc/hosts, /etc/resolv.conf, /etc/hostnameは書き換えできない これらのファイルはDockerがbind mountしており、書き換えられるが、置

  • Goのバイナリサイズを削減する — そこはかとなく書くよん。 ドキュメント

    あれ、 "-s"では変わってないですね…darwin環境ではでないのかななld周りのなにかだと思うのでそれはあとで追うとして、元々が26MBだったのが、5.2MBまで減りました。 圧縮に upx -9 を使った場合、かかった時間は15.70秒でそこそこ時間がかかりますね。3回ほど実行してだいたい同じぐらいでした。伸長時は0.10秒ほどでした。もちろんメモリなどにも依存しますので、この結果は鵜呑みには出来ませんが、あくまで目安として。 さらにいうと、 upx -1 で圧縮した場合は 0.78秒しかかかりません。それでいて、6.4MBと充分な圧縮効率となりました。この辺りはターゲットとする環境に合わせて決めればいいと思いますが、 -1 で十分な気もします。 まとめ¶ Goのバイナリが大きい問題は、ldflagsとUPXを使うことである程度解決できるのではないか、という話でした。 UPX知らなか

  • CPUやメモリなどの情報を取得するgopsutilのご紹介 — そこはかとなく書くよん。 ドキュメント

    CPUやメモリなどの情報を取得するgopsutilのご紹介¶ Go Advent Calendar 2015 の16日目です。 Pythonには psutil という、CPUやメモリなどの情報を取得するライブラリがあります。 拙作 gopsutil はこのpsutilをgolangに移植しようと始まりました。 gopsutilは、以下の特徴があります。 Linux/Darwin/FreeBSD/Windowsで動作します もちろん、対応状況はかなり違います (ほぼ) pure golangで実装されています。そのため、クロスコンパイルが容易です ほぼ、というのはdarwinのCPU利用率だけcgoを使っています。cgoを使わない場合は単にnot implementedが返ってきます。 psutilにない情報も取れます docker(cgroup)の情報だったり、仮想化状況だったり、好き勝手

  • WEB+DB PRESS vol88にMQTTの記事を書きました — そこはかとなく書くよん。 ドキュメント

    WEB+DB PRESS vol88にMQTTの記事を書きました¶ 2015年8月22日発売の WEB+DB PRESS vol88 に 速習 MQTT というタイトルでMQTTに関する記事を書かせていただきました。 内容は以下の通りです。 MQTTとは MQTTの利用場面 MQTTの特長 その他のプロトコルとの比較 MQTTを使ってみる 速習、というタイトルの通り、利用場面や特長の説明がメインの、MQTTという聞きなれないプロトコルの内容を一通り説明する内容になっています。一応MQTTを使ってみる、という箇所でMQTTを使うアプリをpythonで実装してみていますが、 eclipse paho のおかげもあり、非常に短い行で実装が完了しており、分量は正直あんまりです。 最近すっかりバズワード化してしまい、「MQTTはIoT時代の主役となるプロトコルだ」「MQTTで全部できる」というような

  • Server Side React with PostgreSQL — そこはかとなく書くよん。 ドキュメント

    Server Side React with PostgreSQLReactjsいいですよね。うちでもすでにReactで書いたサービスを動かしています。 さて、Reactjsの売りの一つはServer Side Renderingだと思います。すでに各種言語で動かしている方がいらっしゃいます。一例: Java: http://www.slideshare.net/makingx/reactjs-meetupjavassr go: https://github.com/olebedev/go-react-example python: https://github.com/markfinger/django-react でも、ちょっと待って下さい。サーバー側でレンダリングするなら別にAppサーバーにやらせる必要はないですよね。むしろ、データを保持しているDBにやらせれば、データの移動がな

  • MQTTのMQはMessage Queueではありません — そこはかとなく書くよん。 ドキュメント

    MQTTのMQはMessage Queueではありません¶ MQTT は "Message Queueing Telemetry Transport"の略である、との言説をたまに見かけます。しかし、使ったことがある方なら分かるように、MQTTには Queueの機能はありません 。MQTTのMQは Message Queueの略ではありません。 OASIS 標準となっている MQTT Version 3.1.1 ではMQTTはなにの略称かを明示していません。 また、 MQTTのWikipedia にも (formerly Message Queue Telemetry Transport) とあるようにかつては確かにMessage Queueだったけれど今は違う、と記されています。残念なことに、 OASISのTC の名前はMessage Queuingとなっていますが、これはTCを作った時の

    heavenshell
    heavenshell 2015/02/09
    "大事なことなので二回言いました。"
  • Go 1.4でstatic binaryを作成する — そこはかとなく書くよん。 ドキュメント

    Go 1.4でstatic binaryを作成する¶ (この文章はわりとメモ書きです。間違っていればご連絡下さい) Go言語で作成されるバイナリファイルは、すべてがstatic linkされて一つの バイナリに入る、という特長があります。 でも、どうも 1.4から "net" パッケージを入れているとdynamic linkになる 問題が起きているようです。(1.4.1で確認) % file hoge hoge: ELF 64-bit LSB executable, x86-64, version 1 (SYSV), dynamically linked (uses shared libs), not stripped % ldd hoge linux-vdso.so.1 => (0x00007fff05dfe000) libpthread.so.0 => /lib/x86_64-linu

  • (翻訳): Ansibleを使ったデプロイに関する一考察 — そこはかとなく書くよん。 ドキュメント

    (翻訳): Ansibleを使ったデプロイに関する一考察¶ (訳注: この記事は Thoughts on deploying with Ansible の翻訳です。著者のRamon de la Fuente さんから許可を得て、翻訳・公開しています。元記事の公開は2014年6月ですが、2015年1月現在にも通用する話だと思います) 私たちのデプロイ手順を簡単にするために Ansible で roleを書きました(以前は Capistrano を使っていました)。このroleは今やかなり完璧で、番環境に使い始めています。しかし作り始めた当初はいくつかの点で議論する必要がありました。今回みなさんとその議論を共有しようと考えたわけです。 デプロイとは?¶ 最初に "デプロイ" を定義しましょう。デプロイするとき、ユーザーはすでに "Provisioning" を終えており権限なども適切に整って

  • sangoの有料プランを開始しました — そこはかとなく書くよん。 ドキュメント

    sangoの有料プランを開始しました¶ ご好評頂いております、GitHubアカウントだけ用意すればすぐにMQTTが使える ようになる MQTT as a Service: sango に有料のスタンダードプランが導入されました。もちろん無料のプランはその まま使いつづけられます。 スタンダードプランは 同時接続数: 50 TLS可 QoS 0, 1, 2 対応 最大メッセージサイズ: 50 キロバイト 月間最大メッセージ数: 120,000 と無料プランに比べてとても実用的です。 さらに、ここまでの機能がついているのに、 一月たったの500円(税込み540 円) です。これはお得です! クラスター対応¶ そして、スタンダードプランの一番の売りは「クラスター対応」です。 スタンダードプランにお申込み頂くと、接続先が以下のように複数個表示され ます。(実際のホスト名ではありません) このどちら

  • Ansible コーディング規約 (の例) — そこはかとなく書くよん。 ドキュメント

    Ansible コーディング規約 (の例)¶ edXgithub上でAnsibleのコーディング規約を公開しています。 https://github.com/edx/configuration/wiki/Ansible-Coding-Conventions このリポジトリは GNU AGPLv3です。翻訳の場合でもおそらく大丈夫だと思いますので、ここで翻訳して公開してみます。 一般¶ YAMLファイル すべてのyamlファイルは2スペースのインデントで、 .yml を拡張子に 付けてください。 変数 jinja変数の形式を使ってください。 $var ではなく {{ var }} です。 jinjaの変数名の前後に空白を入れてください。 {{var}} ではなく {{ var }} です。 環境独自で上書きされる必要がある変数名は全部大文字としてください。 ロール内で完結する変数名は全部

  • sangoの使い方 - Python編 — そこはかとなく書くよん。 ドキュメント

    sangoの使い方 - Python編¶ Pythonからsangoを使う方法について説明します。 Rubyでsangoを使うには以下の手順で行います。 pipでライブラリをインストール クライアントの実装 確認した環境 python 2.7.8 paho-mqtt 1.0 1. pipでライブラリをインストール¶ pythonでは paho-mqtt を使います。なお、 mosquitto のライブラリもありますが、すでに開発が終了していますので、ご注意ください。 2. クライアントの実装¶ mqtt.Client() でMQTTクライアントのインスタンスを作成し、connectを実 行すれば接続します。デフォルトではMQTT 3.1で接続するようになっています ので、 protocol という引数を与えて3.1.1で接続するようにします。 connect後は get でSubscrib

  • sangoの使い方 - JavaScript WebSocket 編 — そこはかとなく書くよん。 ドキュメント

    sangoの使い方 - JavaScript WebSocket 編¶ ブラウザのJavaScriptからsangoを使う方法について説明します。 ブラウザからJavaScriptを使用してsangoを使うには、WebSocketを使用します。 sangoのダッシュボードでMQTT接続情報を開くと「WebSocket接続先」の情報が 記載されています。 これをメモしておきましょう。 1. JavaScriptを実装する¶ pahoから mqttws31.js をダウンロードして、読み込ませておきます。 2. クライアントの実装¶ Connect部分はPub/Subともに共通です。 他の言語ではClientIDは指定しない場合、ランダムな文字列を生成してくれる ものがほとんどですが、JavaScriptの場合は自分で指定する必要があります。 Math.random() などを使い、ランダムな

  • sangoの使い方 - Golang編 — そこはかとなく書くよん。 ドキュメント

    sangoの使い方 - Golang編¶ Go言語からsangoを使う方法について説明します。 Go言語でsangoを使うには以下の手順で行います。 go getでライブラリの取得 クライアントの実装 確認した環境 go 1.3 mqtt-golang 4572889cc6f741a610af3bb5447c90c03bfb763f 1. go getでライブラリの取得¶ eclipse pahoのgolangライブラリを go get で取得します。 go get git.eclipse.org/gitroot/paho/org.eclipse.paho.mqtt.golang.git package main import ( "fmt" "log" "time" MQTT "git.eclipse.org/gitroot/paho/org.eclipse.paho.mqtt.gola

  • sangoとmqttcliでMQTTを使うMicroServiceを作る — そこはかとなく書くよん。 ドキュメント

    sangoとmqttcliでMQTTを使うMicroServiceを作る¶ MicroServiceが微妙にバズりつつあるところですが、ここで sango と mqttcli でMQTTを使ったMicroServiceを作ってみましょう。 (注意1: MicroService の定義はよく 知りません) (注意2: mqttcliはわりとやっつけなところも多いので、問題がおきても広 い心で見てください) 準備¶ 事前にちょっとした準備が必要です。 1. sangoアカウントを作成¶ まずは sango からアカウントを作成しま す。GitHubアカウントがあればすぐに作成できます。 ダッシュボードを開くと、 接続先 : mqtt://<MQTTサーバーのアドレス>:1883 アクセス先トピック: shirou@github/# ユーザー名: shirou@github パスワード: ひみつ

  • MQTT as a Service: Sango のリリースをお手伝いしました — そこはかとなく書くよん。 ドキュメント

    MQTT as a Service: Sango のリリースをお手伝いしました¶ 日 2014年8月29日より、親会社の 時雨堂 はMQTT をインターネット上で簡単に利用できるサービスである「Sango」を提供開始しまし た。 https://sango.shiguredo.jp ダッシュボードはこんな感じで、MQTTへの接続情報が載っています。 GitHubアカウントがあれば、すぐに使いはじめることが出来ます。現在のとこ ろ無料プランだけが提供されており、加えて五百円プランを10月をめどに始め る予定です。無料プランはずっと提供する予定です。 詳細は プレスリリース を見てい ただくとして、ここでは軽く使い方と中身を紹介します。 Sangoの使い方¶ SangoGitHubアカウントで簡単にログインできます。 ログインすると MQTT接続情報 として、 - 接続先 : mqtt:/

    MQTT as a Service: Sango のリリースをお手伝いしました — そこはかとなく書くよん。 ドキュメント
  • golangのWebフレームワーク、revelの機能紹介 — そこはかとなく書くよん。 ドキュメント

    golangのWebフレームワーク、revelの機能紹介¶ golangでのweb application frameworkはいろいろなものがあります。その中 でどれがいいのかというと、どれも鋭意開発途中だし、新しいのも出てくるし でなんとも言えません。 その中で、 revel というフレームワークが結 構昔からあります。これは、Railsに例えられるようになんでも揃ってるいわ ゆ る重量級なフレームワークです。 薄いフレームワークであれば、標準のnet/httpでもいいような気もちょっとす るので、現在このrevelを使って実際に作ってみています。 なお、以下のページを参考にさせていただきました。 Go言語製のWeb Application Framework - Revel - を触る ʕ  ゚皿゚ ʔ GolangのWeb Application Frameworkを色々試してみて

  • ツキノワ株式会社に入社しました — そこはかとなく書くよん。 ドキュメント

    ツキノワ株式会社に入社しました¶ 日、2014年8月1日付で ツキノワ株式会社 に入社しました。 CTO(ざつよう) としてがんばっていきたいと思います。 ツキノワ株式会社は 時雨堂 の子会社です。 ツキノワ株式会社では以下のお仕事を承っています。親会社の時雨堂とは領域が異なります。 MQTTを利用したサービスの提供、MQTTに関するコンサルタント サービスの運営・保守改善・自動化(Ansible) ドキュメント作成(Sphinx) Webアプリ開発 (Python, golang) iOSやAndroidなど、スマートフォン向けアプリケーション開発 Webサイトのデザイン制作 ツキノワでは、ただいま絶賛お仕事募集中です。みなさまどうぞよろしくお願いします。

  • 入門Ansibleを出版しました — そこはかとなく書くよん。 ドキュメント

    入門Ansibleを出版しました¶ この度「 入門 Ansible 」を、Amazonにて出版致しました。 今までAnsibleに関する日語のはありませんでしたが、Ansibleの入門書的な位置づけとして、まずこれを読めば分かる、ということを目指して執筆しました。 書を執筆するにあたり、レビュー頂いた方々に感謝致します。 内容はちょっと長いですが、以下の通りです。 はじめに Ansibleの特徴 Ansibleはシンプル ChefやPuppetとの違い Ansibleは "Better Shell Script" Ansibleを使ってみよう インストール inventoryファイル モジュール (module) playbookを作ってみよう YAMLの文法 playbookを書いてみる playbookの解説 task handler よく使うモジュール 複雑なplaybookを

  • Ansible 1.5リリース — そこはかとなく書くよん。 ドキュメント

    Ansible 1.5リリース¶ Ansibleの1.5がリリースされました。 公式ブログ記事 リリースノート 1.5ではたくさんの変更があり、そのうちの一部だけでもこれだけあります。 ansible vaultによるパラメータの暗号化 ssh pipelineingによる高速化 1.4から廃止予定で警告が出ていたwhen_XXX が完全に削除。かわりにwhenを 使うこと。 only_if も廃止予定に。 ログを出さなくするno_logオプションの追加 git moduleにパラメータの追加(accept_hostkey, key_file, ssh_opts) 各種moduleの追加 これらたくさんの変更のうち、今回の記事ではansible vault、ssh pipelining、追加されたassert moduleについてご説明します。 ansible vault¶ パスワードやA

  • MQTTについてのまとめ — そこはかとなく書くよん。 ドキュメント

    注釈 MQTT As a Service: sangoをリリースしました 2014年8月に、GitHubアカウントで簡単に登録できてMQTTを使い始められる sango を 時雨堂 がリリースしました。 無料プランもありますので、MQTTを一度使ってみたいという方はsangoを使うことをお勧めします。 最近voluntasさんが 活動 してお り、にわかにMQTT関連が熱くなってきました。たぶん観測範囲が狭いからだと は思いますが。 とはいえ、M2M (Machine to Machine)やIoT(Internet of Things)というバズワー ドもあり、モノがインターネットにつながる時代になってきて、MQTTの価値が 高くなってきている気もします。また、モバイル時代に適したプロトコルとい う意味でも注目されているのかもしれません。 ということ、MQTTについて一旦ここでまとめてみ