저는 Capistrano를 처음 사용 합니다만, 사용자 정의 배포를 위해 작동하도록 노력했습니다. AWS와 하나 이상의 정적 서버에 자동 확장 그룹이있는 클러스터에 무들을 배포해야합니다.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도 살펴 보았습니다. 그것은 몇 년 동안 벤을 업데이 트하지 않은 것 같아요 그리고 나는 카피 스트라 노 3와 함께 작동하지 않을 거라 생각합니다. 카프리 스트라 노 3 핫 픽스를 할 비슷한 아이디어?
나는 아래에 답변을 추가했지만 capistrano-patch에 대해서는 언급하지 않았습니다. 나는 Capistrano 3에 상응하는 것을 모른다. –