From 4f09e4759b9801371823bc8356967a8130c89cbd Mon Sep 17 00:00:00 2001 From: Kaitlyn Parkhurst Date: Mon, 19 Sep 2022 11:39:05 -0700 Subject: [PATCH] Sync certs through minion. --- Web/lib/MJB/Web.pm | 17 +++++++++-------- Web/lib/MJB/Web/Task/SyncSSLCerts.pm | 14 ++++++++++++++ 2 files changed, 23 insertions(+), 8 deletions(-) create mode 100644 Web/lib/MJB/Web/Task/SyncSSLCerts.pm diff --git a/Web/lib/MJB/Web.pm b/Web/lib/MJB/Web.pm index 28c2b8f..6ced3fd 100644 --- a/Web/lib/MJB/Web.pm +++ b/Web/lib/MJB/Web.pm @@ -21,13 +21,17 @@ sub startup ($self) { return state $db = MJB::DB->connect($config->{database}->{mjb}); }); - # Minion Plugin & Tasks - $self->plugin( Minion => { Pg => $self->config->{database}->{minion} } ); + # Minion plugin & tasks + $self->plugin( Minion => { Pg => $self->config->{database}->{minion} } ); - $self->minion->add_task( create_blog => 'MJB::Web::Task::CreateBlog' ); - $self->minion->add_task( purge_blog => 'MJB::Web::Task::PurgeBlog' ); - $self->minion->add_task( deploy_blog => 'MJB::Web::Task::DeployBlog' ); + # Blog deployment related jobs. + $self->minion->add_task( create_blog => 'MJB::Web::Task::CreateBlog' ); + $self->minion->add_task( purge_blog => 'MJB::Web::Task::PurgeBlog' ); + $self->minion->add_task( deploy_blog => 'MJB::Web::Task::DeployBlog' ); + + # SSL cert related jobs. $self->minion->add_task( create_ssl_cert => 'MJB::Web::Task::CreateSSLCert' ); + $self->minion->add_task( sync_ssl_certs => 'MJB::Web::Task::SyncSSLCerts' ); # Standard router. my $r = $self->routes->under( '/' => sub ($c) { @@ -105,9 +109,6 @@ sub startup ($self) { # Blog Management $auth->get ( '/blog/create' )->to('Blog#create' )->name('show_blog_create' ); $auth->post( '/blog/create' )->to('Blog#do_create' )->name('do_blog_create' ); - - - } 1; diff --git a/Web/lib/MJB/Web/Task/SyncSSLCerts.pm b/Web/lib/MJB/Web/Task/SyncSSLCerts.pm new file mode 100644 index 0000000..feddf12 --- /dev/null +++ b/Web/lib/MJB/Web/Task/SyncSSLCerts.pm @@ -0,0 +1,14 @@ +package MJB::Web::Task::SyncSSLCerts; +use Mojo::Base 'MJB::Web::Task', -signatures; +use IPC::Run3; + +sub run ( $job ) { + $job->note( _mds_template => 'build_static' ); + + # Push the SSL Certificates + my $result = $job->system_command( [ 'sudo', 'letsencrypt-cert-push' ] ); + + $job->finish(); +} + +1;