転載・引用について

ユーザ用ツール

サイト用ツール


tweet

つぶやき

技術系や雑感等は再編集して本文の記事にする事を前提としているので、こっちにLinkを張らないでください。

WebPageのSSL化

本サイトを含め、個人的に管理しているサイトがそこそこあるわけだが、昨今の様々な要請からSSL化を進めることにした。 (そういうわけでLet's Encryptと格闘していたのだが)

その結果、WordPressとRedmine系を除いて、概ねLet's Encryptの証明書を利用したSSL化が一通り区切りがついた。

まぁ、証明書が入手できさえすれば、SSL化は簡単ではあるけど。

server {
  listen      xxx.xxx.xxx.xxx:80;
  server_name www.seirios.org;
  return      301 https://$host$request_uri;
}

server {
  listen      xxx.xxx.xxx.xxx:443 ssl;
  server_name www.seirios.org;
  ssl         on;
  ...
}

結構重要なこととして、コンテンツ側に記載されているLink等のうち、自らを示しているURLを一通り確認すること。 これをしないと、結局一部SSL化されないURLが残るので、面倒なことになりかねない。

· 2018/07/02 19:01 · 2017/06/26 14:45

shell scriptとwhileとreadとssh

大変にハマったのでメモ書き。今日はもういいや。

shell scriptにおいて、ファイルから1行ずつ読み込んで処理をするような場合、以下のようにかける。

while read line; do
  echo ${line}
done < file

ところが、この手を使ってsshを実行すると、なぜか最初の行しか実行されない

while read line; do
  ssh xxx.xxx.xxx.xxx ${line}	# XXX 期待通りに動かない
done < file

原因はsshコマンド実行に伴う標準入力の切替と考えられる。 sshコマンドを実行すると、ローカルホストのstdinからの入力を終了し、sshで指定したリモートホストのstdinからの入力受付を開始する。 従って、ローカルホストのファイルの読込みを終了させた上でsshコマンドを実行し、再びreadコマンドを実行しようとしていると考えられる。もちろん、この時点で既にファイルがcloseされている為、whileが終了してしまう。

対策は、sshに-nオプションをつけること。これよって、sshコマンドのstdin切り替えを禁止することが出来る。

この原因がちっともわからず、数時間を無駄にしてしまった。

while read line; do
  ssh -n xxx.xxx.xxx.xxx ${line}	# これで/dev/nullがsshのstdinにつながる
done < file

このほかに、for文で for line in `cat file` で代用する手も考えられるが、これは、行にスペースがある場合、$lineに代入される値が1行まるごとではなく、スペースまでの部分になるので、ここにも明確な罠があると考えられる。これを回避するにはIFSを変えれば良いのだから、

IFS=$'\n'				# 区切り文字を" "から"\n"に変える
for line in `cat file`; do		# while readの代わりにcatで読み込ませる
  ssh -n xxx.xxx.xxx.xxx ${line}
done

あと、whileはちょっと特殊な制御文で、場合によってはwhile内で変数設定しているはずなのにloopをでてくると変数が空のようなことが起こる。 これは、Whileと他のコマンドを組み合わせた場合、組み合わせ方次第で処理がsubshellがわで処理されてしまう事が原因である。 shellでpipelineを用いて実行した処理は、subshellで処理される。while loopの内部でpipelineを利用すると、whileブロック全体がsubshellで処理されるため、whileブロックの内部と外部で変数の共有が出来ない。 このような場合、whileに対して出力をredirectしてやることで解決できる。

while read line; do
  OUT=`echo ${line} | sed 's/test/test2'`
done < $1
echo ${OUT}

なお、/bin/shの引数に -v-x をつけると、デバッグに大変に役立つ

· 2018/07/02 19:01 · 2017/06/23 21:45

Wekan

というわけで、KanbanアプリであるWekanを作る。

もともとの記事は、下部の「古い記事」に移した。 メモとして残すが、参考にはならんでしょう。

→ 続き...

· 2018/07/02 19:01 · 2017/05/18 15:47

仮想化技術比較

こんな表を作ってみた。

ただ、この表をメンテナンスするのは恐らく無理だなぁ。取りあえずと言うことで。

· 2018/07/02 19:01 · 2017/05/18 15:44

LDAP管理ソフトを探す

以前、(PHP LDAP Admin)のつぶやきを書いたが、その後状況が変わっていないかちょっと調べてみる。

  • Admin4 どうやら、細々メンテナンスはされている模様。2年に1回くらいUpdateされているように見える
    • Pythonなので、割と何でも動かせそう
  • The Apache Directory Studio(TM) でかい。Java…
  • Fusion Directory FreeBSDでも動かしている人はいるらしい。画面からでは理解しにくい…
    • PHP+perl+いろいろ。ちょっと面倒そうな感じ
  • LDAP Account Manager 悪くなさそうなんだけど、いまいち。商用版がある
    • Accountの管理だけならおそらくこれでいい。FreeBSDのportsがある
  • PHP LDAP Admin もう終わってるとおもう。2013年以降更新なし
  • Self Service Password これは、ユーザーに公開するパスワード変更用のI/Fとしては良さそう
    • FreeBSDのportsにある

こうしてみると、LDAP管理系のソフトが本当にない。Java使えばいいんだろうけど、管理がなぁ… ActiveDirectoryに行く気持ちがわかってきた…

古いの承知でPHP LDAP Admin使うのか?…Admin4かなぁ…

· 2018/07/02 19:01 · 2017/05/18 11:52
このウェブサイトはクッキーを使用しています。 Webサイトを使用することで、あなたはあなたのコンピュータにクッキーを保存することに同意します。 また、あなたはあなたが私たちのプライバシーポリシーを読んで理解したことを認めます。 同意しない場合はウェブサイトを離れてください。クッキーに関する詳細情報
tweet.txt · 最終更新: by seirios

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki