メモ > サーバ > 各論: 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
デプロイを実行すると
The command "sudo systemctl restart php-fpm.service" failed.
のエラーになる
sudoにパスワードが必要だから?以下で解除しようとしたが反映されず?
develop:
hostname: 192.168.33.11
user: deployer
deploy_path: /var/www/deployer
branch: develop
# 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 … コメント解除