Как выполнить сценарий базы данных после развертывания образа Postgresql в openshift с Jenkins?
У меня есть git-репозиторий с конвейером Jenkins и официальным шаблоном postgresql:
вид: "BuildConfig"
apiVersion: "v1"
метаданные:
название: "postgresql-трубопровод"
спецификация:
стратегия:
jenkinsPipelineStrategy:
Дженкинсфайл: |-
трубопровод {
агент любой
среда {
DATABASE_NAME = 'sampledb'
DATABASE_USER = 'root'
DATABASE_PASSWORD = 'root'
}
Этапы {
stage('Clone git') {
шаги {
git ' https://bitbucket.org/businnessdata_db/postgresql-test.git '
}
}
stage ('Deploy db') {
шаги {
sh 'oc status'
sh 'oc delete secret/postgresql'
sh 'oc delete pvc/postgresql'
sh 'oc удалить все -l "app=postgresql-persistent"'
sh 'oc new-app -f openshift/templates/postgresql-persistent.json'
}
}
stage('Выполнить скрипт пользователя') {
шаги {
sh 'oc status' }
}
stage('Execute update script') {
steps {
sh 'oc status'
}
}
}
}
type: JenkinsPipeline<code>
Что я должен положить в последние 2 шага, чтобы запустить скрипт для новой сгенерированной базы данных?
1 ответ
Решение
Вы можете установить psql в свой контейнер Jenkins, а затем запустить скрипт через команду оболочки.
sh """
export PGPASSWORD=<password>
psql -h <host> -d <database> -U <user_name> -p <port> -a -w -f <file>.sql
"""
Или, поскольку Jenkinsfiles написаны на Groovy, используйте Groovy для выполнения ваших операторов. Вот Groovy документация для работы с базами данных.