test new run job

This commit is contained in:
reqwizz 2024-11-17 19:02:14 +03:00
parent 74f04d975c
commit 2f21245787
2 changed files with 52 additions and 15 deletions

55
ansible/Jenkinsfile vendored
View File

@ -7,10 +7,20 @@ pipeline {
}
parameters {
string(name: 'ADDITIONAL_CONTENT_SITEA_H2', defaultValue: 'Новое сообщение для SiteA', description: 'Additional <h2> content for SiteA')
string(name: 'ADDITIONAL_CONTENT_SITEA_P', defaultValue: 'Дополнительный параграф для SiteA', description: 'Additional <p> content for SiteA')
string(name: 'ADDITIONAL_CONTENT_SITEB_H2', defaultValue: 'Новое сообщение для SiteB', description: 'Additional <h2> content for SiteB')
string(name: 'ADDITIONAL_CONTENT_SITEB_P', defaultValue: 'Дополнительный параграф для SiteB', description: 'Additional <p> content for SiteB')
choice(
name: 'DEPLOY_TARGET',
choices: ['SiteA', 'SiteB', 'All'],
description: 'Выберите сайты для развертывания'
)
string(name: 'ADDITIONAL_CONTENT_SITEA_H2', defaultValue: 'Новое сообщение для SiteA', description: 'Дополнительный <h2> контент для SiteA')
string(name: 'ADDITIONAL_CONTENT_SITEA_P', defaultValue: 'Дополнительный параграф для SiteA', description: 'Дополнительный <p> контент для SiteA')
string(name: 'ADDITIONAL_CONTENT_SITEB_H2', defaultValue: 'Новое сообщение для SiteB', description: 'Дополнительный <h2> контент для SiteB')
string(name: 'ADDITIONAL_CONTENT_SITEB_P', defaultValue: 'Дополнительный параграф для SiteB', description: 'Дополнительный <p> контент для SiteB')
string(name: 'ADDITIONAL_CONTENT_ALL_H2', defaultValue: 'Новое сообщение для всех сайтов', description: 'Дополнительный <h2> контент для всех сайтов')
string(name: 'ADDITIONAL_CONTENT_ALL_P', defaultValue: 'Дополнительный параграф для всех сайтов', description: 'Дополнительный <p> контент для всех сайтов')
}
stages {
@ -38,19 +48,46 @@ pipeline {
stage('Deploy Site') {
steps {
script {
def selectedHosts
switch(params.DEPLOY_TARGET) {
case 'SiteA':
selectedHosts = 'SiteA,proxy'
break
case 'SiteB':
selectedHosts = 'SiteB,proxy'
break
case 'All':
selectedHosts = 'SiteA,SiteB,proxy'
break
default:
error "Неизвестный DEPLOY_TARGET: ${params.DEPLOY_TARGET}"
}
def extraVars = [
siteA_h2: params.ADDITIONAL_CONTENT_SITEA_H2,
siteA_p: params.ADDITIONAL_CONTENT_SITEA_P,
siteB_h2: params.ADDITIONAL_CONTENT_SITEB_H2,
siteB_p: params.ADDITIONAL_CONTENT_SITEB_P,
ansible_ssh_private_key_file: env.DECYPTED_KEY_FILE
]
if (params.DEPLOY_TARGET == 'All') {
extraVars.siteA_h2 = params.ADDITIONAL_CONTENT_ALL_H2
extraVars.siteA_p = params.ADDITIONAL_CONTENT_ALL_P
extraVars.siteB_h2 = params.ADDITIONAL_CONTENT_ALL_H2
extraVars.siteB_p = params.ADDITIONAL_CONTENT_ALL_P
} else {
if (params.DEPLOY_TARGET == 'SiteA' || params.DEPLOY_TARGET == 'All') {
extraVars.siteA_h2 = params.ADDITIONAL_CONTENT_SITEA_H2
extraVars.siteA_p = params.ADDITIONAL_CONTENT_SITEA_P
}
if (params.DEPLOY_TARGET == 'SiteB' || params.DEPLOY_TARGET == 'All') {
extraVars.siteB_h2 = params.ADDITIONAL_CONTENT_SITEB_H2
extraVars.siteB_p = params.ADDITIONAL_CONTENT_SITEB_P
}
}
ansiblePlaybook(
playbook: 'ansible/playbook.yml',
inventory: "ansible/inventory.yml",
extraVars: extraVars,
limit: 'SiteA,SiteB,proxy'
limit: selectedHosts
)
}
}

View File

@ -16,7 +16,7 @@
owner: nginx
group: nginx
mode: '0755'
when: inventory_hostname in groups['SiteA']
when: "'SiteA' in group_names"
- name: Create web root for SiteB
file:
@ -25,19 +25,19 @@
owner: nginx
group: nginx
mode: '0755'
when: inventory_hostname in groups['SiteB']
when: "'SiteB' in group_names"
- name: Deploy SiteA Configuration
template:
src: siteA.conf.j2
dest: /etc/nginx/conf.d/siteA.conf
when: inventory_hostname in groups['SiteA']
when: "'SiteA' in group_names"
- name: Deploy SiteB Configuration
template:
src: siteB.conf.j2
dest: /etc/nginx/conf.d/siteB.conf
when: inventory_hostname in groups['SiteB']
when: "'SiteB' in group_names"
- name: Deploy SiteA HTML
template:
@ -48,7 +48,7 @@
site_h1: "{{ siteA.site_h1 }}"
site_h2: "{{ siteA.site_h2 }}"
site_p: "{{ siteA.site_p }}"
when: inventory_hostname in groups['SiteA']
when: "'SiteA' in group_names"
- name: Deploy SiteB HTML
template:
@ -59,7 +59,7 @@
site_h1: "{{ siteB.site_h1 }}"
site_h2: "{{ siteB.site_h2 }}"
site_p: "{{ siteB.site_p }}"
when: inventory_hostname in groups['SiteB']
when: "'SiteB' in group_names"
- name: Reload Nginx
systemd: