Tech Beans

Web企業で働くエンジニアのBlog


Rundeck で履歴を定期パージするためのツール

Rundeck はジョブヒストリーを定期自動パージできないという問題があり、 いつの間にか数万エントリーになっていたりするので、作りました、という告知 github.com

pyenv + venv + direnv で作るPython3環境

pyenv + virtualenvの問題点 Pythonでの開発環境において、 開発ホスト上に複数のバージョンのPythonをインストールしたい場合 … pyenv プロジェクトごとに仮想環境を構築し、モジュールを切り替えたい場合 … virtualenv の2つの組み合わせは一般的に使われ…

Elasticsearch 5.xの新機能と、1.xから5.xへのアップグレード

この記事は、Elastic stack Advent Calendar 2016の11日目の記事です。 Elasticsearch クラスタを1.7 から 5.0.2まで上げたときに、それなりに変更点が多く、苦労しました。 本記事では、そのときのノウハウを元に、 1.xを使っていて、5.xに上げたいと思って…

strongSwan でVPN(IKEv2) を 構築する Part.2 ~ MTU値の調整 ~

特定のサイトにつながらない 前記事で設定したVPNサーバーを経由した場合に、特定の一部サイト(github.com, yahoo.com)にアクセスできないことがわかった。 現象としては、 ping は通るが、80ポートの返答がない https, httpなどプロトコルにはよらない VPN…

strongSwan でVPN(IKEv2) を 構築する Part.1

基本的な手順は参考元サイトをもとに構築していく。 想定クライアント iOS: > 10 OS X: > El Capitan ※今回、最終的にユーザー名・パスワード認証は成功しているが、公開鍵認証はiOS, OS Xのネイティブクライアントで動作できていない。 OSX側の問題の可能性…

PPTP vs L2TP/IPSec vs OpenVPN vs IKEv2

iOS10からPPTPクライアントが廃止されてしまい、 家のバッファロールータで動いていたPPTPサーバにアクセスできなくなってしまったので、この際きちんとVPNサーバーを立ててみる。 まずはVPNの方式について調査。 VPN方式の違い PPTP 古くからある方式だが、…

Docker on vagrant on Windows10

Docker on vagrant Dockerをvagrant上に構築してみる。 ネット上の情報を参考にしてみてもうまくいかなかったので、だいぶ試行錯誤した 目指す構成は以下のとおり Docker Container (CentOS6) on Vagrant (CentOS6) on Windows 10 ※今回はHadoopクラスタ構築…

MarkdownからConfluence HTMLを生成するConverterを作った。

サーバー上での作業途中など、普段の業務メモは手元のエディタにmarkdown表記で記録している。 ところが、技術系の資料はConfluenceにまとめることになっているため、作業終了後はmarkdownで書いた記録を、再度Confluence上で作成しなおすことになる。 そのC…

Capistranoでオペレーション自動化をしようとして諦めた

社内のチームで数十台~のサーバーを管理していて、その上でElasticSearchやHadoopを構築している。 これまで、そのクラスタのオペレーションをほぼ手作業なりシェルスクリプトでやっていて、 手順の再利用性もないし何よりめんどくさいので、 何か自動化で…

GangliaでHDD温度監視

Gangliaにカスタムモジュールを入れてHDDの温度監視をしてみる。 前提 CentOS 7.1 Gangalia 3.7 セキュリティを重視していないので、実験用環境での使用を想定しています Package インストール python モジュールで拡張するので、以下のパッケージをインスト…

CentOS7のKernelを最新版に更新する(yumで)

docker1.9のoverlay networkを試すにはLinux kernel3.16が必要だが、CentOS7では3.10までしか提供されていない。 kernelの更新はelrepoを使えば簡単にできるようなので試してみた。 注意: kernelの更新は危険なオペレーションのため、壊れても良い環境で試し…

RundeckからGmailを使ってメール送信する

Rundeckをジョブスケジューラとして使い始めて、メールをGmail経由で送れるようにした。 OSはCentOS7だが、他でも変わらないはず。 Rundeckのインストール インストールは難しくない。yumで入るはず。 起動もsystemctl start rundeckd.serviceでできる。 詳…

Logictec Bluetooth[LBT-UAN04C1]をWindows10で使う

どこにも情報がなかったのでメモ Windows7からWindows10にアップグレードしたところLogitecのBluethoothアダプタが使えなくなった。 どうやらドライバがうまく認識されていないらしいが、Logitecでも対応ドライバはないようだ。 要はCSRのドライバを削除して…

centos7にdockerをインストール

手順 Centos7用のrpmを使った手順もある(https://docs.docker.com/installation/centos/)が、 以下の公式ドキュメントの方法を使うほうが楽そう。 http://docs.docker.com/linux/started/ この手順でもrpmがインストールされるので、管理も楽。 # 公式の手…

Pythonにおける仮想環境構築ツール

Pythonの仮想環境ツールがいろいろありすぎて混乱するので、整理目的で調査してみる。 ざっと調べた感じでは以下のとおり。 Pyenv 複数バージョンのPythonバイナリを管理するもの。プロジェクト(ディレクトリ)単位での異なるバージョンのPythonが使用できる…

Unite.vimのfile source挙動の変更について

file sourceを開いた時に、これまではデフォルトでカレントディレクトリが入力された状態であったが、下記のコミットでこれができなくなってしまった。 どうすればいいんだろう https://github.com/Shougo/unite.vim/commit/0d8336a4e6036f6100050fa0455896a…

Homebrewで"failed to download"が頻発する件

Homebrewでいろいろインストールできない homebrewで"failed to download"なエラーが頻発しており、lvすらもインストールできない始末。 これの原因がわかったのでメモ。 ついでにChromeでwikipediaを見ると"ERR_EMPTY_RESPONSE"になる件も原因は一緒だった…

【Pythonでネットワーク可視化】graph-toolのインストール

graph-tool 前回NetworkXを使ってグラフを描画したが、主に使用目的がpythonでのデータの可視化であったので、それに特化したライブラリを探していた。 そこで見つけたのがgraph-tool。graph-toolはデータビジュアライゼーションに特化したライブラリとのこ…

【Pythonでネットワーク可視化】NetworkXを使ってみる

NetworkXを使ってみる pythonで100万オーダーのノードを持つネットワーク図を作成したいので、調べてみたところNetworkXというものが使えそう。 NetworkXの準備 Macでの実行なので、pipをインストールしていればすぐにセットアップできる sudo pip install n…

モジュール内部からのカレントディレクトリの取得

実行スクリプトからモジュールを呼び出す場合、モジュール内部からモジュール本体のパスを取得する方法。 単純にos.getcwd()を使うと実行スクリプトのカレントディレクトリを取得してしまう。 呼び出しているモジュール中で、モジュールのカレントディレクト…

mingw-getでのMingwインストール

MinGWのインストール方法がいつの間にか変更されていた。リポジトリを参照してパッケージ管理をするようになった。とりあえず20111118版はアンチウィルスソフトにはじかれるので、以前のバージョンをインストールして、インストール段階で最新のレポジトリを…

synchronous通信中のasynchronous通信について

サーバー側で時間のかかる処理をする場合にプログレスバーを表示させたい。 重いメインの処理はGET+同期通信のレスポンスが返ってくる前に、GET+非同期通信で進行状況を取りたい。Firefox, Chrome, Safariで試したところFirefoxは同時に通信可能だったが、Ch…

Django + South

Djangoではモデルの変更には対応できないのでSouth ( ver0.7 ) を導入。 できること: モデルのフィールドの変更? できないこと: モデル名の変更などモデルの同一性を判別できない以上、リネームは無理っぽいね。それなら手動でやったほうが早いし確実。

Xerces Static Library

Visual Studio 2010でXerces XMLを使ってはまったのでメモ。プリプロセッサの前処理シンボルにXERCES_STATIC_LIBRARYを指定すること。指定しない場合、リンク時に未解決のシンボルエラーが発生する。以上。

MPICH2 on Windows7 64bit with visual studio 2010

1台のPCで並列処理を行う場合、openMP と MPI の2通りがあるらしい。 MPI はPCクラスタ上で実行する分散処理フレームワークだけれども、一台で実行する場合でもopenMP以上の性能が出る場合があるとのことなので、まずインストールをやってみた。1, MPICH2 o…

MPICH2 on Windows7 64bit with visual studio2010

1台のPCで並列処理を行う場合、openMP と MPI の2通りがあるらしい。 MPI はPCクラスタ上で実行する分散処理フレームワークだけれども、一台で実行する場合でもopenMP以上の性能が出る場合があるとのことなので、まずインストールをやってみた。1, MPICH2 o…

続]フォーマット別音楽管理

PCで聴く場合はFlacで、iPhoneなどで聴く場合はaac,mp3みたいにいろんな形式で音楽ファイルを持っていると、いざFlac形式の音楽だけを聴きたい場合にしっくり管理する方法がなかった、ということは過去記事にも書いた。 でも、foobarならいろいろカスタマイ…

eclipse CDTで実行エラー

CDTでバイナリを実行してもコンソール上ですぐに[terminated]となってしまい実行できなくなった件:結論として、ライブラリが不足していると起こるらしい。スタックトレースには のように表示されるはず。一見コマンドプロンプトからは起動できていたので気…

10進数->n進数

10進数->n進数(n = 2 ~ 35)の変換。ググッてもn進数というのはなかなかなかったので。STLは少しおおげさか。 const char *numset = "0123456789ABCDEFGHIJKLMNOPQRSTUVWYZ"; void cardinal_encode(int num, int ocar) { if(num == 0) {cout << "0" << endl;…

C++からPythonモジュールを使う

C++ からPythonモジュールを使うのをやってみた。 id:Wackyさんの記事を参考にhttp://www.linuxjournal.com/article/8497からサンプルをそのまま流用。まずPythonモジュールから。 def hello(): print "Hello, Python!"; return "Success"; 続いてC++ #inclu…