From 7f220ea987f3d87772b8676fcd1e54cecdd509a7 Mon Sep 17 00:00:00 2001 From: David Heinemeier Hansson Date: Sun, 8 Jan 2023 10:07:08 +0100 Subject: [PATCH] Bootstrap entirely clean new server --- lib/tasks/mrsk/mrsk.rake | 3 +++ lib/tasks/mrsk/server.rake | 13 +++++++++++++ 2 files changed, 16 insertions(+) create mode 100644 lib/tasks/mrsk/server.rake diff --git a/lib/tasks/mrsk/mrsk.rake b/lib/tasks/mrsk/mrsk.rake index 3afed034..ed9257c4 100644 --- a/lib/tasks/mrsk/mrsk.rake +++ b/lib/tasks/mrsk/mrsk.rake @@ -1,4 +1,7 @@ namespace :mrsk do + desc "Deploy app for the first time to a fresh server" + task fresh: [ "server:bootstrap", "registry:login", "app:deliver", "traefik:start", "app:start" ] + desc "Push the latest version of the app, ensure Traefik is running, then restart app" task deploy: [ "registry:login", "app:push", "traefik:start", "app:restart" ] diff --git a/lib/tasks/mrsk/server.rake b/lib/tasks/mrsk/server.rake new file mode 100644 index 00000000..6cf07db9 --- /dev/null +++ b/lib/tasks/mrsk/server.rake @@ -0,0 +1,13 @@ +require_relative "setup" + +app = Mrsk::Commands::App.new(MRSK_CONFIG) + +namespace :mrsk do + namespace :server do + desc "Setup Docker on the remote servers" + task :bootstrap do + # FIXME: Detect when apt-get is not available and use the appropriate alternative + on(MRSK_CONFIG.servers) { execute "apt-get install docker.io -y" } + end + end +end