Vault の /secret パスは version2 なんだなぁ

Vault の Getting Started をやっている。

Vault Curriculum - HashiCorp Learn

/secret のパスに例えば

vault write secret/hoge foo=piyo

とやると下記エラーが表示される。

Error writing data to secret/hoge: Error making API request.

URL: PUT http://127.0.0.1:8200/v1/secret/hoge
Code: 404. Errors:


WARNING! The following warnings were returned from Vault:

  * Invalid path for a versioned K/V secrets engine. See the API docs for the
  appropriate API endpoints to use. If using the Vault CLI, use 'vault kv put'
  for this operation.

「そんなパスないから、vault kv put 使えよ」 と言っている。

put を使ってやってみる。

vault kv put secret/hoge foo=piyo
Key              Value
---              -----
created_time     2019-03-19T15:10:19.246453Z
deletion_time    n/a
destroyed        false
version          1

正常にできる。

どうも、デフォルトである /secret のパスは v2 の Secrets Engine になっているみたい。 stackoverflow.com

www.vaultproject.io

vault secrets enable -path=kv kv

とかで、自分で追加した Secrets Engine は v1 になっているみたい。

vault secrets enable -version=2 -path=kv2 kv

とかすると v2 になる。

コマンドから version を確認する手段がわからなくて、下記URLから確認したら version が確認できた。 http://localhost:8200/ui/vault/secrets

f:id:k6i:20190320002750p:plain

SSL を使って Apache にアクセスするサンプルを Docker で作成する

hub.docker.com

上記の公式の手順を順に行えばよい。

証明書は openssl を使用してとりあえず作成。 下記サイトを参考にした。 ozuma.hatenablog.jp

作成した Dockerfile はコレ

SSLを使用してapacheにアクセスする

https://localhost/ にアクセスすると”保護されていない通信"だけどページが表示される。

Mac Book Air 2018 を買った

使用していた Mac Book Air 2011 が突然起動しなくなった。

予算15万で新しいノートパソコンを探していたが、ちょうど Mac Book Air がリニューアルされて、 PayPay で20%還元もあったので、Mac Book Air 2018 を購入。

メモリは 16GB、ストレージは 128GB を選択。

f:id:k6i:20181224233841j:plain きたー f:id:k6i:20181224233933j:plain スペースグレーを選択 f:id:k6i:20181224233850j:plain

Touch ID 最高すぎた

Windows で git push したら何も表示されずハングしたとき

git プロトコルを使用した場合にタイトルの問題が発生する

https の場合は問題なし

対策

git config --global sendpack.sideband false

を設定する

参考

https://github.com/git-for-windows/git/issues/907

http://d.hatena.ne.jp/torutk/20120915/p1

Docker のコンテナで動くOSがよく分からなかった

よく分からなくなったこと

  • Dockerfile で Alpine Linux が登場して、コンテナの OS だよって言われてよく分からなくなった
  • コンテナで OS が動いているの?ってなった

分かったこと

自分が理解できていなかったことで大事なこと。

  1. Docker は Linux でしか使えない(Windowsコンテナ―とかは無視)
  2. だから、 WindowsMac(Unix) では直接は使えない
  3. Linux ディストリビューションが違っても実行ファイルは動作する

一つずつ説明していきます。

1. Docker は Linux でしか使えない(Windowsコンテナ―とかは無視)

まず

大前提として、Docker は Linux で成り立っている。

大前提として、Docker は Linux で成り立っている。

大前提として、Docker は Linux で成り立っている。

ここ重要。

2. だから、 WindowsMac(Unix) では直接は使えない

Linux なので当然 Widows や Mac(Unix) では使えないため、Docker for Windows や Docker for Mac が用意されている。

今回は Windows で説明するが、Docker for Windows をインストールして Docker を起動すると、仮想環境で Linux が動作している。

Settings に Disk image location があるが、このイメージが Hyper-V 上で動作している。

f:id:k6i:20181105191624p:plain

Hyper-V を確認すると MobyLinuxVM というイメージが動作していることがわかる。

f:id:k6i:20181105191634p:plain

3. Linux ディストリビューションが違っても実行ファイルは動作する

参考サイトより引用

DockerはLinuxの同じCPUならば、違うディストリビューションでもマシン語で書かれている実行ファイルのフォーマットが同じ形式であり、適切な依存ライブラリを渡してやれば動くでしょという思想です。
OSの名前はついているが、ベースイメージはOS的役割をするのではなく、そのOSっぽい環境を整える(ディレクトリ構成をそのOSっぽくするなど)のが役割

もうここら辺の引用がほぼ答え。

こんなイメージかなー f:id:k6i:20181105194515p:plain

参考

Docker for Windowsのインストール後の設定項目 - Qiita

Docker - Dockerのコンテナ内で使われるOSについて|teratail

Docker - DockerのベースイメージがホストOSと違ってもいいのはなぜ?|teratail

Ubuntu - このようなことはDockerで可能でしょうか?|teratail