何が出来るの?

SoftLayer (IBM社のPublic Cloud Service) では様々なリソースの物理サーバがインスタンスとして利用できる(以下ベアメタルサーバ)のが特徴です。 そんなベアメタルサーバのですが構成が多すぎるので構成を検索してくれるスクリプトがgistに出ていました。

というわけで、ここで紹介するツールはSoftLayerのベアメタルサーバの構成を検索する事が出来ます。

Install

rubyすらはいっていなかったので、Rubyを導入するとともに Softlayer_API も導入します。最近はAWS(Amazon Web Service)もそうですがパッケージレポジトリに登録されているので楽ですね。

1
2
3
$ sudo apt-get install ruby1.9.3
$ sudo gem install softlayer_api
$ git clone https://gist.github.com/7f8ca7027034cecddcc4.git

次にダウンロード(git cloneした)ファイルの中にアカウント名/APIキーを記載する項目があるのでSoftLayerの管理コンソールからAPIキーを発行した後に中を書き換えておきましょう。

1
2
3
4
5
require 'rubygems'
require 'softlayer_api'
require 'optparse'
$SL_API_USERNAME = "****"
$SL_API_KEY = "*****"

使ってみる

1
2
3
4
5
6
7
8
9
$ ./sl_config_finder.rb
Usage: ./sl_config_finder.rb [options]
    -c, --cpu cores                  Amount of CPU cores desired
    -m, --memory amount              Amount of memory desired in GB
    -d, --disk amount                Amount of disk spindels desired
    -p, --priority pri1,pri2[,pri3]  What order to prioritse resources  (cpu, memory, disk) when searching
    -b {higher, lower, nearest},     If exact match for given resource is not found, which way to search
        --bias
    -h, --help                       Displays Help

普通に引数漏れだと動きません。 次に、実際に使ってみます、「CPU(1core),Memory(1G),CPU,Memoryを優先で検索」

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
$ ./sl_config_finder.rb -c 1 -m 1 -p cpu,memory,disk -b higher
Desired versus selected specs
CPU:            desired - 1   == selected - 2
RAM:            desired - 1   == selected - 2
Disk spindles:  desired -    == selected - 1
=========== Possible packages meeting these requirements ==================
===========================================================================
ID: 20
Name: Express (Dual Core Single Intel and AMD)
CPU options
Name: Single Processor Dual Core Opteron 1216 - 2.40GHz - 2 x 1MB cache
ID: 383 == Cores: 2
--------------------------------------------
Name: Single Processor Quad Core Opteron 1354 - 2.20GHz - 2 x 1MB cache
ID: 674 == Cores: 4
--------------------------------------------

Ram options:
ID: 104 Name: 2 GB DDR2 667
===========================================================================

こんな感じで、選択できるものが表示されます。このIDの番号はAPIからCreate(Order)するときに必要な番号です。 ちなみに表示までに数十〜数分かかります。何がこんなに遅いのだろうか。

まとめ

これで価格まで出てくれれば良い見積もりツールだったのですが現在のところ表示は出来なそうです。

重い、あまりに遅いので管理コンソール(ブラウザ)で探した方が早いのではなかと思うほどです orz

使い勝手はともかくSourceは参考になりそうですね。もう少し重たい原因を見つけておくと良いかもしれません。 SoftLayerではAPIが色々あり導入出来るOSのリストとか簡単に取得できます。その辺りCLIで出来ると良いのですが。

Goal

  • Github pageで独自ドメインを使う

このブログのサイトは Github Pageで作られています。 ブログ自体は、Octopressを利用しています。 Github padeでも独自ドメインが利用可能になっていて簡単に設定をすることが出来ます。

  • 変更前のドメイン: tokida.github.io
  • 変更後のドメイン: stepxstep.org

参考にするドキュメントは、Setting up a custom domain with GitHub Pages になります。

Github page側の設定

Githubのサイト側で何かをイジる必要はありません。サイトのトップに CNAME というファイルを作成して中に独自ドメイン(これから設定するドメイン)を指定することで利用することが出来ます。

今回は、Octopressを利用してるので source/CNAME ファイルに書き込みます

1
stepxstep.org

この状態で rake gen_deployすると反映されます。実際に反映されるまで 10分程度 かかるそうです。(実際に10分程度かかっていました)

DNS側の設定

今回はドメインの設定はRoute53(Amazon Web ServiceのDNSサービス)を利用します。レジストラ(今回はお名前.com側に Route53のDS名の登録)の設定は終えているとします。

今回は、Apex domains (つまり http://stepxstep.org )でアクセスすることを想定します。もし Subdomain (つまり http://blog.stepxstep.org 等)で実施する場合には、blog.stepxstep.org に対して CNAMEtokida.github.io を割り当てればよいです。

今回は、Aレコードで stepxstep.org に対して以下の2つのIPアドレスを定義します。

1
2
3
4
5
6
7
$ dig stepxstep.org +nostats +nocomments +nocmd

; <<>> DiG 9.8.3-P1 <<>> stepxstep.org +nostats +nocomments +nocmd
;; global options: +cmd
;stepxstep.org.			IN	A
stepxstep.org.		300	IN	A	192.30.252.153
stepxstep.org.		300	IN	A	192.30.252.154

このIPアドレスは先程のHelpに記載されているものになります。ググったりすると別のIPを書かれている人もいたので以前とは違う値になっているのかもしれません。いずれにしても現時点では上記のIPで問題無いです。

まとめ

最初に時間が立っていないと github のエラーページが表示されます。暫く待てば動くはずです。 元の tokida.github.io にアクセスすると,一旦お名前.comに飛ばされてしまいますね。これは落ち着くのかな?

それにしても最近は簡単に独自ドメインのサイトが出来てしまって嬉しい限りです、この stepxstep.orgも 480円でご購入です。来年度以降はもう少しするんだろうけど。まあそれまでにそのぐらいの額のアフェリエイトでも稼いでくれるようになっていれば元は取れるという。

ほんとに良い世の中になりました。

最近、MacとWindowsを行き来することもあり共通で使えるVimを利用しています。 かなり前から使っている割には仕事では素のviを使う機会が多かったこともありVimをカスタマイズして使うということがなかったのですがここのところすっかりプラグイン入れて遊んでいます。

日本語で使うために色々パッケージングされたものをKaoriyaさんで公開されていますのでこれから導入される方はオススメです。

Startify プラグイン

起動した時の画面が変わります。

images

こんな感じで起動時に履歴が選択できるようになります。 また :startifyでいつでもこの画面を呼び出す事ができます。

Install

導入はいつもどおり NeoBundle 経由で行います。

したがって.vimrcの NeoBundleの所に以下のように記述します。

1
NeoBundle 'mhinz/vim-startify'    "起動時に履歴を表示させる

あとは起動後に NeoBundleInstall して導入します。

設定

設定は .vimrc にて行います。 詳細の設定内容は :h startify でヘルプが詳細に書いてあるので見るとわかります。 参考で記載しているサイトの設定を参考にしています。

まとめ

起動画面でさっと履歴が選択できるのはありがたいです。とは言え別のプラグインで同じような事を実装することも出来るようなので珍しいことではないのかもしれませんがプラグイン一つ入れて簡単に出来るのが良かったです。

参考

はじめに

ここの所、文章は全てMakrdownで書くようにしています。仕事でも Qiita などのサービスを利用しており身の回りで徐々に markdown を使う環境を広げているところです。 まさにこのサイトも makrdown で書かれており色々と捗ります。 先日、だいぶ長い文章を markdown で書いたのですが最終的に清書して出す必要がありその際にフォーマット変換(HTMLやPDF)に変換したくなりました。 その際には時間切れだったのですが改めて環境を作ったので書いておきます。

Pandocを導入する

最近ちょっと入れてみたいと言う時にはDockerとかVagrantで簡単に環境を作っています。なのでMacbookで書いているのですが以後の処理はUbuntuで行った場合の対応になります。色々なファイルフォーマットを変換してもらうことの出来る Pandoc を利用します。

インストール

PandcoはHaskellの上で動くのでHaskel Platformの上で導入することも出来ますが今回は簡単にパッケージマネージャーから導入することにします。

1
$ sudo apt-get install pandoc

導入の確認

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
vagrant@ubuntu1404:/vagrant_data/files$ pandoc -v
pandoc 1.12.2.1
Compiled with texmath 0.6.5.2, highlighting-kate 0.5.5.1.
Syntax highlighting is supported for the following languages:
    actionscript, ada, apache, asn1, asp, awk, bash, bibtex, boo, c, changelog,
    clojure, cmake, coffee, coldfusion, commonlisp, cpp, cs, css, curry, d,
    diff, djangotemplate, doxygen, doxygenlua, dtd, eiffel, email, erlang,
    fortran, fsharp, gnuassembler, go, haskell, haxe, html, ini, java, javadoc,
    javascript, json, jsp, julia, latex, lex, literatecurry, literatehaskell,
    lua, makefile, mandoc, markdown, matlab, maxima, metafont, mips, modelines,
    modula2, modula3, monobasic, nasm, noweb, objectivec, objectivecpp, ocaml,
    octave, pascal, perl, php, pike, postscript, prolog, python, r,
    relaxngcompact, rhtml, roff, ruby, rust, scala, scheme, sci, sed, sgml, sql,
    sqlmysql, sqlpostgresql, tcl, texinfo, verilog, vhdl, xml, xorg, xslt, xul,
    yacc, yaml
Default user data directory: /home/vagrant/.pandoc
Copyright (C) 2006-2013 John MacFarlane
Web:  http://johnmacfarlane.net/pandoc
This is free software; see the source for copying conditions.  There is no
warranty, not even for merchantability or fitness for a particular purpose.

変換してみる

1
% pandoc input.markdown -s -o output.html

オプションの説明などは日本語のリファレンスもあるのでそちらを参考にします。

githubのCSSで変換してみる

実際にHTMLにした際にも見た目、Github風に慣れ親しんでいるのでCSSを指定してHTMLに変換することが出来ます。またオプションを指定することにより toc(目次)も入れること出来ます。目次はHTMLの場合にはキチンとHyperlinkになってくれるのでありがたい。

導入・設定

markdownファイルがある場所にCSSをダウンロードします。

1
$ wget https://gist.github.com/andyferra/2554919

変換する

変換には、cssファイルを指定する方法がありますがこの場合には生成されたHTMLファイルがCSSファイルを利用するようになります。 単体の一つのHTMLにしたい場合にはテンプレートをコピーしてその中にCSSを埋め込んだほうが良いです。テンプレートはubuntuの場合には、/usr/share/pandoc/data/templates に導入されています。 今回はCSSファイルを個別にしてして見ます。

1
$ pandoc --toc --toc-depth=1 -t html -c github.css input.markdown -s -o output.html

こうするとmarkdownの書式に合わせて目次を生成してくれます。 自動でこういう風になってくれるとすごく便利です。

まとめ

簡単に変換できるツールなので他にもコンバージョンを試してみたいと思います。PDFの変換も気になるところですがChromeブラウザのPDF出力もある程度代用可能なので暫くはそちらでも良いかなと思っています。それよりも SLIDES 利用したスライド作れる方が興味があります。 簡単にテキスト(markdown)で書いておいてさっと発表に使えるとなると色々捗りそうです。

参考文献

早速、Octopressに投稿してみて最初に方法がわからなかったのは「投稿した記事の削除」の方法。 変な文章あげちまったよ。と思ったところで消せずに悩んで10分。 そう

ファイルを消せ。

ということだ。

1
2
3
$ ls -l source/_posts/*
source/_posts/2014-05-30-firstpost.markdown
source/_posts/2014-05-30-octopressの記事の消し方.markdown

このファイルをrmで消した後にrake gen_deployすれば問題ない。

最近、続けていたiPhone系のブログが更新できない。 仕事が忙しくてあまり差割れていないのが原因。最近またインフラ系のエンジニアに戻りつつあり勉強する日々。 色々試してみたりしているのでその記録を残していきたい。

ということで触ってみたかった Octopress を入れてみた。

何を書いていこうか迷うけどメモをどんどん公開していってみよう。普段書いているブログのテーマと違いすぎて更新できないまま結構放置してしまって普段していることをアウトプットするという気持ちが少なくなってきてしまう。

このブログが何かの転機に成りますように。