Compare commits

..

2 Commits

Author SHA1 Message Date
dima
b7fab03b1f ver 5 2024-12-08 22:13:37 +03:00
dima
08cc9fc069 ver 5 2024-12-08 22:11:48 +03:00
3 changed files with 52 additions and 32 deletions

32
Jenkinsfile vendored
View File

@ -7,17 +7,26 @@ pipeline {
ansible 'Ansible' ansible 'Ansible'
} }
environment { environment {
PSQL_PASSWORD = credentials('PSQL_pass') PSQL_PASSWORD = "${params.DB_PASSWORD}"
VAULT_PASSWORD = credentials('ansible_vault_password') VAULT_PASSWORD = credentials('ansible_vault_password')
} }
parameters { parameters {
string(name: 'DB_USER', defaultValue: 'postgres', description: 'Имя пользователя базы данных') string(name: 'DB_USER', defaultValue: 'postgres', description: 'Имя пользователя базы данных')
password(name: 'DB_PASSWORD', defaultValue: '', description: 'Пароль для базы данных')
string(name: 'DB_NAME', defaultValue: 'mydb', description: 'Имя базы данных') string(name: 'DB_NAME', defaultValue: 'mydb', description: 'Имя базы данных')
string(name: 'BACKUP_DIR', defaultValue: '/var/backups/postgresql', description: 'Директория для бэкапа') string(name: 'BACKUP_DIR', defaultValue: '/var/backups/postgresql', description: 'Директория для бэкапа')
string(name: 'TASKS', defaultValue: '', description: 'Список тегов задач для выполнения (setup,firewall,init,configure,database,insert,user,backup)')
booleanParam(name: 'TASK_SETUP', defaultValue: false, description: 'Setup')
booleanParam(name: 'TASK_INIT', defaultValue: false, description: 'Init')
booleanParam(name: 'TASK_CONFIGURE', defaultValue: false, description: 'Configure')
booleanParam(name: 'TASK_USERS', defaultValue: false, description: 'Users')
booleanParam(name: 'TASK_DATABASE', defaultValue: false, description: 'Database')
booleanParam(name: 'TASK_INSERT', defaultValue: false, description: 'Insert')
booleanParam(name: 'TASK_FIREWALL', defaultValue: false, description: 'Firewall')
booleanParam(name: 'TASK_BACKUP', defaultValue: false, description: 'Backup')
} }
stages { stages {
stage('Clone repository') { stage('Clone Repository') {
steps { steps {
git branch: 'dev', url: 'http://192.168.0.70:3000/coursework/courseworkrep.git' git branch: 'dev', url: 'http://192.168.0.70:3000/coursework/courseworkrep.git'
} }
@ -41,17 +50,28 @@ pipeline {
} }
} }
} }
stage('Run PostgreSQL Playbook') { stage('Run Ansible Playbook') {
steps { steps {
script { script {
def tagsString = params.TASKS ? params.TASKS.split(',').join(',') : '' def selectedTags = []
if (params.TASK_SETUP) selectedTags << 'setup'
if (params.TASK_INIT) selectedTags << 'init'
if (params.TASK_CONFIGURE) selectedTags << 'configure'
if (params.TASK_USERS) selectedTags << 'users'
if (params.TASK_DATABASE) selectedTags << 'database'
if (params.TASK_INSERT) selectedTags << 'insert'
if (params.TASK_FIREWALL) selectedTags << 'firewall'
if (params.TASK_BACKUP) selectedTags << 'backup'
def tagsString = selectedTags.join(',')
ansiblePlaybook( ansiblePlaybook(
playbook: 'playbooks/install_postgresql.yml', playbook: 'playbooks/install_postgresql.yml',
inventory: "inventory.yml", inventory: "inventory.yml",
extraVars: [ extraVars: [
postgres_user: params.DB_USER, postgres_user: params.DB_USER,
postgres_password: PSQL_PASSWORD, postgres_password: env.PSQL_PASSWORD,
postgres_db: params.DB_NAME, postgres_db: params.DB_NAME,
backup_dir: params.BACKUP_DIR, backup_dir: params.BACKUP_DIR,
ansible_ssh_private_key_file: env.DECRYPTED_KEY_FILE ansible_ssh_private_key_file: env.DECRYPTED_KEY_FILE

View File

@ -1,26 +1,26 @@
$ANSIBLE_VAULT;1.1;AES256 $ANSIBLE_VAULT;1.1;AES256
32383831316464663266383334396166313235356563376262623739323138343738363066346162 65316433646437363338333233313530386265396432326633303334363130396438623632373733
3330333861363833363435323762306236386461323363610a363965333935326132363031346564 6234643334313336376439343564616333366632393666320a623066663130336665663763626337
62666163383837333362363532326661343337323633643063303132363031613436633336313831 36353135383933386431643036336561653438356537363262333530663363333138663966336231
6562353233353663320a336638653239633130353934393838333063653862633732626166356635 3631333939653033370a643061336136313031336163346431393034653237646265653665316466
33363138663432373965666532633634383234633232306631613664336134663030336363626439 63333966383038666635636462393361313731666239356139653466663761383531653063343733
33336236633431393139393834313939646362663164653161326634613736373530346438636565 64396533303131666139323333653838323961396437326438353733653262393164343263643738
64666335626431333635643632303963393039343763353238633737623331383365363761326431 37626464353762656532373739376363363935383065336637333161356331303230356163626533
30356535653336366238373039356137353132643034363638356166666566646331306330363535 66363331616263383366303534376235663564313031343031323466333564646233393238336665
64376234636664646164633763636165326161333237326666613365393665623138623061386130 62383138623137323761656163336631393861386436626338666662313739353338373563626335
31366664656461623938356234633265643962396138316536373963353663346138616233633837 31663831366135396437643562373463613566333433666162313833653230396439353461633437
37633730666362326433353834313035306461633034303466653536323938616633343531326234 31663937343437643363323137313331373839313032333830316135303734376264396539396339
66363132346632306166626462323634336562623063613735663862643738663565363062643861 37613031376235316439303363326134613136616137623133353738313236383436386631636432
37633065383037306236363865363639633334653938393733663830313161316337343039303966 64373861346631386234316234663134316231336666356230373862396237346565393434383039
35313532383761383838613539653132643165643536663439306232353961633835383865363434 64323462653532636161333339623138663564396261363832626630393533323139616165363065
65336339653930353934313063343538333833376561386230643161366230636232323565333562 66376166306131333531323966633036623762323037616261643930343733383165333939326537
30383231666131393562393166323230643937316531636332333236373462663863646333663836 34636534343436313132383532633631363631356563336365393437616337333062323862336164
66356365303730366563353936633436333962626338663430656534306666316632633030343131 66656463643761366335663331633733383065316530653935613134653837666332653262326266
63383031333537383762326366633535316136323430626666343736623561333264333933626166 39396237616235383163386662363637346633366231373236323734383934383035623739333263
35313861323763393334393632336330316436346635356164313466643163393138626263356432 65316364306462376134373165393661316561383837383438306365666437373365366461663439
31393662336462303131366236366461336231613239383663396531313039656431326435323634 61336463636462333363313766363465313163373063323864613136303564396137333536373235
30613564653232666237306332663266393433306432366438323030346334643464386633306665 33656135393732653230373031613663633866386537643164623138623663626663303331656631
61333236626339346336633862613964303061383236353864323039343932636637396663336161 37666562663135643832386335373132643738393233656361663931306563386666613135303033
30333132633330303539396236326661323963623363623039383735326138613665346333653666 32663633373439646564663036626561336338313239316634623838633534306530633739363831
34653939336562386361636366663863363062363362643261653866373836343264316664363831 39306631356662363430633866653538623837303537343331363066326466646430346638623162
6137 6438

View File

@ -15,4 +15,4 @@
phone_number VARCHAR(15) UNIQUE phone_number VARCHAR(15) UNIQUE
); );
login_user: '{{ postgres_user }}' login_user: '{{ postgres_user }}'
login_password: '{{ postgres_password }}' login_password: '{{ postgres_password }}'