Memo

メモ > サーバ > 各論: Deployer > デプロイ用ユーザでのデプロイ

■デプロイ用ユーザでのデプロイ
※検証中だがいったん導入見送り中 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 … コメント解除

Advertisement