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