From a01c22072caf50cd7561997c57e8b546a2ef4630 Mon Sep 17 00:00:00 2001 From: Arvydas Silanskas Date: Sat, 14 Dec 2024 11:23:15 +0200 Subject: [PATCH 1/7] work --- Jenkinsfile | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) diff --git a/Jenkinsfile b/Jenkinsfile index 8ff4f80..ddfaff9 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -53,6 +53,27 @@ pipeline { } } + stage('Deploy tuonela') { + agent { + docker { + image 'ubuntu:24:04' + reuseNode true + } + } + when { + branch 'tuonela-deployment' + } + steps { + sshagent(credentials: ['index_tuonela_ssh']) { + sh ''' + ssh-keyscan -t rsa tuonela.scheme.org >> ~/.ssh/known_hosts + rsync schemeindex.zip prod-index@tuonela.scheme.org:/production/index/update/schemeindex.zip + ssh prod-index@tuonela.scheme.org 'cd ~ ; bash install-update.sh' + ''' + } + } + } + } } From 67208713b24ee8e85c14dd79c00dbd6cd71d118e Mon Sep 17 00:00:00 2001 From: Arvydas Silanskas Date: Sat, 14 Dec 2024 11:42:30 +0200 Subject: [PATCH 2/7] work --- Jenkinsfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Jenkinsfile b/Jenkinsfile index ddfaff9..80bd099 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -15,7 +15,7 @@ pipeline { stage('Build') { agent { docker { - image 'docker:cli' + image 'docker:20.10.24-cli' args "-u root" reuseNode true } From be66572f05370c8ef2d5540260b7de911fcf2f41 Mon Sep 17 00:00:00 2001 From: Arvydas Silanskas Date: Sat, 14 Dec 2024 11:52:05 +0200 Subject: [PATCH 3/7] work --- Jenkinsfile | 4 ++-- deploy/rsync.Dockerfile | 3 +++ 2 files changed, 5 insertions(+), 2 deletions(-) create mode 100644 deploy/rsync.Dockerfile diff --git a/Jenkinsfile b/Jenkinsfile index 80bd099..3b97820 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -55,8 +55,8 @@ pipeline { stage('Deploy tuonela') { agent { - docker { - image 'ubuntu:24:04' + dockerfile { + filename './deploy/rsync.Dockerfile' reuseNode true } } diff --git a/deploy/rsync.Dockerfile b/deploy/rsync.Dockerfile new file mode 100644 index 0000000..3808eac --- /dev/null +++ b/deploy/rsync.Dockerfile @@ -0,0 +1,3 @@ +FROM ubuntu:24.04 +apt-get update +apt-get install -y ssh rsync From cf970ac3709d2df1ac74fe2c56090f2494c1da8a Mon Sep 17 00:00:00 2001 From: Arvydas Silanskas Date: Sat, 14 Dec 2024 11:53:57 +0200 Subject: [PATCH 4/7] work --- deploy/rsync.Dockerfile | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/deploy/rsync.Dockerfile b/deploy/rsync.Dockerfile index 3808eac..57856cc 100644 --- a/deploy/rsync.Dockerfile +++ b/deploy/rsync.Dockerfile @@ -1,3 +1,2 @@ FROM ubuntu:24.04 -apt-get update -apt-get install -y ssh rsync +RUN apt-get update && apt-get install -y ssh rsync From 05edba4a212e10fb83cd3cc3f524e944e6750bb1 Mon Sep 17 00:00:00 2001 From: Arvydas Silanskas Date: Sat, 14 Dec 2024 11:57:29 +0200 Subject: [PATCH 5/7] work --- Jenkinsfile | 1 + 1 file changed, 1 insertion(+) diff --git a/Jenkinsfile b/Jenkinsfile index 3b97820..2121c67 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -66,6 +66,7 @@ pipeline { steps { sshagent(credentials: ['index_tuonela_ssh']) { sh ''' + mkdir ~/.ssh ssh-keyscan -t rsa tuonela.scheme.org >> ~/.ssh/known_hosts rsync schemeindex.zip prod-index@tuonela.scheme.org:/production/index/update/schemeindex.zip ssh prod-index@tuonela.scheme.org 'cd ~ ; bash install-update.sh' From 5a3b152c40a043721eaeb15f3e64ad79287b19fd Mon Sep 17 00:00:00 2001 From: Arvydas Silanskas Date: Sat, 14 Dec 2024 14:06:21 +0200 Subject: [PATCH 6/7] work --- Jenkinsfile | 35 +++++++++++++++++++++++++++++++++-- 1 file changed, 33 insertions(+), 2 deletions(-) diff --git a/Jenkinsfile b/Jenkinsfile index 2121c67..11bed49 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -3,6 +3,11 @@ pipeline { agent { label 'docker' } + + parameters { + booleanParam(name: 'DEPLOY_STAGING', defaultValue: true, description: 'Deploy to index.staging.scheme.org') + booleanParam(name: 'DEPLOY_PROD', defaultValue: false, description: 'Deploy to index.scheme.org') + } stages { @@ -53,7 +58,7 @@ pipeline { } } - stage('Deploy tuonela') { + stage('Deploy tuonela staging') { agent { dockerfile { filename './deploy/rsync.Dockerfile' @@ -61,7 +66,33 @@ pipeline { } } when { - branch 'tuonela-deployment' + expression { + return params.DEPLOY_STAGING + } + } + steps { + sshagent(credentials: ['index_staging_tuonela_ssh']) { + sh ''' + mkdir ~/.ssh + ssh-keyscan -t rsa tuonela.scheme.org >> ~/.ssh/known_hosts + rsync schemeindex.zip stag-index@tuonela.scheme.org:/staging/index/update/schemeindex.zip + ssh stag-index@tuonela.scheme.org 'cd ~ ; bash install-update.sh' + ''' + } + } + } + + stage('Deploy tuonela production') { + agent { + dockerfile { + filename './deploy/rsync.Dockerfile' + reuseNode true + } + } + when { + expression { + return params.DEPLOY_PROD + } } steps { sshagent(credentials: ['index_tuonela_ssh']) { From 19ce1a7f4b693180b33631ea8f1041ec404ac0a7 Mon Sep 17 00:00:00 2001 From: Arvydas Silanskas Date: Mon, 16 Dec 2024 19:16:26 +0200 Subject: [PATCH 7/7] remove old deployment --- Jenkinsfile | 27 ++------------------------- deploy/README.adoc | 6 ------ deploy/ansible.Dockerfile | 6 ------ deploy/deploy.yml | 21 --------------------- deploy/hosts | 7 ------- deploy/template/scheme_index.conf | 26 -------------------------- 6 files changed, 2 insertions(+), 91 deletions(-) delete mode 100644 deploy/README.adoc delete mode 100644 deploy/ansible.Dockerfile delete mode 100644 deploy/deploy.yml delete mode 100644 deploy/hosts delete mode 100644 deploy/template/scheme_index.conf diff --git a/Jenkinsfile b/Jenkinsfile index 11bed49..ee368fe 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -35,30 +35,7 @@ pipeline { } } - stage('Deploy') { - agent { - dockerfile { - filename './deploy/ansible.Dockerfile' - reuseNode true - } - } - when { - branch 'master' - } - steps { - dir('deploy') { - sh 'pip install ansible' - sshagent(credentials: ['index_scheme_org_ssh']) { - sh ''' - ssh-keyscan -t rsa index.scheme.org >> ~/.ssh/known_hosts - ansible-playbook -i hosts deploy.yml -e content_zip_file=../schemeindex.zip - ''' - } - } - } - } - - stage('Deploy tuonela staging') { + stage('Deploy staging') { agent { dockerfile { filename './deploy/rsync.Dockerfile' @@ -82,7 +59,7 @@ pipeline { } } - stage('Deploy tuonela production') { + stage('Deploy production') { agent { dockerfile { filename './deploy/rsync.Dockerfile' diff --git a/deploy/README.adoc b/deploy/README.adoc deleted file mode 100644 index 8fc2c29..0000000 --- a/deploy/README.adoc +++ /dev/null @@ -1,6 +0,0 @@ -= Ansible deployment of the static site - -This folder contains deployment playbook. It is presumed that target uses nginx and systemd. - -. Build the static site (see ../build folder) -. Invoke `ansible-playbook -i hosts deploy.yml -e content_zip_file=../build/schemeindex.zip` from this directory diff --git a/deploy/ansible.Dockerfile b/deploy/ansible.Dockerfile deleted file mode 100644 index a74d327..0000000 --- a/deploy/ansible.Dockerfile +++ /dev/null @@ -1,6 +0,0 @@ -FROM python:3.9.20 -RUN useradd -ms /bin/bash ansible -USER ansible -RUN pip install ansible -ENV PATH="/home/ansible/.local/bin:$PATH" -RUN mkdir -p /home/ansible/.ssh diff --git a/deploy/deploy.yml b/deploy/deploy.yml deleted file mode 100644 index 060e913..0000000 --- a/deploy/deploy.yml +++ /dev/null @@ -1,21 +0,0 @@ ---- -- name: 'Deploy scheme index' - hosts: 'index.scheme.org' - tasks: - - name: 'Upload nginx config' - template: - src: 'template/scheme_index.conf' - dest: '{{nginx_conf_d_location}}/scheme_index.conf' - - name: 'Ensure content root exists' - file: - name: '{{root_location}}' - state: 'directory' - - name: 'Upload scheme index content' - unarchive: - src: '{{content_zip_file}}' - dest: '{{root_location}}' - - name: 'Reload nginx service' - systemd_service: - name: 'nginx' - state: 'reloaded' - diff --git a/deploy/hosts b/deploy/hosts deleted file mode 100644 index d4b44dc..0000000 --- a/deploy/hosts +++ /dev/null @@ -1,7 +0,0 @@ -all: - hosts: - index.scheme.org: - ansible_user: root - certs_location: /etc/letsencrypt/live/index.scheme.org/ - nginx_conf_d_location: /etc/nginx/conf.d - root_location: /var/www/scheme_index diff --git a/deploy/template/scheme_index.conf b/deploy/template/scheme_index.conf deleted file mode 100644 index 92ea659..0000000 --- a/deploy/template/scheme_index.conf +++ /dev/null @@ -1,26 +0,0 @@ -server { - - listen 443 ssl; - server_name index.scheme.org; - ssl_certificate {{certs_location}}/fullchain.pem; - ssl_certificate_key {{certs_location}}/privkey.pem; - - root {{root_location}}; - index index.html; - - location / { - try_files $uri $uri/ /index.html =404; - } - -} - -server { - - listen 80; - server_name index.scheme.org; - - location / { - return 301 https://$host$request_uri; - } - -}