.gitkeepファイルをすべてのディレクトリに作成する
Gitでコードを管理する場合、空ディレクトリが存在すると、管理対象になりません。
こんなときは、find コマンドの -exec オプションを使って、.gitkeepファイルを
全てのディレクトリにとりあえず作ってしまうのが楽です。
たとえば、Chefで新しいcookbookを作ったとき。
$ knife cookbook create mycookbook -o . WARNING: No knife configuration file found ** Creating cookbook mycookbook ** Creating README for cookbook: mycookbook ** Creating CHANGELOG for cookbook: mycookbook ** Creating metadata for cookbook: mycookbook $ ls -laR mycookbook/ mycookbook/: 合計 52 drwxr-xr-x. 10 myuser myuser 4096 3月 15 15:28 2015 . drwxr-xr-x. 3 myuser myuser 4096 3月 15 15:28 2015 .. -rw-r--r--. 1 myuser myuser 467 3月 15 15:28 2015 CHANGELOG.md -rw-r--r--. 1 myuser myuser 1480 3月 15 15:28 2015 README.md drwxr-xr-x. 2 myuser myuser 4096 3月 15 15:28 2015 attributes drwxr-xr-x. 2 myuser myuser 4096 3月 15 15:28 2015 definitions drwxr-xr-x. 3 myuser myuser 4096 3月 15 15:28 2015 files drwxr-xr-x. 2 myuser myuser 4096 3月 15 15:28 2015 libraries -rw-r--r--. 1 myuser myuser 284 3月 15 15:28 2015 metadata.rb drwxr-xr-x. 2 myuser myuser 4096 3月 15 15:28 2015 providers drwxr-xr-x. 2 myuser myuser 4096 3月 15 15:28 2015 recipes drwxr-xr-x. 2 myuser myuser 4096 3月 15 15:28 2015 resources drwxr-xr-x. 3 myuser myuser 4096 3月 15 15:28 2015 templates mycookbook/attributes: 合計 8 drwxr-xr-x. 2 myuser myuser 4096 3月 15 15:28 2015 . drwxr-xr-x. 10 myuser myuser 4096 3月 15 15:28 2015 .. mycookbook/definitions: 合計 8 drwxr-xr-x. 2 myuser myuser 4096 3月 15 15:28 2015 . drwxr-xr-x. 10 myuser myuser 4096 3月 15 15:28 2015 .. mycookbook/files: 合計 12 drwxr-xr-x. 3 myuser myuser 4096 3月 15 15:28 2015 . drwxr-xr-x. 10 myuser myuser 4096 3月 15 15:28 2015 .. drwxr-xr-x. 2 myuser myuser 4096 3月 15 15:28 2015 default mycookbook/files/default: 合計 8 drwxr-xr-x. 2 myuser myuser 4096 3月 15 15:28 2015 . drwxr-xr-x. 3 myuser myuser 4096 3月 15 15:28 2015 .. mycookbook/libraries: 合計 8 drwxr-xr-x. 2 myuser myuser 4096 3月 15 15:28 2015 . drwxr-xr-x. 10 myuser myuser 4096 3月 15 15:28 2015 .. mycookbook/providers: 合計 8 drwxr-xr-x. 2 myuser myuser 4096 3月 15 15:28 2015 . drwxr-xr-x. 10 myuser myuser 4096 3月 15 15:28 2015 .. mycookbook/recipes: 合計 12 drwxr-xr-x. 2 myuser myuser 4096 3月 15 15:28 2015 . drwxr-xr-x. 10 myuser myuser 4096 3月 15 15:28 2015 .. -rw-r--r--. 1 myuser myuser 136 3月 15 15:28 2015 default.rb mycookbook/resources: 合計 8 drwxr-xr-x. 2 myuser myuser 4096 3月 15 15:28 2015 . drwxr-xr-x. 10 myuser myuser 4096 3月 15 15:28 2015 .. mycookbook/templates: 合計 12 drwxr-xr-x. 3 myuser myuser 4096 3月 15 15:28 2015 . drwxr-xr-x. 10 myuser myuser 4096 3月 15 15:28 2015 .. drwxr-xr-x. 2 myuser myuser 4096 3月 15 15:28 2015 default mycookbook/templates/default: 合計 8 drwxr-xr-x. 2 myuser myuser 4096 3月 15 15:28 2015 . drwxr-xr-x. 3 myuser myuser 4096 3月 15 15:28 2015 ..
こんな感じでfindコマンドを使うと、楽です。
$ find mycookbook -type d -exec touch {}/.gitkeep \; $ ls -laR mycookbook/ mycookbook/: 合計 52 drwxr-xr-x. 10 myuser myuser 4096 3月 15 15:35 2015 . drwxr-xr-x. 3 myuser myuser 4096 3月 15 15:28 2015 .. -rw-r--r--. 1 myuser myuser 0 3月 15 15:35 2015 .gitkeep -rw-r--r--. 1 myuser myuser 467 3月 15 15:28 2015 CHANGELOG.md -rw-r--r--. 1 myuser myuser 1480 3月 15 15:28 2015 README.md drwxr-xr-x. 2 myuser myuser 4096 3月 15 15:35 2015 attributes drwxr-xr-x. 2 myuser myuser 4096 3月 15 15:35 2015 definitions drwxr-xr-x. 3 myuser myuser 4096 3月 15 15:35 2015 files drwxr-xr-x. 2 myuser myuser 4096 3月 15 15:35 2015 libraries -rw-r--r--. 1 myuser myuser 284 3月 15 15:28 2015 metadata.rb drwxr-xr-x. 2 myuser myuser 4096 3月 15 15:35 2015 providers drwxr-xr-x. 2 myuser myuser 4096 3月 15 15:35 2015 recipes drwxr-xr-x. 2 myuser myuser 4096 3月 15 15:35 2015 resources drwxr-xr-x. 3 myuser myuser 4096 3月 15 15:35 2015 templates mycookbook/attributes: 合計 8 drwxr-xr-x. 2 myuser myuser 4096 3月 15 15:35 2015 . drwxr-xr-x. 10 myuser myuser 4096 3月 15 15:35 2015 .. -rw-r--r--. 1 myuser myuser 0 3月 15 15:35 2015 .gitkeep mycookbook/definitions: 合計 8 drwxr-xr-x. 2 myuser myuser 4096 3月 15 15:35 2015 . drwxr-xr-x. 10 myuser myuser 4096 3月 15 15:35 2015 .. -rw-r--r--. 1 myuser myuser 0 3月 15 15:35 2015 .gitkeep mycookbook/files: 合計 12 drwxr-xr-x. 3 myuser myuser 4096 3月 15 15:35 2015 . drwxr-xr-x. 10 myuser myuser 4096 3月 15 15:35 2015 .. -rw-r--r--. 1 myuser myuser 0 3月 15 15:35 2015 .gitkeep drwxr-xr-x. 2 myuser myuser 4096 3月 15 15:35 2015 default mycookbook/files/default: 合計 8 drwxr-xr-x. 2 myuser myuser 4096 3月 15 15:35 2015 . drwxr-xr-x. 3 myuser myuser 4096 3月 15 15:35 2015 .. -rw-r--r--. 1 myuser myuser 0 3月 15 15:35 2015 .gitkeep mycookbook/libraries: 合計 8 drwxr-xr-x. 2 myuser myuser 4096 3月 15 15:35 2015 . drwxr-xr-x. 10 myuser myuser 4096 3月 15 15:35 2015 .. -rw-r--r--. 1 myuser myuser 0 3月 15 15:35 2015 .gitkeep mycookbook/providers: 合計 8 drwxr-xr-x. 2 myuser myuser 4096 3月 15 15:35 2015 . drwxr-xr-x. 10 myuser myuser 4096 3月 15 15:35 2015 .. -rw-r--r--. 1 myuser myuser 0 3月 15 15:35 2015 .gitkeep mycookbook/recipes: 合計 12 drwxr-xr-x. 2 myuser myuser 4096 3月 15 15:35 2015 . drwxr-xr-x. 10 myuser myuser 4096 3月 15 15:35 2015 .. -rw-r--r--. 1 myuser myuser 0 3月 15 15:35 2015 .gitkeep -rw-r--r--. 1 myuser myuser 136 3月 15 15:28 2015 default.rb mycookbook/resources: 合計 8 drwxr-xr-x. 2 myuser myuser 4096 3月 15 15:35 2015 . drwxr-xr-x. 10 myuser myuser 4096 3月 15 15:35 2015 .. -rw-r--r--. 1 myuser myuser 0 3月 15 15:35 2015 .gitkeep mycookbook/templates: 合計 12 drwxr-xr-x. 3 myuser myuser 4096 3月 15 15:35 2015 . drwxr-xr-x. 10 myuser myuser 4096 3月 15 15:35 2015 .. -rw-r--r--. 1 myuser myuser 0 3月 15 15:35 2015 .gitkeep drwxr-xr-x. 2 myuser myuser 4096 3月 15 15:35 2015 default mycookbook/templates/default: 合計 8 drwxr-xr-x. 2 myuser myuser 4096 3月 15 15:35 2015 . drwxr-xr-x. 3 myuser myuser 4096 3月 15 15:35 2015 .. -rw-r--r--. 1 myuser myuser 0 3月 15 15:35 2015 .gitkeep
今日はこんなところで。
Oracle JDKをCLIで直接ダウンロードする方法
今日はTIPSをメモ。
Oracle JDKをLinuxで使う場合、直接RPMファイル等をダウンロードしたい場合があります。
wgetで「--no-check-certificate」「--no-cookies」「--header」オプションをつけるとうまくいく模様。
本日時点で最新版のJava SE Development Kit 8u40で試してみました。
$ wget --no-check-certificate --no-cookies --header "Cookie: oraclelicense=accept-securebackup-cookie" http://download.oracle.com/otn-pub/java/jdk/8u40-b26/jdk-8u40-linux-x64.rpm --2015-03-15 13:17:10-- http://download.oracle.com/otn-pub/java/jdk/8u40-b26/jdk-8u40-linux-x64.rpm download.oracle.com をDNSに問いあわせています... 42.127.234.73, 42.127.234.88 download.oracle.com|42.127.234.73|:80 に接続しています... 接続しました。 HTTP による接続要求を送信しました、応答を待っています... 302 Moved Temporarily 場所: https://edelivery.oracle.com/otn-pub/java/jdk/8u40-b26/jdk-8u40-linux-x64.rpm [続く] --2015-03-15 13:17:10-- https://edelivery.oracle.com/otn-pub/java/jdk/8u40-b26/jdk-8u40-linux-x64.rpm edelivery.oracle.com をDNSに問いあわせています... 23.37.150.140 edelivery.oracle.com|23.37.150.140|:443 に接続しています... 接続しました。 HTTP による接続要求を送信しました、応答を待っています... 302 Moved Temporarily 場所: http://download.oracle.com/otn-pub/java/jdk/8u40-b26/jdk-8u40-linux-x64.rpm?AuthParam=1426393151_62f6eb3f2a8ce42c742574ab302a7510 [続く] --2015-03-15 13:17:11-- http://download.oracle.com/otn-pub/java/jdk/8u40-b26/jdk-8u40-linux-x64.rpm?AuthParam=1426393151_62f6eb3f2a8ce42c742574ab302a7510 download.oracle.com:80 への接続を再利用します。 HTTP による接続要求を送信しました、応答を待っています... 200 OK 長さ: 152185219 (145M) [application/x-redhat-package-manager] `jdk-8u40-linux-x64.rpm' に保存中 100%[=============================================================================================================================================================================================================================>] 152,185,219 3.69M/s 時間 52s 2015-03-15 13:18:03 (2.81 MB/s) - `jdk-8u40-linux-x64.rpm' へ保存完了 [152185219/152185219]
うまくやれば、自動インストールができますね。
Chefに組み込んでみよう。
今日はこんなところで。
CloudFormationのParameterで正規表現を使う場合の話
CloudFormationでElastiCacheを設定してみる
TerraformでAWS環境の鍵ペアをインポートする
Terraformのドキュメントを見ていたら、AWS環境の鍵ペアをインポートできることが
分かり試してみました。
コンフィグは以下のとおりです。
provider "aws" { access_key = <your access key> secret_key = <your secret key> region = "ap-northeast-1" } resource "aws_key_pair" "terraform-key" { key_name = "terraform-key" public_key = <public_key> }
で、やってみます。
$ terraform plan Refreshing Terraform state prior to plan... The Terraform execution plan has been generated and is shown below. Resources are shown in alphabetical order for quick scanning. Green resources will be created (or destroyed and then created if an existing resource exists), yellow resources are being changed in-place, and red resources will be destroyed. Note: You didn't specify an "-out" parameter to save this plan, so when "apply" is called, Terraform can't guarantee this is what will execute. + aws_key_pair.terraform-key fingerprint: "" => "<computed>" key_name: "" => "terraform-key" public_key: "" => <public_key> $ terraform apply aws_key_pair.terraform-key: Creating... fingerprint: "" => "<computed>" key_name: "" => "terraform-key" public_key: "" => <public_key> aws_key_pair.terraform-key: Creation complete
無事、鍵を登録しました。
aws ec2 describe-key-pairs { "KeyPairs": [ { "KeyName": "terraform-key", "KeyFingerprint": "db:dc:28:2b:51:b5:47:45:b5:47:bd:7f:d4:d8:84:9a" } ] }
今日はこんなところで。