kusanagi-deploy-client
デプロイ元のKUSANAGI環境で実行するコマンドです。対象はkusanagi targetで表示されるプロファイル名です。
init
デプロイ元のKUSANAGI環境の初期設定を行います。
パラメータ
なし
使用例
# kusanagi-deploy-client init Enter the remote host to deploy.(ip or hostname) 192.168.34.21 # デプロイ先のIPアドレスまたはホスト名を入力します。 Re-type remote host to deploy. 192.168.34.21 # 確認の為に再入力します。 INFO: KUSANAGI environment on this client is ready to deploy your application. INFO: If you check the status, Please run 'kusanagi-deploy-client status' command.
status
デプロイ元のKUSANAGI環境における現在の設定を確認します。
パラメータ
なし
使用例
# kusanagi-deploy-client status Configuration file is /root/kusanagi-deploy/client.d/web1.tokyo.conf INFO: KUSANAGI_DEPLOYED_HOST=192.168.34.21 INFO: KUSANAGI_DEPLOYED_SSHD_PORT=22 INFO: KUSANAGI_DEPLOY_SRC_DIR=/home/kusanagi/web1/DocumentRoot INFO: authentication key pair exists. If you do not add /root/.ssh/kusanagi-deploy-web1.pem.pub to the remote root user's ~/.ssh/authorized_keys. If the remote server permit to login as root, you can use the following commands. e.g.) $ ssh-copy-id -f -i /root/.ssh/kusanagi-deploy-web1.pem.pub root@192.168.34.21 or $ ssh-copy-id -f -o "IdentityFile ${Identity file to login as root}" -i /root/.ssh/kusanagi-deploy-web1.pem.pub root@192.168.34.21 or $ cat /root/.ssh/kusanagi-deploy-web1.pem.pub | ssh root@192.168.34.21'cat >> .ssh/authorized_keys'
上記の場合、下記の情報が設定されていることを意味しています。
- デプロイ先のKUSANAGI環境のIPアドレスが192.168.34.21
- デプロイ先のKUSANAGI環境のSSHDのポート番号は22
- デプロイ元のKUSANAGI環境のディレクトリが/home/kusanagi/web1/DocumentRoot
- キーペアは既に生成されている状態
キーペアのうち、公開鍵がデプロイ先のKUSANAGI環境の/root/.ssh/authorized_keysに追加されていない場合は追加します。
上記の場合、/root/.ssh/kusanagi-deploy-web1.pem.pubという公開鍵が生成されているので、これをデプロイ先のサーバの/root/.ssh/authorized_keysに任意の方法で追加します。
e.g.)ではサンプルとしていくつかの方法を表示しています。
なお、デプロイ先のIPアドレスなど一部の設定情報は/root/kusanagi-deploy/client.d/プロファイル名.confを編集することで変更可能です。
pull [--all|--no-shared]
デプロイ先のKUSANAGI環境から現在のソースコードを取得します。
パラメータ
--all | 全てを取得します。パラメータ省略時のデフォルトです。 |
---|---|
--no-shared | デプロイ先のKUSANAGI環境のsharedディレクトリに含まれているファイルを除外して取得します。 |
使用例
# kusanagi-deploy-client pull NOTICE:Source directory on deployment target (192.168.34.21) is /home/kusanagi/web2/DocumentRoot [Y/n] y INFO: There is enough disk space for the task. receiving incremental file list created directory /home/kusanagi/web1/20180723-191328 ./ .htaccess index.php license.txt # 省略 wp-includes/widgets/class-wp-widget-media-video.php wp-includes/widgets/class-wp-widget-media.php wp-includes/widgets/class-wp-widget-meta.php wp-includes/widgets/class-wp-widget-pages.php wp-includes/widgets/class-wp-widget-recent-comments.php wp-includes/widgets/class-wp-widget-recent-posts.php wp-includes/widgets/class-wp-widget-rss.php wp-includes/widgets/class-wp-widget-search.php wp-includes/widgets/class-wp-widget-tag-cloud.php wp-includes/widgets/class-wp-widget-text.php Number of files: 1,764 (reg: 1,604, dir: 160) Number of created files: 1,764 (reg: 1,604, dir: 160) Number of deleted files: 0 Number of regular files transferred: 1,604 Total file size: 31,697,532 bytes Total transferred file size: 31,697,532 bytes Literal data: 31,697,532 bytes Matched data: 0 bytes File list size: 24,735 File list generation time: 0.003 seconds File list transfer time: 0.000 seconds Total bytes sent: 31,359 Total bytes received: 10,806,502 sent 31,359 bytes received 10,806,502 bytes 4,335,144.40 bytes/sec total size is 31,697,532 speedup is 2.92 INFO: Download to /home/kusanagi/web1/20180723-191040.
上記の場合、/home/kusanagi/web1/20180723-191040にデプロイ先のKUSANAGI環境のソースコードがダウンロードされます。
なお、ダウンロード後のファイルパス上のファイルシステム容量が90%を超えると見積もられる場合、下記のメッセージを出し処理を中断します。
# kusanagi-deploy-client pull NOTICE:Source directory on deployment target (172.16.125.27) is /home/kusanagi/web1/DocumentRoot [Y/n] y ERROR: Estimation of disk size on the target host is 97% after a task is completed. Please make space available more than 10% of disk capacity.
diff
デプロイ元のKUSANAGI環境とデプロイ先のKUSANAGI環境におけるファイルの差分を確認します。
パラメータ
なし
使用例
# kusanagi-deploy-client diff
sending incremental file list
./
wp-config.php
wp-content/
wp-content/replace-class.php
wp-content/themes/twentyseventeen/
wp-content/themes/twentyseventeen/search.php
wp-content/uploads/
wp-content/uploads/.htaccess
sent 68,294 bytes received 214 bytes 137,016.00 bytes/sec
total size is 30,863,710 speedup is 450.51 (DRY RUN)
INFO: If you want to compare files like 'git diff' you can use the following commands.
$ kusanagi-deploy-client pull
$ diff -ru /home/kusanagi/web1/DocumentRoot /home/kusanagi/web1/%Y%m%d-%H%M%S
kusanagi-deploy-client diffでは差分ファイルのリストのみの表示なので、git diffのようなファイル内差分表示を行いたい場合は、上記で案内されているようにkusanagi-deploy-client pullコマンドとdiffコマンドを組み合わせて実現可能です。
deploy [--dry-run]
デプロイ元のKUSANAGI環境からデプロイ先のKUSANAGI環境へのデプロイを行います。
パラメータ
--dry-run | 実際にデプロイを行わずにシミュレーションします。 |
---|
使用例
# kusanagi-deploy-client deploy NOTICE:Source directory is /home/kusanagi/web1/DocumentRoot. NOTICE:Destination directory on deployment target (192.168.34.21) is /home/kusanagi/web2/releases [Y/n] y INFO: There is enough disk space for the task. sending incremental file list created directory /home/kusanagi/web2/releases/20180723-200146 ./ .htaccess index.php # 省略 Number of files: 1,746 (reg: 1,589, dir: 157) Number of created files: 1,746 (reg: 1,589, dir: 157) Number of deleted files: 0 Number of regular files transferred: 1,589 Total file size: 30,858,929 bytes Total transferred file size: 30,858,929 bytes Literal data: 30,858,929 bytes Matched data: 0 bytes File list size: 0 File list generation time: 0.001 seconds File list transfer time: 0.000 seconds Total bytes sent: 9,973,519 Total bytes received: 31,129 sent 9,973,519 bytes received 31,129 bytes 4,001,859.20 bytes/sec total size is 30,858,929 speedup is 3.08 php7 を使用します 完了しました。 INFO: Deployment Success.
なお、デプロイ後のデプロイ先KUSANAGI環境のファイルパス上のファイルシステム容量が90%を超えると見積もられる場合、下記のメッセージを出し処理を中断します。
# kusanagi-deploy-client deploy
NOTICE:Source directory is /home/kusanagi/web1/DocumentRoot.
NOTICE:Destination directory on deployment target (192.168.34.21) is /home/kusanagi/web2/releases [Y/n]
y
ERROR: Estimation of disk size on the target host is 95% after a task is completed.
Please make space available more than 10% of disk capacity.
kusanagi-deploy-server
デプロイ先のKUSANAGI環境で実行するコマンドです。対象はkusanagi targetで表示されるプロファイル名です。
init
デプロイ先のKUSANAGI環境の初期設定を行います。
パラメータ
なし
使用例
# kusanagi-deploy-server init
INFO: created /home/kusanagi/web1/releases
INFO: created /home/kusanagi/web1/shared
INFO: created /root/kusanagi-deploy/server.d/web1.conf
INFO: KUSANAGI environment on this server is ready to deploy your application.
status
デプロイ先のKUSANAGI環境のステータスを表示します。
パラメータ
なし
使用例
# kusanagi-deploy-server status
INFO: Configuration file is /root/kusanagi-deploy/server.d/web1.conf
INFO: KUSANAGI_DEPLOY_PROFILE=web1
INFO: KUSANAGI_DEPLOY_RELEASE_DIR=/home/kusanagi/web1/releases
INFO: KUSANAGI_DEPLOY_SHARED_DIR=/home/kusanagi/web1/shared
INFO: KUSANAGI_DEPLOY_APP=WordPress
INFO: KUSANAGI_DEPLOY_ROOT=/home/kusanagi/web1/DocumentRoot
INFO: DEPLOY_SHARED=wp-content/uploads wp-config.php wp-content/replace-class.php wp-content/advanced-cache.php
- KUSANAGI_DEPLOY_RELEASE_DIRはファイルの実体が配備されたディレクトリです。
- KUSANAGI_DEPLOY_SHARED_DIRはデプロイの影響を受けないファイルが置かれるディレクトリです。
- KUSANAGI_DEPLOY_ROOTはデプロイ先の実体を指すディレクトリです。
- DEPLOY_SHAREDはKUSANAGI_DEPLOY_ROOTからの相対パスでKUSANAGI_DEPLOY_SHARED_DIRに格納するファイルやディレクトリを意味します。
/root/kusanagi-deploy/server.d/プロファイル名.confを編集することで変更できますが、kusanagi-deploy-server provision後は編集しないことが推奨されます
provision
デプロイ先のKUSANAGI環境のプロビジョニングを行います。
パラメータ
なし
使用例
# kusanagi-deploy-server provision Current deployment profile is 'web1' [Y/n] y INFO: created a symbolic link /home/kusanagi/web1/DocumentRoot/wp-content/uploads that points to /home/kusanagi/web1/shared/wp-content/uploads. INFO: created a symbolic link /home/kusanagi/web1/DocumentRoot/wp-content/replace-class.php that points to /home/kusanagi/web1/shared/wp-content/replace-class.php. INFO: created a symbolic link /home/kusanagi/web1/DocumentRoot/wp-content/advanced-cache.php that points to /home/kusanagi/web1/shared/wp-content/advanced-cache.php. php7 を使用します 完了しました。 # ll INFO: Provisioning has completed. INFO: /home/kusanagi/web1/DocumentRoot points to /home/kusanagi/web1/releases/20180723-200136. lrwxrwxrwx. 1 root root 44 7月 23 21:46 DocumentRoot -> /home/kusanagi/web2/releases/20180723-200136 drwxr-xr-x. 4 kusanagi kusanagi 32 7月 9 16:44 log drwxr-xr-x. 9 kusanagi kusanagi 167 7月 23 21:43 releases drwxr-xr-x. 2 kusanagi kusanagi 34 5月 2 23:17 settings drwxr-xr-x. 3 kusanagi kusanagi 45 7月 20 18:41 shared drwxr-xr-x. 2 kusanagi kusanagi 30 7月 9 16:44 tools # ll DocumentRoot/wp-content/ lrwxrwxrwx. 1 root root 56 7月 23 21:46 advanced-cache.php -> /home/kusanagi/web2/shared/wp-content/advanced-cache.php -rw-r--r--. 1 kusanagi kusanagi 28 1月 9 2012 index.php drwxrwxrwx. 4 kusanagi kusanagi 215 4月 4 18:43 languages drwxr-xr-x. 3 kusanagi kusanagi 83 5月 2 23:17 mu-plugins drwxrwxrwx. 4 kusanagi kusanagi 81 4月 4 18:43 plugins drwxr-xr-x. 5 kusanagi kusanagi 88 4月 4 18:43 themes drwxr-xr-x. 2 httpd www 168 5月 15 14:32 translate-accelerator lrwxrwxrwx. 1 root root 45 7月 23 21:46 uploads -> /home/kusanagi/web2/shared/wp-content/uploads
rollback [release directory]
デプロイ先のKUSANAGI環境の状態を直前のデプロイ状態へと変更します。
パラメータ
リリースディレクトリ名 | ロールバックしたい任意のディレクトリ名を指定します。 省略した場合は直前のリリースディレクトリ名が選択されます。 |
---|
使用例
# ll # 現在の状態を確認 lrwxrwxrwx. 1 root root 44 7月 23 21:32 DocumentRoot -> /home/kusanagi/web2/releases/20180723-214344 drwxr-xr-x. 4 kusanagi kusanagi 32 7月 9 16:44 log drwxr-xr-x. 9 kusanagi kusanagi 167 7月 23 21:32 releases drwxr-xr-x. 2 kusanagi kusanagi 34 5月 2 23:17 settings drwxr-xr-x. 3 kusanagi kusanagi 45 7月 20 18:41 shared drwxr-xr-x. 2 kusanagi kusanagi 30 7月 9 16:44 tools # ls -1 releases/ | sort -r 20180723-214344 20180723-212819 20180723-200146 20180723-200136 20180720-201909 20180719-184008 20180719-171730 # kusanagi-deploy-server rollback NOTICE:New release directory is /home/kusanagi/web2/releases/20180723-212819 [Y/n]? y php7 を使用します 完了しました。 INFO: rollback to 20180723-212819. # ll # ロールバックしているか確認 合計 0 lrwxrwxrwx. 1 root root 44 7月 23 21:35 DocumentRoot -> /home/kusanagi/web2/releases/20180723-212819 drwxr-xr-x. 4 kusanagi kusanagi 32 7月 9 16:44 log drwxr-xr-x. 8 kusanagi kusanagi 144 7月 23 21:35 releases drwxr-xr-x. 2 kusanagi kusanagi 34 5月 2 23:17 settings drwxr-xr-x. 3 kusanagi kusanagi 45 7月 20 18:41 shared drwxr-xr-x. 2 kusanagi kusanagi 30 7月 9 16:44 tools # ls -1 releases/ | sort -r 20180723-214344 20180723-212819 20180723-200146 20180723-200136 20180720-201909 20180719-184008 20180719-171730 # kusanagi-deploy-server rollback 20180723-200136 NOTICE:New release directory is /home/kusanagi/web2/releases/20180723-200136 [Y/n]? y php7 を使用します 完了しました。 INFO: rollback to 20180723-200136. # ll # ロールバックしているか確認 合計 0 lrwxrwxrwx. 1 root root 44 7月 23 21:37 DocumentRoot -> /home/kusanagi/web2/releases/20180723-200136 drwxr-xr-x. 4 kusanagi kusanagi 32 7月 9 16:44 log drwxr-xr-x. 8 kusanagi kusanagi 144 7月 23 21:35 releases drwxr-xr-x. 2 kusanagi kusanagi 34 5月 2 23:17 settings drwxr-xr-x. 3 kusanagi kusanagi 45 7月 20 18:41 shared drwxr-xr-x. 2 kusanagi kusanagi 30 7月 9 16:44 tools # ls -1 releases/ | sort -r 20180723-214344 20180723-212819 20180723-200146 20180723-200136 20180720-201909 20180719-184008 20180719-171730