私はCapistranoを初めて使っていますが、私はカスタム展開のためにそれを稼働させることに成功しました。私は、MoodleをAWSと1つまたは複数の静的サーバーに自動スケーリンググループを持つクラスタに導入する必要があります。Capistrano 3:異なる展開フローを処理する方法
素晴らしいです!
がnamespace :moodle do
desc 'Save config.php from current release directory' task :'save-config'
on roles(:web) do
execute :sudo, :cp, shared_path.join('config.php'), release_path
execute :sudo, :chown, 'www-data-aulatp:www-data', release_path.join('config.php')
end
end
desc 'Copy config.php to release directory' task :'restore-config' do
on roles(:web) do
execute :sudo, :cp, shared_path.join('config.php'), release_path
execute :sudo, :chown, 'www-data-aulatp:www-data', release_path.join('config.php')
end
end
desc 'Enable maintenance mode on Moodle site' task :'enable-maintenance' do
on roles(:admin) do
execute :sudo, '-u', 'www-data-aulatp', '/usr/bin/php7.0', current_path.join('admin', 'cli', 'maintenance.php'), '--enable'
end
end
desc 'Disable maintenance mode on Moodle site' task :'disable-maintenance' do
on roles(:admin) do
execute :sudo, '-u', 'www-data-aulatp', '/usr/bin/php7.0', current_path.join('admin', 'cli', 'maintenance.php'), '--disable'
end
end
desc 'Purge all internal Moodle caches' task :'purge-caches' do
on roles(:admin) do
execute :sudo, '-u', 'www-data-aulatp', '/usr/bin/php7.0', current_path.join('admin', 'cli', 'purge_caches.php')
end
end
end
before 'deploy:starting', 'moodle:save-config'
before 'deploy:updated', 'moodle:enable-maintenance'
after 'deploy:updated', 'moodle:restore-config'
after 'deploy:finished', 'moodle:enable-maintenance'
after 'deploy:finished', 'moodle:disable-maintenance'
after 'deploy:finished', 'moodle:purge-caches'
問題は、時々私は速いが展開する、有効にする必要がありません小さなパッチを作成する必要がありますされています。私は問題なくメンテナンスとクリアキャッシュに自分のサイトを置くためにカスタムタスクで流れを変えるために管理していますメンテナンスモードを無効にするか、またはキャッシュをパージします。
カピストラーノで可愛いですか?
私はcapistrano-patchも探しています。これは、完全なデプロイメントプロセスを作成せずにすべてのサーバーに簡単なパッチを展開する方法です。それは何年も更新されていないようですが、私はcapistrano 3で動作しないと思います。
私は以下の回答を追加しましたが、capistrano-patchにはコメントしませんでした。私はCapistrano 3に相当するものは知らない。 –