Dokuwikiでmakrdownで画像挿入するとDokuwikiが台無しになる
下記のURLで書いたことと同じ内容です.
簡単に言うと,DokuwkiをMarkで対応させて画像挿入するとめんどい.
http://k32ru.hatenablog.com/entries/2012/12/04
現在はPuwikiでwikiの文書を書いている.が,メンテされてないので他のmakrdownで書けるwikiへの移行を検討している.
dokuwikiも検討したことがあったが,一番良く使うであろう見出しレベル1が=====見出しレベル1=====となっているのが非常にめんどくさいと感じた.
その点,makrdownは見出しレベル1ならば,#見出しレベル1と書けるので非常に書きやすいと感じた.
また,Puwiki記法とも似ているので新規に学習するコストも低いだろうと感じた.
移行するwikiへ求める機能としては以下のような感じ.上から順に優先は高い.
そんな感じでWikiMatrix - Compare them all http://www.wikimatrix.org/ というサイトを知り色々と検討してみた.
パッと来るものが無かったがdokuwikiがPluginでmarkdownに対応しているとのことなので試してみた.
参考にしたのは以下のURL
DokuWikiの設置と設定、Markdownを愛す。 ::ハブろぐ http://havelog.ayumusato.com/computer/software/e151-dokuwiki-install.html
makrdownに対応させるために以下のプラグインを導入
https://www.dokuwiki.org/plugin:markdownextra
以下のような感じで書ける.
#見出しレベル1
##見出しレベル2
###見出しレベル3
####見出しレベル4
#####見出しレベル5
- リストアイテム1
- リストアイテム2
- リストアイテム3
見出しも勝手に生成してくれるようだ.
(参考URLでは別のプラグインを入れていたが,今回は入れなかった)
ただ,一つ問題があって,画像を入れるのが複雑だと感じた.
dokuwikiには標準で素晴らしいメディアマネージャーが着いており
今までアップロードした画像が一括で管理できるようになっている.
メディアマネージャーを使って画像をアップロードして画像を挿入すると以下のような感じになる.
hoge.jpgが画像ファイル名で,300が画像サイズである.
{{ :hoge.jpg?300 |}}
当然,makrdownの内部に書かれている場合には以下のようになる.
{{ :hoge.jpg?300 |}}
もちろん,この画像の書き方はmakrdownではないために画像は表示されない.
なので,dokuwikiの書き方にするなばら以下のように一度markdownを終わらせなくては行けない.
画像は以下のようになる.
{{ :hoge.jpg?300 |}}
つぎに,(ry
はっきし言ってだるい.めんどい.
そこでmarkdown記法で画像を埋め込むことにしよう.
その場合には画像へのリンクを絶対パスなり相対パスなりで書かなくはいけない.
![hoge](lib/exe/fetch.php?media=hoge.jpg? "hoge")
これまた,相対パスを画像ごとに書かなくはいけないため
dokuwikiの持っている素晴らしいメディアマネージャーが台無しだ.
そんなわけでamrkdownで書くと画像を挿入するがめんどいという問題があり
もう一度他のwikiを検討すべきなのか迷っている.
dokuwikiでやるのであれば,メディアマネージャーで画像を挿入する場合に
自動でmakrdownの終わりと開始タグを入れるように改造するしか無いのではないかと思う.
ESXi 5.0->5.1
5.0->5.1 アップグレード
大体参考URLのまんま
- SSHを使えるようにする
- https://my.vmware.com/group/vmware/details?downloadGroup=VCL-VSP510-ESXI-510-EN&productId=285 からVMware-ESXi-5.1.0-799733-depot.zip をDL
- ローカルドライブに保存しているVMware-ESXi-5.1.0-799733-depot.zip をvSphere Clinetを使って、ホスト上(ESXi)上にコピー
- 仮想マシンのシャットダウン
- 適用させる
以下適用方法。datastore1というのは人によって違う。
esxcli software profile install -d /vmfs/volumes/datastore1/VMware-ESXi-5.1.0-799733-depot.zip -p ESXi-5.1.0-799733-standard
置いた .zipへのフルパスであれば以下のようなものでもおK
esxcli software profile install -d /vmfs/volumes/4e9360ae-0f2bbd5e-7c5d-f46d04d42045/esxi_update/VMware-ESXi-5.1.0-799733-depot.zip -p ESXi-5.1.0-799733-standard
後は成功すれば再起動を促されるのでESXiを再起動させる。
In case you want to revert back, just press Shift+R at the boot loader screen…
Insta
適用前
esxi.localhsot VMware ESXi,5.0.0,469512
適用後
esxi.localhsot VMware ESXi,5.1.0,799733
参考URL [#q0a86b3e]
ESXi Free - how to upgrade to ESXi 5.1 - ESX Virtualization - ESX Virtualization
いつか、そのとき、あの場所で。 | [VMware][備忘録] vSphere Hypervisor (ESXi) 5.1へアップデートを試してみた。[成功] http://kometchtech.blog45.fc2.com/blog-entry-1023.html
その他
パッチがDLできる、
Download
テスト
あとは実際に入って、入れればOK
CENTOS /home/k32ru% ssh ldapuser@127.0.0.1 ldapuser@127.0.0.1's password: (ldapuserと入力) Last login: Sun Nov 11 00:56:21 2012 from centos.localhost Could not chdir to home directory /home/ldapuser: No such file or directory id: cannot find name for group ID 1000 -bash-3.2$ id uid=1000(ldapuser) gid=1000 所属グループ=1000 -bash-3.2$
設定
/var/logにログを吐くようにする。
-は削除行、+は追加行です。
vi /etc/syslog.conf -*.info;mail.none;authpriv.none;cron.none /var/log/messages +*.info;mail.none;authpriv.none;cron.none;local4.none /var/log/messages +local4.* -/var/log/slapd.log
vi /etc/logrotate.d/syslog syslog -/var/log/messages /var/log/secure /var/log/maillog /var/log/spooler /var/log/boot.log /var/log/cron { +/var/log/messages /var/log/secure /var/log/maillog /var/log/spooler /var/log/boot.log /var/log/cron /var/log/slapd.log{
syslogの再起動
service syslog restart
slapd.conf
mv /etc/openldap/slapd.conf /etc/openldap/slapd.conf.orig chgrp ldap /etc/openldap/slapd.conf chmod g+r /etc/openldap/slapd.conf vi /etc/openldap/slapd.conf (設定は後ほど) chkconfig ldap on service ldap start
以下のようにログが吐けてればよい。
CENTOS /etc/openldap# tail /var/log/slapd.log Nov 10 12:31:06 centos slapd[3763]: slapd starting
vi /etc/openldap/ldap.conf URI ldap://127.0.0.1/ BASE dc=my-company,dc=com
以下は第1回 まずは使ってみよう:そろそろLDAPにしてみないか?|gihyo.jp … 技術評論社の設定パラメータをそのまま利用しています。
vi /etc/openldap/slapd.conf include /etc/openldap/schema/core.schema include /etc/openldap/schema/cosine.schema include /etc/openldap/schema/inetorgperson.schema include /etc/openldap/schema/nis.schema pidfile /var/run/openldap/slapd.pid argsfile /var/run/openldap/slapd.args database bdb suffix "dc=example,dc=com" rootdn "cn=Manager,dc=example,dc=com" rootpw secret directory /var/lib/ldap
/etc/init.d/ldap restart もしくは service ldap restart
passwd.ldifの作成
cd ~/ vi passwd.ldif dn: dc=example,dc=com objectClass: dcObject objectClass: organization dc: example o: example dn: ou=People,dc=example,dc=com objectClass: organizationalUnit ou: People dn: uid=ldapuser,ou=People,dc=example,dc=com objectClass: account objectClass: posixAccount uid: ldapuser cn: ldapuser userPassword: ldapuser loginShell: /bin/bash uidNumber: 1000 gidNumber: 1000 homeDirectory: /home/ldapuser
passwd.ldifを追加
ldapadd -x -D "cn=Manager,dc=example,dc=com" -w secret -f passwd.ldif
以下のように出れば良い。以前はここでldap_bind: Invalid credentials (49) というエラーが出た。
ENTOS /root# ldapadd -x -D "cn=Manager,dc=example,dc=com" -w secret -f passwd.ldif adding new entry "dc=example,dc=com" adding new entry "ou=People,dc=example,dc=com" adding new entry "uid=ldapuser,ou=People,dc=example,dc=com"
LDAP認証の有効化
後はLDAP認証と使えるように設定する.
authconfigについては以下のURLを参考にした。
05_authconfigコマンドによるOSの認証設定 - あっくんの作業ログ
authconfig-tui
項目をTabで移動して「LDAP認証を使用する」と「LDAPを使用」にチェック入れる。
lqqqqqqqqqqqqqqqqqqqu 認証の設定 tqqqqqqqqqqqqqqqqqqqqk x x x ユーザー情報 認証 x x [ ] キャッシュ情報 [*] MD5 パスワードを使用 x x [ ] Hesiod を使用 [*] シャドウパスワードを使用 x x [*] LDAP を使用 [*] LDAP 認証を使用 x x [ ] NIS を使用 [ ] Kerberos 5 を使用 x x [ ] Winbind を使用 [ ] SMB 認証を使用 x x [ ] Winbind 認証を使用 x x [ ] ローカル認証は十分です x x x x lqqqqqqqqqqk lqqqqk x x x 取り消し x x 次 x x x mqqqqqqqqqqj mqqqqj x x x x x mqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqj
LDAPを使用するにチェック入れると以下の画面になる。
特にいぢる必要無いのでそのまま「OK」を選択。
lqqqqqqqqqqqqqqqqqqqqu LDAP 設定 tqqqqqqqqqqqqqqqqqqqqk x x x [ ] TLS を使用 x x サーバー: ldap://127.0.0.1/_______________________ x x ベース DN: dc=example,dc=com__________________________ x x x x lqqqqqqk lqqqqk x x x 戻る x x OK x x x mqqqqqqj mqqqqj x x x x x mqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqj
一応設定確認しておく
LANG=en_US.UTF-8 authconfig --test (略) pam_ldap is enabled LDAP+TLS is disabled LDAP server = "ldap://127.0.0.1/" LDAP base DN = "dc=example,dc=com" (略)
とかなっていればOk
インストール
yum -y install openldap-servers openldap-clients
OpenLDAP
第1回 まずは使ってみよう:そろそろLDAPにしてみないか?|gihyo.jp … 技術評論社を参考にLDAPを動かした時のメモです。私が最初に上記URLの通りに設定した時はldap_bind: Invalid credentials (49) というエラーが出てうまく行きませんでした。そこで、Amazon.co.jp: プロのための Linuxシステム・ネットワーク管理技術 (Software Design plus): 中井 悦司: 本のOpenLDAP部分(P180付近)の設定を行った後に最初に上げたページを実行したうまく行きました。正直何が良かったのかさっぱり掴めてないのですが本を参考にした時の設定を公開します。殆どコマンドしか書いてないのでLDAPの技術詳細については上記URLや本を参考にしてください。
FreeBSD勉強会 第11回 FreeBSDハイパーバイザ「BHyVe」の仕組み・使い方紹介
話は全体的に仮想化技術についてでした。最後の方でBHyVeについて話していました。
関連資料
第11回 FreeBSD勉強会 : ATND http://atnd.org/events/30986
第11回 FreeBSD勉強会 FreeBSDハイパーバイザ「BHyVe」の仕組み・使い方紹介 - Togetter
第11回 FreeBSD勉強会 #FreeBSDStudy - Togetter
BHyVe: The BSD Hypervisor(発表パワーポイント) http://www.slideshare.net/syuu1228/bhyve-the-bsd-hypervisor
完全仮想化 VirtualBOX
実ハードウエアを完全にエミュレートし、既存のOSをそのまま仮想マシン上で動作させる。OSに一切手を加えない。高速化のためにCPUの部分はエミュレートしない。CPUにはユーザモードとカーネルモードがある。アプリケーションが破壊しそうな行動がきたらハンドルしてエラーを返す。権限の分離を行なっている。ユーザモードで仮想化のマシンを動かす。システム全体に影響を与えるのはユーザモードではできない。なので、できないのをトラップで検知して特権処理に合わせてエミュレートを行う。特権命令ではないセンシティブ命令がある。
昔の手法
バイナリトランスレーション
ゲストのプログラムを実行中に書き換え。実行されるとまずい命令を置き換える。システム影響を与えないで実行できるようにする。VMwareが主にやっている。ハードウエア仮想化支援ができる前にはこれが行われていた。
仮想化のソフトウエアの種類
Virtual Box
FreeBSDでBHyVe以外で動く唯一のハードウエア仮想化対応のハイパーバイザー。あまりサーバ用途ではなく、デスク通っップ用途。特徴として多くのホストOSで動く。
Xen(HVM)ゼン
準仮想化
Xen(PVM)
P実ハードウエアを完全にエミュレートするのではなく、仮想化に都合が良い構造にゲストOSを改変。センティブ命令はソースコードレベルであらかじめ書き換えられている。バイナリトランスレーションなどのように実行中に書き換えてない。そのため、バイナリトランスレーションよりもいくつかのベンチマークでは性能が高く評価される。オーバヘッドが低い。OSを書き換えてしまえという発想から生まれた。
完全仮想化に用いられている実ハードウエアと仮想化ディバイスをエミュレートするのは必ずしも良いわけでは無い。なぜならば、ゲストとハイパーバイザ間のモード切り替えの回数が無駄に多いためメモリコピーが発生して必ずしも性能が高くない。
準仮想化ではゲストとハイパーバイザのやりとりに最適化されているため既存のディバイスよりもオーバヘッドが少ない。NICとHDDのがKVMでは導入されている。BHyVeでも実装されている。ソースまるごとではなく公開されている資料を作られている。
Jail
コンテナ型仮想化
- 一つのOS上に擬似的に複数のOS環境を作り、OSの各種リソース情報をコンテナごとに別々に管理することにより、プロセスごとにして別のOSで有るかのように見せる。
- 複数のバージョンのOSを仮想化には向いてない
- ホストがカーネルパニックになるとダメ
あるプロセスに対して、あるディレクトリをルートディレクトリに見せる。上位ディレクトリが見えないような挙動を行う。
- Jail
chrootに加えて、プロセス空間も独立
- Jail+VIMAGE
ネットワーックスタックも独立
netstat -nrを実行してもJailの外側のルーティングテーブルは見えない。
準仮想化原理的にはオーバヘッドが少ないが、できることが少ない。
BHyVeの詳細
- Linux KVMのようなもの
- FreeBSD10へのマージを目指して開発中。
- Intel-VT-x EPT対応のCPUで動作Nehalem以降のCPU
- http://ark.intel.com/にCPUのリストがあり。対応しているからしてないかがわかる。dmesgはEPTではわからない。
- NetAPの二人が頑張って開発している。
- 今はKVMのような機能が揃っているわけではない。
- FrreeBSD8.1-10 amd64は無改造で動く
- FreeBSD7.22-10/amd64は要改造
- amd64のみ32bitは対象外
- 最初はFreeBSD8ベースで開発していた。8と9と10ではうごくのではないか。
- 現在はFreeBSDのみ動く。
- Linuxも動くらしいがコードは出してない。(ぼそっとRedhatが動いたみたいな事を行っていた時があった。)
- 仮想コンソールはビデオというより文字が表示できるのみ。でもなぜか、CPIパススルーはできている。
- SMP対応(最大8コア)
- HDDとNICとはバートIO
設定方法
CFT: Hands-on BHyVe http://callfortesting.org/bhyve/
- VMware上でBHyVeを動かせる
- デモではVMwareFusionで動かしていた。
- ホスト側での設定
- Pysicalmen で使うメモリ量を指定する。これをしてしないとメモリが無いと言われる。
- vmm.koをロードする必要がある
- #/root/bhyve-guest
- Bhyveload-m 128 -h . mygest
- BIOSが無いのメモリをかくほしてやる
- Destoryしないとメモリを確保されたままになる。
- Hw.physmem
- BIOSが無いのでディスクイメージのブートセクタから起動できないで変わりんbhyveloadによりメモリの構造体を作る。
- コンソールが遅いだけ。ネットからSSHでつなげれれば速い
- PCIはビデオ周りはだめ。NIC周りはいける。IOAPICエミュレートを持たないためレガシ割り込みは非サポート。MSIのみMSIーXはダメ、MSI割り込みをするとわかっているもの飲み使える。
- Virtioの仕様にそったネットとbloc(HDD)をサポート
仕様の書いてあるPDFは以下の通り
http://ozlabs.org/~rusty/virtio-spec/virtio-paper.pdf
ゲストカーネルの変更点
- 変更している点は実装してない部分
- カスタムコンソールとデバッグポート
- com0 emulation or VGA emulationが必要
- コンソール出力がOSに無いものを利用しているため
- 設定しないと何も出ない。
- SMPの場合2個めからどうするか?
- 2つめ以降のquick hackが必要。
実装中の機能
- BIOS 7割、8割はできている。が10割できないと使えない。起動してFreeBSDのロゴは見えるようにはなっている。
- Guest suspend /resume これがライブグレーションができるようになる。動いているマシンを移動できるようになる。
- AHCI emulation
MMIO local APIC できたと言っているがソースは見てない
- IOAPIC emulation できた。レガシー割り込みができるようになったらしい。現在はMSI割り込みのみ
やろうと思っているが手はつけてない。
- Older Intel CUP supprt(witout EPT)Core2tDuoとかうわっどで動かすようにしたいが、優先度は高くない。
- Q複数立ち上げる場合には
- A/dev/vmm/$vmname ごとにつくってそれを立ち上げる。他のプロセスと同じ。
次回
次回は佐藤先生がやる予定
FDTが導入されたよ!的な組み込み系の話になるみたい。
日時は11月2日