terraform/piculet/roadworker他ツール導入
AWSのリソース管理ツールとして以下の通り便利ツールを導入する際のメモを記載する。
Terraform
1. 概要
・インフラ構成管理ツール
▼参考URL
https://qiita.com/Chanmoro/items/55bf0da3aaf37dc26f73
2. インストール手順
・インストール手順
https://qiita.com/acron/items/d47a634852036ed3ce04
※ docker利用
3. vscode拡張設定
・Terraform mauve.terraform
▼参考URL
https://qiita.com/pypypyo14/items/5520f3defa55119f3a1a
4. メモ
・destroyはterraform.tfstateを参照しその対象を全て削除する。
- 選択して削除する場合は、-targetで指定する。
- 参考URL:http://reboooot.net/post/what-is-terraform/
・direnvを利用する際は、環境変数から読むためtfvarsファイルにアクセスキー情報は記載しなくても良い。
- 参考URL:https://dev.classmethod.jp/cloud/terraform-getting-started-with-aws/#toc-4
・ALB443リスナー追加資料
- https://tech.enechange.co.jp/entry/2018/08/23/094300
- http://blog.serverworks.co.jp/tech/2019/02/07/post-68849/
・v0.11の tags は ”=”は不要だったが、v0.12からは”=”が必要となった。
・aws_route_tableでapply時に、宛先ルートのlocalを明示的に指定していたためエラーが発生。localは暗黙的に作成してくれる旨、公式docsに書かれていた。
- https://www.terraform.io/docs/providers/aws/r/route_table.html
[1m[31mError: [0m[0m[1mError creating route: MissingParameter: The request must contain exactly one of gatewayId, natGatewayId, networkInterfaceId, vpcPeeringConnectionId, egressOnlyInternetGatewayId, transitGatewayId or instanceId status code: 400, request id: 1d7e2111-83b8-4e95-a94f-20c973d9f372[0m
piculet
1. 概要
・セキュリティグループの設定をRuby DSLで管理できるコマンドラインツール
▼参考URL
https://dev.classmethod.jp/cloud/migrate-security-group-settings-by-piculet/
2. rbenv、rubyインストール
・インストール手順
https://qiita.com/nishina555/items/63ebd4a508a09c481150
3. Piculetインストール
・インストール手順
https://dev.classmethod.jp/cloud/migrate-security-group-settings-by-piculet/
4. エラー
・Piculetインストール時に「ERROR: While executing gem ... (Gem::FilePermissionError)」が発生したので、rbenvでrubyを管理する。
gem install piculet --no-ri --no-rdocでエラー
- [--no-ri --no-rdoc] はドキュメントをインストールしないオプション。これがあるとインストール時間が倍になるとか。。。
http://blog.ruedap.com/2011/05/14/ruby-gem-install-no-ri-no-rdoc-gemrc
- [--no-ri --no-rdoc]は-Nのオプションと一緒
https://qiita.com/noanoa07/items/dd88845aa5d43e5d1e4a
$ gem install piculet --no-ri --no-rdoc ERROR: While executing gem ... (OptionParser::InvalidOption) invalid option: --no-ri
5. コマンド例
SGをアウトプットする。
$ piculet -e -r ap-northeast-1 > Groupfile
SGをVPCごとにアウトプットする。
$ piculet -e -o Groupfile -r ap-northeast-1 --split
SGをVPC IDを指定してアウトプットする。
$ piculet -e -o Testfile -r ap-northeast-1 --ec2s vpc-XXXXXXXX
SGをグループ名を指定してアウトプットする。
$ piculet -e -r ap-northeast-1 -n "Group Name" > Groupfile
Groupfileの内容を反映する。(実行計画)
$ piculet -a --dry-run -r ap-northeast-1
Testfileファイルを指定して内容を反映する。(実行計画)
$ piculet -a --dry-run -r ap-northeast-1 -f Testfile
Groupfileの内容を反映する。(適用)
$ piculet -a -r ap-northeast-1
▼参考URL
- https://qiita.com/makaaso/items/756ca8d76cd02b117d14
- https://dev.classmethod.jp/cloud/migrate-security-group-settings-by-piculet/
roadworker
1. 概要
Route53(DNS)のレコードをChefやPuppetのようにコードで管理できるもの ▼参考URL https://dev.classmethod.jp/cloud/aws/route53-as-code-roadworker/
2. roadworkerインストール
$ gem install roadworker -N
▼参考URL https://qiita.com/tomy103rider/items/71303c837e8aa060a330
3. コマンド例
・SGをアウトプットする。
$ roadwork -e -o Routefile
・SGをドメインごとにアウトプットする。
$ roadwork -e -o Routefile --split
・レコードを反映させる。(実行計画)
$ roadwork -a --dry-run -f Routefile
・Routefileの内容を反映する。(適用)
$ piculet -a -f Routefile
▼参考URL
- https://kakakakakku.hatenablog.com/entry/2016/12/03/211432
- https://qiita.com/enomotodev/items/7ed5ee840a974605ca24
direnv
1. 概要
2. メモ
・インストール手順
https://qiita.com/toshichanapp/items/c5d76144bf6938207f4e
※注意
このままではターミナル再起動時に.bashrcが読み込まれず、都度source ~/.bashrc をしないといけない。
上記手順でMac OSの.bashrcに追記しても.bash_profileで.bashrcを読み込む設定が入ってないので、下記を参考にターミナル再読み込み時に反映されるようにする。
▼参考URL
http://blog.ruedap.com/2010/09/13/mac-bash-bashrc
Git
1. 初期設定
・SSH設定、.ssh/config
https://backlog.com/ja/git-tutorial/reference/ssh/
・.gitconfig設定
[[TD_AISINAW] git clone 初期設定]
https://www.kimoton.com/entry/2018/07/26/091619