tag:blogger.com,1999:blog-84741115151624018502024-03-14T16:13:46.005+09:00OSSはアルミニウムの翼で飛ぶUnix/Linuxを中心に技術メモや身近な体験を記録。irix_jphttp://www.blogger.com/profile/12632742617600489703noreply@blogger.comBlogger500125tag:blogger.com,1999:blog-8474111515162401850.post-63428088578625456332020-02-02T22:26:00.000+09:002020-02-02T22:26:07.917+09:00ContOS8 StumpWM & Emacs 26.3気分を変えるために StumpWM を久々に動かしてみた。<br>
StumpWM は Common Lisp で記述されたシンプルなウインドマネージャーで、タイル型と呼ばれるウインドマネージャーです。キーボードを中心に操作を行い、Emacs と相性が良いです。<br>
<br>
xrdp で動かす場合の導入のメモを残しておきます。roswellのおかげですごく簡単になっています。<br>
<br>
<a href="http://aikotobaha.blogspot.com/2020/02/contos8-stumpwm-emacs-263.html#more">続きを読む >>></a>irix_jphttp://www.blogger.com/profile/12632742617600489703noreply@blogger.com1tag:blogger.com,1999:blog-8474111515162401850.post-79124104922386914352019-11-30T23:47:00.000+09:002019-11-30T23:47:20.477+09:00ものぐさ playbook ちょっとした一発処理を Ansible で流そうとした時に、YAMLの Block Scalars(| とか > とか) と Jinja2 を組み合わせると1ファイルでいろんな処理が流せるようになるので便利です。<br />
<br />
<pre class="prettyprint" style="background: #f0f4ff; overflow-x: scroll; word-wrap: normal;">- hosts: localhost
connection: local
gather_facts: no
vars:
flag: false
nodes:
- 192.168.1.11
- 192.168.1.12
- 192.168.1.13
private_key_path: /root/keypair.pem
tasks:
- shell: >-
{% if flag %}
echo "flag=true"
{% else %}
echo "flag=false"
{% endif %}
register: ret
- debug: var=ret.stdout
- copy:
content: |
[web]
{% for i in nodes %}
node-{{ loop.index }} ansible_host={{ i }}
{% endfor %}
[all:vars]
ansible_user=centos
ansible_ssh_private_key_file={{ private_key_path }}
dest: result.txt
</pre><br />
実行するとこんな感じ<br />
<br />
<pre class="prettyprint" style="background: #f0f4ff; overflow-x: scroll; word-wrap: normal;">$ ansible-playbook block_scalar.yml
PLAY [localhost] *********************************************************
TASK [shell] *************************************************************
changed: [localhost]
TASK [debug] *************************************************************
ok: [localhost] => {
"ret.stdout": "flag=false"
}
TASK [copy] **************************************************************
changed: [localhost]
PLAY RECAP ***************************************************************
localhost : ok=3 changed=2 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0
$ cat result.txt
[web]
node-1 ansible_host=192.168.1.11
node-2 ansible_host=192.168.1.12
node-3 ansible_host=192.168.1.13
[all:vars]
ansible_user=centos
ansible_ssh_private_key_file=/root/keypair.pem
</pre>irix_jphttp://www.blogger.com/profile/12632742617600489703noreply@blogger.com1tag:blogger.com,1999:blog-8474111515162401850.post-43834402477263336152019-10-14T05:27:00.001+09:002019-10-14T05:27:54.341+09:00"WARNING: Setting locale failed" with CentOS8 on DockerTo fix:<br />
<pre class="prettyprint" style="background: #f0f4ff; overflow-x: scroll; word-wrap: normal;">dnf install -y glibc-all-langpacks
</pre><br />
こんだけ。irix_jphttp://www.blogger.com/profile/12632742617600489703noreply@blogger.com0tag:blogger.com,1999:blog-8474111515162401850.post-65200880644202355512018-12-11T13:09:00.002+09:002018-12-11T13:09:25.677+09:00uri モジュールAnsible には <a href="https://docs.ansible.com/ansible/latest/modules/get_url_module.html" target="_blank">get_url</a> というモジュールがあります。これは指定したURLを取得してターゲットホスト上に保存する機能をもち、ファイルのダウンロードなどに使われます。<br>
<br>
似たようなモジュールでより汎用的なものとして <a href="https://docs.ansible.com/ansible/latest/modules/uri_module.html" target="_blank">uri</a> があります。これはREST APIを叩いたり、WEBの動作確認など様々な使い方ができます。いわゆる curl コマンドのAnsibleモジュール版といっても良いでしょう。汎用HTTPリクエスト機能とも言いかえられるかもしれません。<br>
<br>
このモジュールは shell などと同じく、冪等性を考慮していない汎用コマンド系なのでその点は注意が必要です。<br>
<br>
公式のサンプルを少し見てみましょう。<br>
<br>
<a href="http://aikotobaha.blogspot.com/2018/12/uri.html#more">続きを読む >>></a>irix_jphttp://www.blogger.com/profile/12632742617600489703noreply@blogger.com0tag:blogger.com,1999:blog-8474111515162401850.post-54459768117784418492018-12-11T12:44:00.001+09:002018-12-11T12:44:58.735+09:00Assertモジュールによる「テスト、確認の自動化」とTAP(Test Anything Protocol)本記事は以下の12日目の記事です。ノウハウの塊です。<br>
<a href="https://qiita.com/advent-calendar/2018/ansibleblogger" target="_blank">https://qiita.com/advent-calendar/2018/ansibleblogger</a><br>
<br>
こっちもおすすめです。<br>
<a href="https://qiita.com/advent-calendar/2018/ansible" target="_blank">https://qiita.com/advent-calendar/2018/ansible</a><br>
<br>
Ansibleの「自動化の確かさ」ををテストするノウハウも最近ちらほらと出始めました。<br>
<br>
このあたりの記事はとても参考になります。<br>
<br>
- <a href="https://codezine.jp/article/detail/11152" target="_blank">コードとしてITインフラを定義する――自動化を超えた継続的改善の実現とは</a><br>
- <a href="https://www.slideshare.net/nikuyoshi/molecule-125233650" target="_blank">Molecule入門</a><br>
- <a href="https://qiita.com/toVersus/items/02a7f33f4437bd738bc5" target="_blank">Ansible Playbook の CI をまわす</a><br>
- <a href="https://qiita.com/sky_jokerxx/items/7aef76fdf1a303ee6c68" target="_blank">GitLab CIでAnsibleの自作モジュールのCIをやってみる</a><br>
<br>
Moleculeはとても良いです。Roleのテストの方向性が固まって来た感があります。インフラCI実践ガイドで取り上げたかったですが、執筆の構想をしたときにはそれほどメジャーではなかったので見送りました(入れておけばよかった・・・<br>
<br>
インフラにおけるAnsibleのテストはこんな感じで整理できます。<br>
<br>
(1)Role単品のテスト<br>
(2)Roleを組み合わせときのテスト<br>
(3)出来上がった結果を確認するテスト<br>
(4)上記が時間経過や周辺環境の変更があっても動くのかを確認するテスト<br>
<br>
(1)はMoleculeでほぼ十分です。(4)に関しては(1, 2, 3)に対してマトリックスを組んでのテストになります。<br>
<br>
(2)は現状では少々悩ましいです。問題が出やすいところでもあります。特にチームで開発した場合には、単品のロールとしては完璧でも、組み合わせると矛盾がでるケースがあるからです。Moleculeだけでできるのかもうちょっと研究が必要。<br>
<br>
(3)はインテグレーションテストやシステムテストに相当するテストです。ここはテストのシナリオを書いて、独自で実装する必要があります。いわゆるブラックボックステストとして非機能要件やシステムの振る舞いを確認する必要があります。<br>
<br>
前置きは長くなりましたが、Ansibleでなにかを確認したいとき、そこで活躍するのが assert モジュールです。<br>
<a href="https://docs.ansible.com/ansible/latest/modules/assert_module.html" target="_blank">https://docs.ansible.com/ansible/latest/modules/assert_module.html</a><br>
<br>
<a href="http://aikotobaha.blogspot.com/2018/12/asserttaptest-anything-protocol.html#more">続きを読む >>></a>irix_jphttp://www.blogger.com/profile/12632742617600489703noreply@blogger.com0tag:blogger.com,1999:blog-8474111515162401850.post-91169166857438836702018-11-30T18:19:00.000+09:002018-11-30T18:20:39.150+09:00手軽にAnsibleを試しながら勉強する方法<a href="https://qiita.com/advent-calendar/2018/ansible" target="_blank">Ansible Advent Calendar 2018</a> の1日目です。<br>
<br>
最初に宣伝させてください。<br>
Software Design 2018年12月号のAnsible特集に寄稿しました。Ansibleの入門からネットワーク機器管理、Tower/AWX、CIの触りまで幅広いテーマを扱っています。Ansible漫画も付属しているので、頑固な上司の机に忍ばせてAnsibleを理解させるたりと活用できると思います。<br>
<br>
<a target="_blank" href="https://www.amazon.co.jp/gp/product/B07JJ6VKHH/ref=as_li_tl?ie=UTF8&camp=247&creative=1211&creativeASIN=B07JJ6VKHH&linkCode=as2&tag=irix-22&linkId=3a653164d8cb89fe96443b1ded72944c"><img border="0" src="//ws-fe.amazon-adsystem.com/widgets/q?_encoding=UTF8&MarketPlace=JP&ASIN=B07JJ6VKHH&ServiceVersion=20070822&ID=AsinImage&WS=1&Format=_SL250_&tag=irix-22" ></a><img src="//ir-jp.amazon-adsystem.com/e/ir?t=irix-22&l=am2&o=9&a=B07JJ6VKHH" width="1" height="1" border="0" alt="" style="border:none !important; margin:0px !important;"><br>
<br>
<br>
さて、Ansibleの勉強方法ですが、一番いいのは実際に手を動かすことです。書籍や記事もたくさんありますが、やはり手を動かして実際にAnsibleを動かしてみると、何ができて何ができないのか、Ansibleで自動化するために何をする必要があるのかを実感することができます。その後で様々な書籍や記事で基礎固めや実践的な知識を入手するのが良い方法です。<br>
しかし、Ansible自身のインストールは簡単なのですが、実際に動かすためには自動化の対象となるノードを準備したりとやや手間がかかるのも事実です。<br>
<br>
ということで、もっと簡単にAnsibleを体験してもらうために、ブラウザだけあればAnsibleがいろいろ試せる環境を<a href="https://www.katacoda.com" target="_blank">Katacoda</a>上に作成しました。Katacodaは受講者がブラウザだけで完結するハンズオンコースを実装できるSaaSサービスです。特にコンテナ関連のコースが充実しており、ここ最近注目を集めております。自分でコースを実装することも可能ですので、そちらを利用してAnsibleの入門コースを作成してみましたので使ってみてください。<br>
<br>
<a href="http://aikotobaha.blogspot.com/2018/11/ansible.html#more">続きを読む >>></a>irix_jphttp://www.blogger.com/profile/12632742617600489703noreply@blogger.com1tag:blogger.com,1999:blog-8474111515162401850.post-65305510653208274222018-02-04T16:14:00.001+09:002018-02-04T16:14:09.319+09:00Hyper-V (Win10) で Nested する意味のわからないタイトルですが、ようは kvm on CentOS on hyper-v とか、virtualbox on windows on hyper-v とかをします。<br />
<br />
ここを参考。<br />
<a href="https://docs.microsoft.com/en-us/virtualization/hyper-v-on-windows/user-guide/nested-virtualization" target="_blank">https://docs.microsoft.com/en-us/virtualization/hyper-v-on-windows/user-guide/nested-virtualization</a><br />
<br />
1. Hypter-V を有効にして仮想マシンを作成する<br />
<br />
2. 起動する前に、PowerShellを管理者モードで起動して以下を実行<br />
<pre class="prettyprint" style="background: #f0f4ff; overflow-x: scroll; word-wrap: normal;">Set-VMProcessor -VMName <vmname> -ExposeVirtualizationExtensions $true
</pre>
<br />
<vmname> のところには自分がつけた仮想マシンの名前を入れます。<br />
<br />
以上。簡単ですね。<br />
<br />
以下の画像は 母艦のWin10上の Hyper-V で CentOS7 を起動して、その CentOS の中で VirtualBox(vagrant) を起動しています。<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhGQVeCQRjZsV3Rgd7jBHpJhTF35NJbPbTzDq5d0Z45zIUZ7Bqwdwgn_Mg5JcF2MFJ9xWBrotmar_AVevB2hxWendysogyw6PyTwIItQ34zfRmFaqqVgN27z1r5ml5kK6gYVhk9KU2nQJc/s1600/nested_hypyterv.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="968" data-original-width="1155" height="536" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhGQVeCQRjZsV3Rgd7jBHpJhTF35NJbPbTzDq5d0Z45zIUZ7Bqwdwgn_Mg5JcF2MFJ9xWBrotmar_AVevB2hxWendysogyw6PyTwIItQ34zfRmFaqqVgN27z1r5ml5kK6gYVhk9KU2nQJc/s640/nested_hypyterv.png" width="640" /></a></div>
irix_jphttp://www.blogger.com/profile/12632742617600489703noreply@blogger.com2tag:blogger.com,1999:blog-8474111515162401850.post-69033777462921307822017-12-25T00:00:00.000+09:002017-12-25T00:00:31.246+09:00Ansible: include の代わりに使う import_xxx, include_yyy とはこの記事は <a href="https://qiita.com/advent-calendar/2017/ansible" target="_blank">Ansible Advent Calendar</a> 2017 の一部です。 <br />
<br />
ここ数年、Advent Calendar の季節くらいしか記事を書かなくなってしまいました。もうちょっとアウトプットしたいのですが、色々手を出しすぎてなかなか時間が取れないのが悩みです。<br />
<br />
さて、Ansible 2.4 をお使いの方は、以下のような警告をみたことがある方もいると思います。<br />
<br />
<pre class="prettyprint" style="background: #f0f4ff; overflow-x: scroll; word-wrap: normal;">[DEPRECATION WARNING]: The use of 'include' for tasks has been deprecated. Use 'import_tasks' for static inclusions or 'include_tasks' for dynamic inclusions. This feature will be removed in a future release. Deprecation warnings can be disabled by setting deprecation_warnings=False in ansible.cfg.
[DEPRECATION WARNING]: include is kept for backwards compatibility but usage is discouraged. The module documentation details page may explain more about this rationale.. This feature will be removed in a future release. Deprecation warnings can be disabled by setting deprecation_warnings=False in ansible.cfg.
</pre><br />
この警告は「include が廃止されるので別の方法に切り替えてね」というメッセージです。<br />
include は Playbook や Task の再利用において重要な機能であるため、多くの方が include は当たり前の様に使っていると思います。<br />
<br />
今回はこの変更点に触れていきたいと思います。<br />
<br />
<br />
<div class="mysubtitle">include モジュールは 2.8 で廃止予定</div><br />
これはモジュールの解説ページにも記載されていますが、include は2.8をめどに完全に削除される予定になっています。<br />
<a href="http://docs.ansible.com/ansible/latest/include_module.html" target="_blank">http://docs.ansible.com/ansible/latest/include_module.html</a><br />
<br />
* include は実際にはモジュールではなく Ansible 本体の機能です。モジュールっぽく取り扱った方が説明が平易なため、ここでは include モジュールと表現していきます。<br />
<br />
<br />
では代わりに何を使うかというと、<br />
<br />
<pre class="prettyprint" style="background: #f0f4ff; overflow-x: scroll; word-wrap: normal;">|-----------------+-----------------------------------+---------|
| module | description | version |
|-----------------+-----------------------------------+---------|
| import_playbook | import a playbook. | 2.4 |
| import_role | Import a role into a play | 2.4 |
| include_role | Load and execute a role | 2.2 |
| import_tasks | import a task list. | 2.4 |
| include_tasks | dynamically include a task list. | 2.4 |
|-----------------+-----------------------------------+---------|
</pre><br />
になります。これらの違いは後に説明します。<br />
<br />
<br />
<div class="mysubtitle">どのような問題が include モジュールにはあったのか?</div><br />
include モジュールは他のPlaybookやTaskを呼び出すことができますが、呼び出されるコンテキストによって挙動が変わるように実装されていました。特に2.0以降で include には Dynamic と Static という考え方も追加され、更にそれを特定条件で抑制したり有効にしたりと include の挙動が複雑化していました。<br />
<br />
Dynamic と Static については去年のAnsible Advent Calendar 2016 「<a href="https://qiita.com/heriet/items/22f3cd16b44a78a3a9ba" target="_blank">AnsibleのDynamic IncludeとStatic Include</a>」で解説されています。<br />
<br />
その結果、特に include のネストが深くなった際に予期せぬ動作が発生してしまうケースが報告されるようになりました(2.3で顕在化)。そのため、複雑化した include の動作を分解して、利用者が状況に応じて Dynamic と Static を使い分けるようにしよう、と今回の変更が行われたというのが経緯になります。<br />
<br />
<br />
<div class="mysubtitle">include_xxx, import_yyy の違い</div><br />
こちらに詳しい説明があります。<br />
<a href="https://docs.ansible.com/ansible/2.4/playbooks_reuse.html" target="_blank">https://docs.ansible.com/ansible/2.4/playbooks_reuse.html</a><br />
<a href="https://docs.ansible.com/ansible/2.4/playbooks_reuse_includes.html" target="_blank">https://docs.ansible.com/ansible/2.4/playbooks_reuse_includes.html</a><br />
<br />
また、挙動の詳細に関しては先の<a href="https://qiita.com/heriet/items/22f3cd16b44a78a3a9ba" target="_blank">ブログ</a>でも例題付きで解説されていますので、ここではポイントのみを解説します。<br />
<br />
<blockquote>import_yyy モジュール<br />
Static<br />
Playbookの読み込み時に一緒にimport先が読み込まれます(先読み)<br />
</blockquote><br />
<blockquote>include_xxx モジュール<br />
Dynamic <br />
Playbookの実行時に include 箇所まで処理が来た時にinclude先が読み込まれます(後読み)<br />
</blockquote><br />
role に関しては2.3より前では常に Static でしたが、2.3で追加された include_role でタスク内から Dynamic に呼び出す事が可能になっています。<br />
<br />
<br />
<div class="mysubtitle">具体的にどう使い分けるのか?</div><br />
今までは include がいい感じに判断してくれていたので、あまり意識する必要はありませんでしたが、今後は幾つかのケースにおいては利用者がきっちりと使い分ける必要がでてきます。ここではその使い分けを意識するケースを紹介していきます。<br />
<br />
<br />
■ループ系の処理と組み合わせる場合は include_yyy (Dynamic) しか使えない<br />
おそらくこれが一番大きな点になります。<br />
これらのループ処理と一緒に使う場合は、include_yyy しか使えません。<br />
http://docs.ansible.com/ansible/latest/playbooks_loops.html<br />
<br />
<br />
■変数化したファイル名を指定する場合には include_yyy (Dynamic) しか使えない<br />
import_xxx はPlaybookの実行前に読み込みが行われるので変数の値は使えません。<br />
これは先読み(Static)、後読み(Dynamic)の違いのわかりやすいケースです。<br />
<br />
<br />
■include_yyy した先のタグやタスクを取得することができない<br />
例えば、import_xxx した場合は --list-tag で import_xxx の先のタグを表示し、指定することができますが、include_yyy ではできません。<br />
これも先読み(Static)、後読み(Dynamic)の違いのわかりやすいケースです。<br />
<br />
<br />
■nofify で include_yyy (Dynamic) の handler を認識できない。<br />
Dynamicに指定されたファイルは実行時まで読み込まれないので「ハンドラーがない」とエラーになります。<br />
<br />
<br />
<div class="mysubtitle">まとめ</div><br />
これから新しいPlaybookを書く場合には「includeは使わない」という事を覚えておけばあまり問題にならないと思います。import_xxx/include_yyy の使い方を間違えるとだいたいはエラーになるからです。<br />
<br />
厄介なのは新旧のPlaybookが混在し include/import_xxx/include_yyy が入り乱れている場合です。<br />
改修が難しい場合には、Ansibleのバージョンを固定して切り離した環境として使い捨てにしてしまうの1つの手です。<br />
Ansible は利用者の増加に伴い、急速に機能・モジュールの拡充が進んでいます。バージョン固定すると新しいモジュールも使えなくなってしまうので、このあたりはバランスをどう取るかが課題です。<br />
<br />
もし、今後のバージョンアップを含めてAnsibleを末永く使っていこうと計画している場合は、これを機にCI環境を整備して、Playbookの鮮度を保っていくという取り組みも有効です。<br />
<br />
<br />
Ansible は目の前の作業を自動化するにはおそらく最も簡単な方法の一つです。ぜひ作業を自動化して得られた時間で、より自動化を活用するための「仕組み」も一緒に考えてみてください。<br />
<br />
それでは皆様、来年もよい自動化を。<br />
irix_jphttp://www.blogger.com/profile/12632742617600489703noreply@blogger.com4tag:blogger.com,1999:blog-8474111515162401850.post-22487768776304292542016-12-24T23:58:00.002+09:002016-12-25T00:08:16.693+09:00Make an IT infrastructure engineer great againこちらの24日目の記事なります。<br>
<br>
<div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh8qSk_rZL2dUvqbrKTmmz1BJhqznr6DPR3BEGrve1PC4qiYChSq3ArRcF6BNQ1cWb8Ba3DkrpjfeWNz7EnA8XU4Jw7UTyGfcFPhCa5DHtvprQJRX99PKze87m6kxY9wcfxzxXOsXONMmI/s1600/Infra.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="55" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh8qSk_rZL2dUvqbrKTmmz1BJhqznr6DPR3BEGrve1PC4qiYChSq3ArRcF6BNQ1cWb8Ba3DkrpjfeWNz7EnA8XU4Jw7UTyGfcFPhCa5DHtvprQJRX99PKze87m6kxY9wcfxzxXOsXONMmI/s400/Infra.png" width="400"></a></div><br>
今冬人気のドラマでこんなセリフがありました。<br>
この前か後か忘れましたが「インフラエンジニアはいないと困るでしょう」というセリフもあったような気がします。たしかリストラの話の流れだったと思います。<br>
この部分について、自分の思うところを書いてみようと思います。<br>
確かにインフラエンジニアはいないと困るのですが、しかし「今までみたいなインフラエンジニア」はそのうちいなくても誰も困らなくなる、ってのが実際のところだと思います。<br>
<br>
インフラエンジニアの置かれた状況は業種業態によって異なりますが、多くの環境ではインフラエンジニアの価値は下がり続けていると私は考えているからです。<br>
ITインフラの優劣がビジネスに直結・大きな影響を与える通信キャリアや大規模なWEBやコンテンツサービスプロバイダーなどの例外も存在していますが、大多数を占める旧態然としたいわゆる企業の情シスに所属するインフラエンジニアやSIerのインフラエンジニアの価値は間違いなく低下の傾向であり、このままではいずれその価値は限りなくゼロ、むしろ企業にとっては経済的にマイナスの存在(お荷物)になるのでは、と器具しています。<br>
<br>
この記事では、「なぜインフラエンジニアの価値が低下しているのか?」という点と「これからのインフラエンジニアはどうすべきなのか?」について自分の考えを整理してみようと思います。<br>
<br>
<a href="http://aikotobaha.blogspot.com/2016/12/make-it-infrastructure-engineer-great.html#more">続きを読む >>></a>irix_jphttp://www.blogger.com/profile/12632742617600489703noreply@blogger.com0tag:blogger.com,1999:blog-8474111515162401850.post-9176480379841476862016-09-26T18:20:00.002+09:002016-09-26T18:21:44.865+09:00[改訂新版]プロのためのLinuxシステム構築・運用技術 (Software Design plus)<a href="https://www.amazon.co.jp/gp/product/4774184268/ref=as_li_qf_sp_asin_il?ie=UTF8&camp=247&creative=1211&creativeASIN=4774184268&linkCode=as2&tag=irix-22"><img border="0" src="https://ws-fe.amazon-adsystem.com/widgets/q?_encoding=UTF8&ASIN=4774184268&Format=_SL250_&ID=AsinImage&MarketPlace=JP&ServiceVersion=20070822&WS=1&tag=irix-22"></a><img src="https://ir-jp.amazon-adsystem.com/e/ir?t=irix-22&l=as2&o=9&a=4774184268" width="1" height="1" border="0" alt="" style="border:none !important; margin:0px !important;"><br />
<br />
<a href="https://twitter.com/enakai00" target="_blank">@enakai00</a> さんが5年前に執筆された書籍の改訂版です。<br />
現在主流のRHEL7系向けに書き直されています。<br />
<br />
なんとなく仕事や趣味でLinuxを使っている人が、「プロ」と呼ばれるレベルに到達するために押さえておくべきポイントを実際の操作例や著者の体験を通した業務の経験をもとに解説されています。<br />
<br />
章構成は <a href="http://gihyo.jp/book/2016/978-4-7741-8426-5" target="_blank">こちら</a> から確認できます。<br />
<br />
クラウドやコンテナの活用に伴い、インフラエンジニアだけでなくアプリエンジニアもLinuxに触れる機会が増えています。<br />
普段なんとなく使っているLinuxを深掘りして学習することは、クラウドやコンテナを一歩進んで活用するためにも役立ちます。<br />
<br />
ちなみに、この本の内容は <a href="https://twitter.com/enakai00" target="_blank">@enakai00</a> さんと私が担当している <a href="https://sites.google.com/site/cloudlecture/home" target="_blank">こちら</a> と <a href="http://files.topse.jp/syllabus/10/html/clib2015.htm" target="_blank">こちら</a> の講義に大部分が組み込まれています(改定前の内容です<br />
<br />
講義は OpenStack を題材にしたクラウド基盤の基礎コースですが、クラウドの裏側を理解するにはLinuxの知識が必要不可欠であるためです。<br />
仕事でOpenStack等のクラウドの裏側に触れる機会のある方にもこの本の内容は有益(むしろ必須)です。<br />
<br />
電子版もあります。irix_jphttp://www.blogger.com/profile/12632742617600489703noreply@blogger.com0tag:blogger.com,1999:blog-8474111515162401850.post-30022081358767068232016-09-08T16:15:00.001+09:002016-09-08T16:15:16.401+09:00docker コンテナのMTUを変更する - Changing container MTU on dockerdockerd の起動オプションに --mtu xxxx をつけると、ブリッジ docker0 とコンテナに接続されるvethのMTUを変更できる。<br />
<br />
you put the option "--mtu xxx" on dockerd option, you can change docker0/veth MTU on docker.<br />
<br />
<br />
<br />
MTUを変更するには、/etc/sysconfig/docker-network に "-mtu" を記述しておけばオーケー。<br />
<br />
In order to change the MTU, you write "--mtu" into the file "/etc/sysconfig/docker-network".<br />
<br />
<br />
<br />
<pre class="prettyprint" style="background: #f0f4ff; overflow-x: scroll; word-wrap: normal;"># vim /etc/sysconfig/docker-network
DOCKER_NETWORK_OPTIONS="--mtu=1400"
</pre><br />
<pre class="prettyprint" style="background: #f0f4ff; overflow-x: scroll; word-wrap: normal;"># reboot
</pre><br />
<pre class="prettyprint" style="background: #f0f4ff; overflow-x: scroll; word-wrap: normal;"># ps -ef |grep docker
root 2019 1 0 Sep06 ? 00:00:13 /usr/bin/docker-current daemon --exec-opt native.cgroupdriver=systemd --selinux-enabled --log-driver=journald --mtu=1400
</pre><br />
<pre class="prettyprint" style="background: #f0f4ff; overflow-x: scroll; word-wrap: normal;"># ip link | grep mtu
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN mode DEFAULT
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1400 qdisc pfifo_fast state UP mode DEFAULT qlen 1000
3: docker0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1400 qdisc noqueue state UP mode DEFAULT
7: veth845af41@if6: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1400 qdisc noqueue master docker0 state UP mode DEFAULT
9: vethab65786@if8: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1400 qdisc noqueue master docker0 state UP mode DEFAULT
11: veth7ae7d07@if10: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1400 qdisc noqueue master docker0 state UP mode DEFAULT
</pre>irix_jphttp://www.blogger.com/profile/12632742617600489703noreply@blogger.com0tag:blogger.com,1999:blog-8474111515162401850.post-27146907594058119752016-07-26T00:45:00.002+09:002016-07-26T00:45:28.237+09:00JTF2016 にて(なぜか)孫子の話をしてきましたJuly Tech Festa 2016 にて『今エンジニアに最も必要なものは「戦略」である!孫子に学ぶ本質のつかみ方』と題して発表させていただきました。<br />
<br />
Tech Festaなのに戦略?孫子??と思われる方もいるかもしれません(私もそう思わないでもありません)が、実はエンジニアにこそ「戦略」は重要なのです。<br />
激変しつつあるIT業界で働く方には、何となく自分の取り組みにモヤモヤしたものを持っている方も多かったのか、予想外に多くの方に聞いていただけて大変うれしかったです。<br />
<br />
発表に使った資料はこちら(詰め込みすぎて後半の時間が足りませんでした)<br />
<iframe src="//www.slideshare.net/slideshow/embed_code/key/MzBpPAMlZwmbHy" width="595" height="485" frameborder="0" marginwidth="0" marginheight="0" scrolling="no" style="border:1px solid #CCC; border-width:1px; margin-bottom:5px; max-width: 100%;" allowfullscreen> </iframe> <div style="margin-bottom:5px"><strong> <a href="//www.slideshare.net/irix_jp/jtf2016-the-strategy-and-sun-tzu" title="JTF2016 The strategy and Sun Tzu" target="_blank">JTF2016 The strategy and Sun Tzu</a> </strong> from <strong><a href="//www.slideshare.net/irix_jp" target="_blank">irix_jp</a></strong> </div><br />
<br />
本発表で参考にした書籍からおすすめを紹介します。<br />
<br />
戦略・戦術の解説のために使った「戦略の階層」はこちらの書籍に詳しく書かれています。<br />
<a href="//www.amazon.co.jp/gp/product/4894515180/ref=as_li_qf_sp_asin_il?ie=UTF8&camp=247&creative=1211&creativeASIN=4894515180&linkCode=as2&tag=irix-22"><img border="0" src="//ws-fe.amazon-adsystem.com/widgets/q?_encoding=UTF8&ASIN=4894515180&Format=_SL250_&ID=AsinImage&MarketPlace=JP&ServiceVersion=20070822&WS=1&tag=irix-22" ></a><img src="//ir-jp.amazon-adsystem.com/e/ir?t=irix-22&l=as2&o=9&a=4894515180" width="1" height="1" border="0" alt="" style="border:none !important; margin:0px !important;" /><br />
<br />
「芸の絶対化」の危険性など、先の大戦から日本人が陥りやすい失敗・思い込みなどがこちらで解説されています。<br />
<a href="//www.amazon.co.jp/gp/product/4047041572/ref=as_li_qf_sp_asin_il?ie=UTF8&camp=247&creative=1211&creativeASIN=4047041572&linkCode=as2&tag=irix-22"><img border="0" src="//ws-fe.amazon-adsystem.com/widgets/q?_encoding=UTF8&ASIN=4047041572&Format=_SL250_&ID=AsinImage&MarketPlace=JP&ServiceVersion=20070822&WS=1&tag=irix-22" ></a><img src="//ir-jp.amazon-adsystem.com/e/ir?t=irix-22&l=as2&o=9&a=4047041572" width="1" height="1" border="0" alt="" style="border:none !important; margin:0px !important;" /><br />
<br />
「エレベーターの待ち時間問題」の抜粋元です。名著ですが既に絶版です。図書館や工学系大学の図書館で読むことができます。<br />
<a href="//www.amazon.co.jp/gp/product/B000J74XFW/ref=as_li_qf_sp_asin_il?ie=UTF8&camp=247&creative=1211&creativeASIN=B000J74XFW&linkCode=as2&tag=irix-22"><img border="0" src="//ws-fe.amazon-adsystem.com/widgets/q?_encoding=UTF8&ASIN=B000J74XFW&Format=_SL250_&ID=AsinImage&MarketPlace=JP&ServiceVersion=20070822&WS=1&tag=irix-22" ></a><img src="//ir-jp.amazon-adsystem.com/e/ir?t=irix-22&l=as2&o=9&a=B000J74XFW" width="1" height="1" border="0" alt="" style="border:none !important; margin:0px !important;" /><br />
<br />
そして孫子です。孫子は解説含めてもかなり短い本ですので、ぜひ一読してみてください。その前に、一度「戦略」について理解していると、より深く孫子が理解出来ると思います。<br />
<a href="//www.amazon.co.jp/gp/product/4003320719/ref=as_li_qf_sp_asin_il?ie=UTF8&camp=247&creative=1211&creativeASIN=4003320719&linkCode=as2&tag=irix-22"><img border="0" src="//ws-fe.amazon-adsystem.com/widgets/q?_encoding=UTF8&ASIN=4003320719&Format=_SL250_&ID=AsinImage&MarketPlace=JP&ServiceVersion=20070822&WS=1&tag=irix-22" ></a><img src="//ir-jp.amazon-adsystem.com/e/ir?t=irix-22&l=as2&o=9&a=4003320719" width="1" height="1" border="0" alt="" style="border:none !important; margin:0px !important;" /><br />
<br />
<br />
ぜひ、自分なりの戦略を立ててみてください。irix_jphttp://www.blogger.com/profile/12632742617600489703noreply@blogger.com0tag:blogger.com,1999:blog-8474111515162401850.post-83219739405645333412016-06-26T12:45:00.000+09:002016-06-26T15:32:02.186+09:00OpenStack/Heatによるオーケストレーション入門OpenStackユーザ会の第28回勉強会のネタです。<br />
<br />
<iframe src="//www.slideshare.net/slideshow/embed_code/key/1WrOpELbVMX9Vr" width="595" height="485" frameborder="0" marginwidth="0" marginheight="0" scrolling="no" style="border:1px solid #CCC; border-width:1px; margin-bottom:5px; max-width: 100%;" allowfullscreen> </iframe> <div style="margin-bottom:5px"><strong> <a href="//www.slideshare.net/irix_jp/josug-meetup-28th-heat-101" title="JOSUG Meetup 28th Heat 101" target="_blank">JOSUG Meetup 28th Heat 101</a> </strong> from <strong><a href="//www.slideshare.net/irix_jp" target="_blank">irix_jp</a></strong> </div><br />
<a href="http://aikotobaha.blogspot.jp/2015/12/hot.html" target="_blank">前回</a>の完全版のネタになります。このネタは私が大学で担当している講義資料から抜粋しています(ほとんどそのまま<br />
<br />
演習つきなので、興味があれば以下を見ながら試してみてください。<br />
<a href="https://etherpad.openstack.org/p/r.16d9199da6f662084a2362e58d6d18e5" target="_blank">https://etherpad.openstack.org/p/r.16d9199da6f662084a2362e58d6d18e5</a><br />
<br />
<br />
今回の勉強会の中で、実環境でHeatを使う際のいくつかの注意事項を述べたのでまとめておきます。<br />
<br />
<b>Heat「だけ」で全部やらない</b><br />
<br />
これにつきます。<br />
HeatはOpenStack上のリソースを配置、操作するだけならば他のツールに比べても優れています。記法はシンプルで操作方法もかなり単純です。しかし、OpenStackの外にあるものや、OpenStack上に作成されたインスタンス中を操作しようとすると途端に難易度が上がってきます(頑張ればできなくはない)<br />
<br />
一昔前であれば、学習コスト等を謳い文句にして、1つのツールを徹底的に使いこなして細かな末端までカバーするのが良い、という宣伝がされていましたが、現在はこういうアプローチはあまりされません。<br />
そのツールが得意なことだけをそのツールにやらせて、足りない部分はそこが得意な別のツールでカバーする、「ツールチェイン」のアプローチが一般的になってきています。<br />
<br />
例えばOpenStack上のリソースを作成するのにはHeatを使い、作成されたインスタンスの設定はAnsibleで行う、といったようなやり方です。<br />
Ansibleは汎用的な環境化で手順を自動化することが可能ですので、OpenStack上のリソースを作成して、そのリソースの起動を保証するといった事も出来なくはないのですが、やや複雑なプレイブックを書く必要が出てきます。<br />
そこで、得意なリソースの作成と保証の部分をHeatにまかせて、Heatが作成したスタックの外部出力値を、Ansibleのダイナミックインベトリへ渡すといったやり方をすることで、結果として全体をシンプルにすることが可能になるのです。<br />
<br />
ここではHeat + Ansibleの例をあげていますが、他の場合でも同様です。<br />
皆様も自分の環境に合わせて、最適なツールチェーンを模索してみましょう。irix_jphttp://www.blogger.com/profile/12632742617600489703noreply@blogger.com0tag:blogger.com,1999:blog-8474111515162401850.post-35938643387487104572016-02-15T21:03:00.000+09:002016-02-15T21:03:24.187+09:00CLML.LAPACK-ENVIRONMENT::DYNAMIC-HEAP-SPACE-TOO-SMALLSBCLで機械学習パッケージのCLMLを導入しようとすると、以下のエラーが出る場合があります。<br />
When you try to install CLML on SBCL, you might encounter the blow problem.<br />
<br />
<pre class="prettyprint" style="background: #f0f4ff; overflow-x: scroll; word-wrap: normal;">COMMON-LISP:SIMPLE-TYPE-ERROR : CLML.LAPACK-ENVIRONMENT::DYNAMIC-HEAP-SPACE-TOO-SMALL does not designate a condition class.
</pre><br />
この理由は実行環境のメモリ不足です。<br />
This reason is too small memory size of lisp execution environment.<br />
<br />
以下で解決できます。<br />
The solution is below:<br />
<br />
<pre class="prettyprint" style="background: #f0f4ff; overflow-x: scroll; word-wrap: normal;">$ sbcl --dynamic-space-size 4gb
</pre><br />
デフォルトでSBCLは1GBです。これは、CLMLをコンパイルするには少なすぎます。<br />
Default SBCL memory size is 1gb . It's too small to compile CLML on SBCL.<br />
irix_jphttp://www.blogger.com/profile/12632742617600489703noreply@blogger.com2tag:blogger.com,1999:blog-8474111515162401850.post-50552537595140954902016-01-12T01:19:00.002+09:002016-02-24T15:39:44.634+09:00ThinkPad X1 Carbon Gen3 + Fedora23<a href="http://aikotobaha.blogspot.jp/2014/09/lenovo.html" target="_blank">こんな記事</a>を書いたのに、またThinkPadを買ってしまった・・・。米沢産なので安心?(●`ε´●)<br>
実際、今回のThinkPadはほとんどトラブルは無いです。実はもう半年くらい使ってます。<br>
<br>
<iframe src="http://rcm-fe.amazon-adsystem.com/e/cm?lt1=_blank&bc1=FFFFFF&IS2=1&bg1=FFFFFF&fc1=000000&lc1=0000FF&t=irix-22&o=9&p=8&l=as1&m=amazon&f=ifr&ref=qf_sp_asin_til&asins=B010B4GDZA" style="width:120px;height:240px;" scrolling="no" marginwidth="0" marginheight="0" frameborder="0"></iframe><br>
<br>
ということで、X1 Carbon Gen3 をFedoraで使ってみた感想。<br>
<br>
<a href="http://aikotobaha.blogspot.com/2016/01/thinkpad-x1-carbon-gen3-fedora23.html#more">続きを読む >>></a>irix_jphttp://www.blogger.com/profile/12632742617600489703noreply@blogger.com0tag:blogger.com,1999:blog-8474111515162401850.post-44287876064224261422015-12-24T15:24:00.000+09:002015-12-24T15:24:01.496+09:00Hot の書き方(前編)OpenStack Advent Calendar 2015 ネタ。<br />
<br />
ホントはHotでマルチノードOpenStack環境を作るところまで解説したかったのですが、HOTが巨大になりすぎて解説までかけませんでした。<br />
続きはそのうちもう少し練り込んだHOTと合わせて追記して公開します。<br />
<br />
ということで、今回はHeatテンプレート(通称HOT)の基本部分の解説をました。<br />
<iframe src="//www.slideshare.net/slideshow/embed_code/key/g0jlqVtmNGZDlT" width="595" height="485" frameborder="0" marginwidth="0" marginheight="0" scrolling="no" style="border:1px solid #CCC; border-width:1px; margin-bottom:5px; max-width: 100%;" allowfullscreen> </iframe> <div style="margin-bottom:5px"><strong> <a href="//www.slideshare.net/irix_jp/hot-template-version-20150430" title="Hot の書き方(Template Version 2015-04-30) 前編" target="_blank">Hot の書き方(Template Version 2015-04-30) 前編</a> </strong> from <strong><a href="//www.slideshare.net/irix_jp" target="_blank">irix_jp</a></strong> </div><br />
それではみなさん、良いお年を。irix_jphttp://www.blogger.com/profile/12632742617600489703noreply@blogger.com0tag:blogger.com,1999:blog-8474111515162401850.post-74348700839788127852015-11-14T21:37:00.001+09:002015-11-14T21:46:10.857+09:00中央区のいいプロバイダないですかここ半年くらい回線が遅過ぎて困ってます。<br />
平日の夜、土日祝日はこんなスピードしか出ません。<br />
<pre class="prettyprint">------ BNRスピードテスト (ダウンロード速度) ------
測定サイト: http://www.musen-lan.com/speed/ Ver5.6001
測定日時: 2015/11/14 21:25:02
回線/ISP/地域:
--------------------------------------------------
1.NTTPC(WebARENA)1: 112.08Kbps (13.88KB/sec)
2.NTTPC(WebARENA)2: 143.83Kbps (17.97KB/sec)
推定転送速度: 143.83Kbps (17.97KB/sec)
</pre><pre class="prettyprint">------ BNRスピードテスト (ダウンロード速度) ------
測定サイト: http://www.musen-lan.com/speed/ Ver5.6001
測定日時: 2015/11/14 21:44:14
回線/ISP/地域:
--------------------------------------------------
1.NTTPC(WebARENA)1: 112.26Kbps (14.02KB/sec)
2.NTTPC(WebARENA)2: 174.18Kbps (21.65KB/sec)
推定転送速度: 174.18Kbps (21.65KB/sec)
</pre><br />
pingも頻繁に応答がなくなり、15年前に東北で引いてたケーブルTVがやってたネットより遅いし安定しません。<br />
動画見れば再生に追いつかず頻繁にロード待ちになり、ネトゲは常時ラグラグでまともに遊べない。<br />
迂闊に容量大きめのiOSアプリをアップデートすると、1,2時間は終わりません。<br />
<br />
朝方は40MB/secくらい出ているので機器の故障ということはないとは思います。<br />
実ははじめは機器の故障かと思って壊れてもいないA-Termを最新型に買い換えてしまいました。<br />
<br />
もし東京の中央区・江東区でおすすめのプロバイダあれば教えて下さい。<br />
今は光のマンションタイプです。irix_jphttp://www.blogger.com/profile/12632742617600489703noreply@blogger.com0tag:blogger.com,1999:blog-8474111515162401850.post-2114872275067395592015-11-14T14:51:00.000+09:002015-11-14T14:51:37.191+09:00Open vSwitch ブリッジインターフェースのMACアドレスを固定する久々に更新です。ネタはあるのですが忙しくてなかなかアウトプットできてませんでした。<br />
<br />
タイトルの通り、Open vSwitch で作成するブリッジのMACアドレスを固定化します。通常はOVSが適当に割り当てます。<br />
インターフェース作成後に、以下の感じでデバイスと与えたいMACアドレスを指定します。<br />
<br />
<pre class="prettyprint" style="background: #f0f4ff; overflow-x: scroll; word-wrap: normal;">$ ovs-vsctl set bridge br-ex other-config:hwaddr=92:c3:28:4c:09:45
</pre><br />
これはOpenStack上のインスタンスでいろいろ実験したい時に便利です。<br />
<br />
通常OpenStackのNeutronの論理ポートは接続先の仮想マシンに割り当てたIPアドレスとMACアドレス以外の通信を許可しません。そのためブリッジデバイスやらをインスタンス上で作ってもそのままでは通信することができません。<br />
<br />
そこで、このコマンドでMACを固定化した上で、Neutronの allowed-address-pairs という機能を使い以下のように、論理ポートに対して特定のIP/MACの組み合わせを許可する設定を入れ込むことで、かなり自由な通信を行うことが可能になります。<br />
<br />
<br />
特定IP指定や、<br />
<pre class="prettyprint" style="background: #f0f4ff; overflow-x: scroll; word-wrap: normal;">$ neutron port-update $PORTID00 \
--allowed-address-pairs type=dict list=true mac_address=fa:16:3e:0c:6d:89,ip_address=172.16.100.99
</pre><br />
<br />
CIDR指定が可能です。<br />
<pre class="prettyprint" style="background: #f0f4ff; overflow-x: scroll; word-wrap: normal;">neutron port-update $PORTID00 \
--allowed-address-pairs type=dict list=true mac_address=fa:16:3e:0c:6d:89,ip_address=172.16.100.0/24
</pre>irix_jphttp://www.blogger.com/profile/12632742617600489703noreply@blogger.com0tag:blogger.com,1999:blog-8474111515162401850.post-88045560456843192372014-12-25T21:57:00.000+09:002014-12-25T21:57:47.232+09:00OpenStack/CloudStack/Eucalyptusが教えてくれること今年最後のカレンダーネタです。<br />
<a href="http://www.adventar.org/calendars/602" target="_blank">http://www.adventar.org/calendars/602</a><br />
<a href="http://www.adventar.org/calendars/547" target="_blank">http://www.adventar.org/calendars/547</a><br />
<br />
<br />
OpenStackやCloudStack、Eucalyptusといった、いわゆるクラウド基盤ソフトウェアを技術的に学習することで得られるものは多々あります。<br />
<br />
ビジネス的には、自社のサービス基盤の効率化への活用だったり、SIビジネスを展開する材料にしたりできます。これらを習得する過程で、基礎的なLinux/Unixに関する技術も習得できるようになるため、エンジニアとって有用な教材であるといえます。さらに、構築したクラウド基盤上でどのようにシステムを構築し、運用するのか、という視点を持つことで、従来とは異なった、「クラウドネイティブ」なシステムデザインしていくきっかけにもなるとも思います。<br />
<br />
このように様々なことが学習できる優秀な教材でもあるクラウド基盤ソフトウェアでありますが、中でも抑えておくべきポイントとして「抽象化」の考え方があります。<br />
<br />
<br />
<blockquote>抽象化(ちゅうしょうか、英: Abstraction、独: Abstraktion)とは、思考における手法のひとつで、対象から注目すべき要素を重点的に抜き出して他は無視する方法である。反対に、ある要素を特に抜き出して、これを無視したり、切り捨てる意味もあり、この用法については捨象するという。従って、抽象と捨象は盾の両面といえる。</blockquote><a href="http://ja.wikipedia.org/wiki/%E6%8A%BD%E8%B1%A1%E5%8C%96">Wikipedia より</a> <br />
<br />
この観点でこちらに記事を書きました。<br />
<a href="http://www.atmarkit.co.jp/ait/articles/1412/12/news016.html" target="_blank">http://www.atmarkit.co.jp/ait/articles/1412/12/news016.html</a><br />
<br />
その他の関連記事はこちら(宣伝) <br />
<a href="http://www.atmarkit.co.jp/ait/subtop/features/kwd/openstack.html" target="_blank">http://www.atmarkit.co.jp/ait/subtop/features/kwd/openstack.html</a><br />
<br />
OpenStackやEucalyptus、そしてCloudStackは多岐にわたるITインフラ(サーバー、ネットワーク、ストレージ)を抽象化し、より大量の計算リソースを素早く、簡単に扱えるようにしてくれます。<br />
<br />
この流れは計算機の正当な進化に沿ったものであると言えます。計算機の世界は抽象化の層を積み重ね今日に至っており、OpenStackはその抽象化の層をまた1つ追加しようとしています。そして計算機のビジネスは抽象化の一番外側にいる層が現実世界との接点となり、ビジネスが発生するポイントになります。だからこそ、多くのITベンダーがOpenStackに注目し、こぞって開発に参画し、次世代のビジネスを主導権を取ろうと勝負しています。<br />
<br />
クラウド基盤ソフトウェアを学習するとき、あるいはビジネスでの活用を検討するときには、この抽象化の意味を良く考える必要があります。一体、何のためにこの層が必要だったのか?この意味を考え、理解すれば自ずと、クラウド基盤ソフトウェアの正しい活用方法というものがわかるはずです。<br />
<br />
<br />
<br />
来年から大学でクラウド基盤ソフトウェアに関する講義を持つ予定ですが、学生の皆様には表層的な「使い方」ではなく、こういった計算機の本質的な考え方を伝えていければと考えています。<br />
<br />
それではまた来年もよろしくお願いします。irix_jphttp://www.blogger.com/profile/12632742617600489703noreply@blogger.com0tag:blogger.com,1999:blog-8474111515162401850.post-86603208646402770262014-12-21T23:36:00.003+09:002014-12-21T23:43:01.225+09:00民明書房刊「クラウドの歴史」より今日は皆様に我が国における、クラウドの歴史について少し紹介させてください。<br />
<br />
<blockquote>おぷすたや<br />
あゝおぷすたや<br />
おぷすたや<br />
</blockquote><br />
この句は、江戸時代中期に詠まれたものであると伝えられている。<br />
信越地方の藩主の嫡男が、出島で見かけた”おぷすた”なるものに心を奪われ、思わず口にしてしまったものを偶然に通りかかった魚拓職人が記録し、現代に至る。<br />
<br />
それまでは幕府の定めた”くらうど”しか使えなかった諸藩は、このおぷすたに大変な関心を示し、皆がこぞって利用するようになった。<br />
幕府のくらうどは、”くらうど”といいながら、利用するには専門の職人が要求書を書面で送る必要があり、実際に使えるようになるまで、1周間以上待たねばならず、時には1ヶ月以上も待たされる時もあったという。<br />
<br />
このような状況に不満が蓄積されていた背景もあり、おぷすたは国内で爆発的に普及した。<br />
ただ利用するだけではなく、足りない機能をみんなで開発し、いかに自分の藩が素晴らしい貢献をするかを競い合い、いつしか貢献度に応じて藩の格付けまでされるようになった。<br />
また、当時は通信手段も乏しく、隣の藩と連絡を取るために街道の整備が急速に進み、これが後の東海道となり、日ノ本の経済を活性化させる要因ともなっていく。<br />
<br />
しかし、この状況を面白くないと思った幕府は、禁おぷすた令を発して、諸藩のおぷすたへの取り組みを禁止した。<br />
後の世に言う、「仮想環境憐れみの令」である。<br />
<br />
曰く<br />
<br />
・仮想マシンはペットのように可愛がらねばならん。<br />
・それにオープンソースなどサポートがなくて使えない<br />
・もし何かあったら誰が保証するんだ<br />
<br />
というのが幕府の言い分であった。<br />
当然、多くの人がこの考え方に反発した。中でも強硬に反発したのが大塩平蜂郎であった。大塩は元幕府の役人であったが、幕府のくらうどに対する考え方が我慢できず出奔した経緯を持つ。大塩は幕府に対して、<br />
<br />
「1時間後に仮想環境を100台用意しろ」<br />
「俺が寝ているときに負荷が上がったら、勝手に仮想環境を増強しろ」<br />
<br />
などと無理難題を要求した。当然これに対応できない幕府は要求を無視するが、これに怒った大塩によって引き起こされたのが有名な「大塩平蜂郎の乱」であるのはあまりにも有名である。<br />
<br />
この後も、幕府はなんとかおぷすたの勢力を抑えこもうとするが、一度広がったおぷすたの考え方は市場に浸透し、既に国内から一掃するのは不可能であった。幕府内にも反発する勢力が日に日に増大し、最後には幕府が折れることで、一連の騒動は幕を閉じる。<br />
<br />
そしてその後、誰もが自由に使えるおぷすたは大いに広がり、江戸後期には様々なコンテンツビジネスがおぷすた上で展開され、江戸の住民を多いに楽しませたという。<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
ちなみに全部フィクションであることは言うまでもない( <a href="http://www.adventar.org/calendars/602" target="_blank">http://www.adventar.org/calendars/602</a> )irix_jphttp://www.blogger.com/profile/12632742617600489703noreply@blogger.com0tag:blogger.com,1999:blog-8474111515162401850.post-86299021932503133542014-12-11T21:02:00.000+09:002014-12-12T10:14:17.032+09:00Emacsでプレゼン資料を作る(landslide)OpenStack Advent Calendar 2014 のネタです。<br />
<a href="http://www.adventar.org/calendars/569" target="_blank">http://www.adventar.org/calendars/569</a><br />
<a href="http://www.adventar.org/calendars/602" target="_blank">http://www.adventar.org/calendars/602</a><br />
<br />
なんでEmacsなんだよ、と思われる方もいると思います。まずは話を聞いてください。<br />
<br />
OpenStack には Upstream Training というコントリビューターを育成するプログラムがあります。これまで、グローバルで3回開催されています。<br />
<br />
1回目 <a href="http://www.openstack.org/blog/2014/03/openstack-upstream-training-in-atlanta/" target="_blank">OpenStack Summit Atlanta</a><br />
2回目 <a href="http://www.atmarkit.co.jp/ait/articles/1410/27/news084.html" target="_blank">Upstream Training Japan</a><br />
3回目 <a href="http://www.openstack.org/blog/2014/08/openstack-upstream-training-in-paris/" target="_blank">OpenStack Summit Paris</a><br />
<br />
今後の予定は、たぶんこんな感じになると思います。<br />
<br />
4回目 <a href="http://openstackdays.com/" target="_blank">OpenStack Days Tokyo 2015</a>(予定)<br />
5回目 <a href="https://www.openstack.org/summit/vancouver-2015/" target="_blank">OpenStack Summit Vancouver</a>(予定)<br />
6回目 OpenStack Summit Tokyo(予定)<br />
<br />
実は、世界でこのトレーニングを受けることができるのは、Summitに参加した人か、日本に住んでいる人だけになります。日本のトレーニングはローカライズもされています。貴重ですね。<br />
<br />
<br />
と、これは本題ではなく、このトレーニングで使われている教材が、githubに公開されています。<br />
<a href="https://github.com/openstack/training-guides/tree/master/doc/upstream-training" target="_blank">https://github.com/openstack/training-guides/tree/master/doc/upstream-training</a><br />
<br />
スライドの実態はこのあたりです。テキストファイルです。<br />
<a href="https://github.com/openstack/training-guides/blob/master/doc/upstream-training/01-release-cycle.rst" target="_blank">https://github.com/openstack/training-guides/blob/master/doc/upstream-training/01-release-cycle.rst</a><br />
<br />
このテキストファイルを landslide というツールに食べさせると、HTML5のプレゼンファイルができます。<br />
<a href="https://github.com/adamzap/landslide" target="_blank">https://github.com/adamzap/landslide</a><br />
<br />
<br />
という事で、<a href="http://www.e-side.co.jp/okinawaopendays/2014/" target="_blank">Okinawa OpenDays 2014</a> で開催される、OpenStackハンズオンの資料をlandslideで作ってみました。<br />
<a href="http://irixjp.github.io/20141212_okinawa/handson.html" target="_blank">http://irixjp.github.io/20141212_okinawa/handson.html/</a><br />
<br />
<br />
landslide を使ってみた感想をまとめます。<br />
<br />
・Emacsで資料を書ける(Markdown or rst形式)<br />
・テキストベースのスライドなら使いやすい<br />
・画像を交えると結構苦しい<br />
・印刷がかなり難しい、PDF変換も綺麗にはいかない(今は)<br />
・CSSに詳しくないと、カスタマイズが難しい。<br />
・レイアウトが環境によってずれる(Win/Mac/Linux/ブラウザ)<br />
<br />
<br />
と、一長一短かなと思いました。<br />
一方で、これにブログ記事をスライド形式で書くのも面白いと思いました。<br />
<br />
<br />
ちなみに、S式でプレゼンを書くツールもあります。<br />
<a href="https://github.com/fukamachi/L5" target="_blank">https://github.com/fukamachi/L5</a><br />
<br />
Emacs org-mode をプレゼン風に使うelもあります。<br />
<a href="http://pastelwill.jp/wiki/doku.php?id=emacs:org-tree-slide" target="_blank">http://pastelwill.jp/wiki/doku.php?id=emacs:org-tree-slide</a><br />
<br />
<br />
PPT/KEYにはもう飽きたよ、という方は次のOpenStack勉強で使ってみてください(保証もヘルプもしませんが)<br />
<br />
それでは良いお年を。irix_jphttp://www.blogger.com/profile/12632742617600489703noreply@blogger.com0tag:blogger.com,1999:blog-8474111515162401850.post-81012646573118178962014-09-24T23:26:00.000+09:002014-09-24T23:26:16.328+09:00gnupack(cygwin)上でsary をコンパイルする<blockquote>sary: Suffix Arrayのライブラリとツール</blockquote>http://sary.sourceforge.net/index.html.ja<br />
<br />
Suffix Array というデータ構造を使う場合に必要になるコマンドとライブラリ。巨大な辞書ファイルの検索などに用いられます。<br />
<br />
Emacs + SDIC で辞書環境を作る際、英辞郎のインデックス化とその後の検索に sary/mksary というコマンドが必要になります。これをgnupackでコンパイルして利用できるようにしてみます。<br />
<br />
といっても、<a href="http://aikotobaha.blogspot.jp/search/label/gnupack" target="_blank">gnupack x86_64 00.01 版</a>ではコンパイル済みのバイナリを本体に含めています。自分でコンパイルしたい場合は、gcc-core, gcc-g++, libglib2.0, libglib2.0-devel, pkg-config が必要となります。<br />
<br />
<pre class="prettyprint" style="background: #f0f4ff; overflow-x: scroll; word-wrap: normal;">$ wget http://sary.sourceforge.net/sary-1.2.0.tar.gz
$ tar zxvf sary-1.2.0.tar.gz
$ cd sary-1.2.0/
</pre><br />
このままだとguessファイルが古く、configureに失敗しますので、config.guess関連を以下のファイルで差し替えます。<br />
---------------<br />
<a href="http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.guess;hb=HEAD" target="_blank">http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.guess;hb=HEAD</a><br />
<a href="http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.sub;hb=HEAD" target="_blank">http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.sub;hb=HEAD</a><br />
---------------<br />
<br />
後はいつも通りです。<br />
<pre class="prettyprint" style="background: #f0f4ff; overflow-x: scroll; word-wrap: normal;">./configure --prefix=/app/cygwin/local
make: make install
</pre>irix_jphttp://www.blogger.com/profile/12632742617600489703noreply@blogger.com0tag:blogger.com,1999:blog-8474111515162401850.post-20844279432439475182014-09-23T18:58:00.001+09:002016-02-24T15:41:20.334+09:00もうLenovo製品は永久に買わない、というお話** 2014/09/23 24:00 追記***<br>
想像以上に記事が注目を集めてしまい、私の主観に基づく見解で書かれたT440sとLenovoのイメージが拡散してしまうのは本意ではありませんので、個人的な意見や見解は削除しておきます。よろしくお願いいたします。<br>
---------------------------------------<br>
<br>
度重なるT440sのトラブルに、思うことはあるのですが、Lenovo本家が運用している掲示板でも <a href="https://forums.lenovo.com/t5/T400-T500-and-newer-T-series/T440s-nightmare/td-p/1353531" target="_blank">T440s nightmare</a> というスレッドが立ち上がっており、盛り上がってる感じでした。<br>
<br>
この1年間にT440sで発生したことを記録しておきます。<br>
<a href="http://aikotobaha.blogspot.com/2014/09/lenovo.html#more">続きを読む >>></a>irix_jphttp://www.blogger.com/profile/12632742617600489703noreply@blogger.com12tag:blogger.com,1999:blog-8474111515162401850.post-31644010752878073092014-09-23T12:19:00.001+09:002014-09-24T00:52:19.605+09:00openstack clients on windows(cygwin)Windowsからいろいろ使えると便利です。<br />
<br />
ここ <a href="http://aikotobaha.blogspot.jp/search/label/gnupack" target="_blank">http://aikotobaha.blogspot.jp/search/label/gnupack</a> から最新版のgnupackを落としてください。 <br />
<br />
後は、<br />
<pre class="prettyprint" style="background: #f0f4ff; overflow-x: scroll; word-wrap: normal;">easy_install virtualenv virtualenvwrapper
</pre><br />
<br />
環境変数を設定(例<br />
<pre class="prettyprint" style="background: #f0f4ff; overflow-x: scroll; word-wrap: normal;">if [ -f /usr/bin/virtualenvwrapper.sh ]; then
export WORKON_HOME=~/.virtualenvs
source `which virtualenvwrapper.sh`
fi
export PIP_DOWNLOAD_CACHE=~/.pip_cache
</pre><br />
<br />
インストール<br />
<pre class="prettyprint" style="background: #f0f4ff; overflow-x: scroll; word-wrap: normal;">pip install python-novaclient python-neutronclient python-swiftclient python-cinderclient
</pre>* python-glanceclient はコンパイルエラーになります。crypto周り??<br />
<br />
<br />
cygwin的に必要となるパッケージは以下。<br />
<pre class="prettyprint" style="background: #f0f4ff; overflow-x: scroll; word-wrap: normal;">gcc-core
libxml2
libxml2-devel
libxslt
libxslt-devel
openssl-devel
libffi
libffi-devel
yaml
</pre>irix_jphttp://www.blogger.com/profile/12632742617600489703noreply@blogger.com0tag:blogger.com,1999:blog-8474111515162401850.post-5772977660460070202014-09-23T12:04:00.001+09:002014-09-23T12:04:09.572+09:00gnupack 非公式アップデート x86_64版 00.01 pretest リリース*gnupack 非公式アップデート版に関する最新バージョンは <a href="http://aikotobaha.blogspot.jp/search/label/gnupack" target="_blank">こちら</a> をご確認ください*<br />
<br />
もう32bitで使う人も少ないかと思い。64bit版にしました。pretestリリースなので、いろいろ足りていませんが、動作速度は劇的に改善しています。<br />
<br />
・gnupackランチャー(mintty.exe) のみオリジナルを配置し、その他は削除しています(改良したいけど、時間もVCもない)<br />
・cygwinを64bit版に入れ替え<br />
・NTEmacs, Gvim, TDMを削除<br />
・CygwinネイティブでコンパイルしたEmacs24.3を配置(IMEパッチ適用済み)<br />
・apt-cygを本家最新版に(2013/12版)<br />
<br />
ダウンロードは <a href="http://goo.gl/rxFdMz" target="_blank">こちら</a> から。<br />
<br />
Windows2008で作成し、Win8で動作確認(中)をしています。<br />
<br />
<br />
現在のところ確認できた問題点<br />
・manが文字化け(LANG=Cで治る)<br />
・screenが動かない(/tmp/userscreen/xxxxxxx の権限が700云々)<br />
・emacs-w3m のロードが、不定期に重くなり、以下が出力<br />
<pre class="prettyprint" style="background: #f0f4ff; overflow-x: scroll; word-wrap: normal;">1 [sig] emacs 6444 get_proc_lock: Couldn't acquire sync_proc_subproc for(5,1), last 6, Win32 error 122
503 [sig] emacs 6444 proc_subproc: couldn't get proc lock. what 5, val 1
</pre>irix_jphttp://www.blogger.com/profile/12632742617600489703noreply@blogger.com1