よかったですね
Serverlessでstageごとに別のRoleをつかう
Serverlessでstageごとに別のRoleをつかってデプロイしてあげたい。
serverless.yml
service: lambda-test provider: name: aws runtime: python3.8 region: ap-northeast-1 profile: ${self:custom.profiles.${opt:stage,self:provider.stage}} stage: ${opt:stage} functions: hikisuu: handler: handler.lambda_handler custom: pythonRequirements: dockerizePip: true profiles: dev: dev_role prod: prod_role
こうデプロイする
sls deploy --stage dev
sls deploy したときに~/.aws/configを見にいってくれない
sls deploy したときに~/.aws/configを見にいってくれないようだった。
解決策は以下の変数を宣言してあげる。
export AWS_SDK_LOAD_CONFIG=1
以下を参考にした。 https://github.com/serverless/serverless/issues/3833#issuecomment-513914807
追記
この記事を見返してて、いちいちコマンド入力するのめんどくさいなぁとおもった。
DockerでAnsibleをうごかす - かべぎわブログ
docker-composeならこんなかんじ。
version: "3.9" services: local_ansible: build: context: . dockerfile: Dockerfile volumes: - ./playbooks/:/work:z
docker-compose run local_ansible ansible-playbook playbook.yml
docker volumeでPermission deniedが発生したとき
dockerでボリュームマウントしたときにPermissionDeniedとなってマウントしたものにアクセスできない事象が発生した。
$ docker run -v /home/vagrant/docker_ansible/playbooks/:/work local_ansible ls ls: cannot open directory '.': Permission denied
なんやろなーと思っていたらSELinuxが悪さをしている。
じゃあsetenforce 0
しましょうっていうのもちょっと微妙だなー安直すぎるなーみたいなときにしらべていた解決法。
解決法
このとおり。
:z
をつけてあげる
コンテナでデータを管理する — Docker-docs-ja 1.9.0b ドキュメント
たとえばこんなかんじ。
$ docker run -v /home/vagrant/docker_ansible/playbooks/:/work:z local_ansible ls
イップマンを一気見する
おもしろかったですね
DockerでAnsibleをうごかす
ローカルで適当にうごかすかーみたいなときによくやる構成。
ディレクトリ構成
. ├── Dockerfile └── playbooks └── playbook.yml
Dockerfile
FROM python:3.8 RUN pip install pip --upgrade RUN pip install ansible WORKDIR /work
ビルドして
docker build . -t local_ansible
マウントして実行
docker run -v /Users/kabegiwa/git/docker_ansible/playbooks/:/work local_ansible ansible-playbook playbook.yml
sls deploy時にaws profileを指定する
こんなかんじ
sls deploy --aws-profile deploy_role
my new gear...
gpd win max
そういえば
今年は記憶をなくしていないような気がする
カラテキッド
むかしのやつ
よかった
lofi
さいきんはまっている
youtubeでながしながら仕事をする
Winny
文体が軽いので3,4時間くらいでよめる
Winny 天才プログラマー金子勇との7年半 (NextPublishing)
- 作者:壇 俊光
- 発売日: 2020/04/24
- メディア: Kindle版
ansible-vaultで秘密鍵を暗号化する
秘密鍵も含めてGitHubにプッシュしたかった。
プライベートリポジトリとはいえそのままプッシュするのはためらわれたのでansible-vaultで暗号化してみる。
秘密鍵の暗号化
ansible-vault
で秘密鍵を暗号化
パスワードは適当に入力
ansible-vault .ssh/private_key
ここでprivate-keyをcatすると暗号化されているのがわかるはず。
そしてパスワードはこうする
echo 'password' > ./password.yml
playbook
playbookの最初でこうする
--- - hosts: localhost gather_facts: false vars: src_key: /work/.ssh/private_key dest_key: /work/.ssh/decrypted_private_key tasks: - file: dest: "{{ dest_key | dirname }}" mode: 0700 state: directory - copy: src: "{{ src_key }}" dest: "{{ dest_key }}" mode: 0600 - hosts: remote-server tasks: ~~~省略~~~
インベントリ
インベントリで復号化後のsshキーを指定しておく
all: children: remote-server: hosts: example.com: vars: ansible_user: ec2-user ansible_ssh_private_key_file: /work/.ssh/decrypted_private_key
環境変数
パスワードをいちいち聞かれたくないのでパスワードファイルの場所を設定しておく。
パスワードファイルは.gitignoreとかでpushしないようにしておく。
ANSIBLE_VAULT_PASSWORD_FILE=/work/.ssh/password.yml
おわりに
おわり
誰が音楽をタダにした?
これ面白かったす
mp3開発からP2Pとかtorrentまで
誰が音楽をタダにした? 巨大産業をぶっ潰した男たち (早川書房)
- 作者:スティーヴン ウィット
- 発売日: 2016/09/30
- メディア: Kindle版