戻る
■デプロイ用ユーザでのデプロイ
※検証中だがいったん導入見送り中 Ansibleと組み合わせたときにユーザの作成が大変になるなら、vagrantやec2-userでのデプロイの方がいいか vagrantユーザにはパスワードが設定されているが、「sudo su -」はパスワードなしで実行できるしwheelグループにも属していない 特殊なユーザだからか。要勉強 デプロイ用ユーザーの在り方を考える | // sakura note https://saku.io/use-dedicated-user-for-deployment/ ■ユーザの作成 デプロイ先でユーザを作成 # useradd deployer # passwd deployer abcd1234 デプロイ元からパスワードでのアクセスを確認 $ ssh deployer@192.168.33.11 デプロイ先で鍵を作成 $ sudo su - deployer $ ssh-keygen -t rsa $ ll /home/deployer/.ssh/ $ vi /home/deployer/.ssh/id_rsa $ vi /home/deployer/.ssh/id_rsa.pub $ cp /home/deployer/.ssh/id_rsa.pub /home/deployer/.ssh/authorized_keys $ chown deployer. /home/deployer/.ssh/authorized_keys $ chmod 0600 /home/deployer/.ssh/authorized_keys デプロイ元に鍵を作成 $ mkdir /home/vagrant/deployer $ vi /home/vagrant/deployer/id_rsa $ chmod 0600 /home/vagrant/deployer/id_rsa デプロイ元からデプロイ先に鍵で接続 $ ssh -i /home/vagrant/deployer/id_rsa deployer@192.168.33.11 デプロイ元からDeployerで接続 $ cd $ mkdir deploy_develop $ cd deploy_develop $ vi file.yml
develop: hostname: 192.168.33.11 user: deployer identity_file: /home/vagrant/deployer/id_rsa deploy_path: /var/www
何故か鍵では接続できないのでパスワードで接続 $ vi file.yml
develop: hostname: 192.168.33.11 user: deployer pass: abcd1234 deploy_path: /home/deployer
何故かパスワードでも接続できていない? $ vi file.yml
develop: hostname: 192.168.33.11 user: deployer deploy_path: /home/deployer
この状態にして、接続時にパスワードを入力すれば接続できる 要検証 $ vi deploy.php
<?php namespace Deployer; inventory('file.yml'); task('test', function () { run('cd ' . get('deploy_path')); writeln('hostname: ' . run('hostname')); writeln('id: ' . run('id')); writeln('pwd: ' . run('pwd')); writeln("ls:\n" . run('ls')); });
$ dep test develop ■デプロイ先でパーミッションの調整 # usermod -G nginx deployer # mkdir /var/www/deployer # chown nginx. /var/www/deployer # chmod 0775 /var/www/deployer # chmod g+s /var/www/deployer $ sudo su - deployer ここにデプロイさせるか /home/deployer/.ssh/id_rsa.pub をGitサービスに登録しておく $ vi file.yml
develop: hostname: 192.168.33.11 user: deployer deploy_path: /var/www/deployer branch: develop
デプロイを実行すると The command "sudo systemctl restart php-fpm.service" failed. のエラーになる sudoにパスワードが必要だから?以下で解除しようとしたが反映されず? # usermod -G wheel deployer # vi /etc/pam.d/su
#auth required pam_wheel.so use_uid auth required pam_wheel.so use_uid … コメント解除
# visudo
# %wheel ALL=(ALL) ALL %wheel ALL=(ALL) ALL … コメント解除