"LAMP" 애플리케이션 배포를 자동화하는 중입니다. 현재 저는 제가 완전히 제어할 수 있는 로컬 환경에 배포하기 위한 파이프라인이 포함된 Jenkins 설정을 가지고 있습니다. 데이터베이스 스키마가 동기화되었는지 확인하기 위해 내 시선은 liquibase에 떨어졌습니다. 내 문제는 원격 서버에 연결하기 위해 파이프라인을 스크립트하는 방법입니다.
나는 다음과 같은 것을 사용할 것입니다
scp db.changelog-1.1.xml remotehost:/path/to/
ssh remotehost liquibase --driver=com.mysql.cj.jdbc.Driver --classpath=mysql-connector-java-8.0.17.jar --changeLogFile=/path/to/db.changelog-1.1.xml --url="jdbc:mysql://127.0.0.1:3306/dbname?autoReconnect=true&useSSL=false&useUnicode=true&useJDBCCompliantTimezoneShift=true&useLegacyDatetimeCode=false&serverTimezone=UTC" --username=user --password=secretpass update
하지만 대상 서버에는 JVM이 없고 설치할 가능성도 없습니다.
두 번째 생각은 SSH 터널을 설정하는 것입니다.
ssh -L 3307:127.0.0.1:3306 remoteHost &
liquibase --driver=com.mysql.cj.jdbc.Driver --classpath=mysql-connector-java-8.0.17.jar --changeLogFile=/path/to/db.changelog-1.1.xml --url="jdbc:mysql://127.0.0.1:3307/dbname?autoReconnect=true&useSSL=false&useUnicode=true&useJDBCCompliantTimezoneShift=true&useLegacyDatetimeCode=false&serverTimezone=UTC" --username=user --password=secretpass update
내 질문은 두 가지입니다.
- 사용 후 SSH 터널을 종료하려면 어떻게 해야 합니까?
- Jenkins 파이프라인 스크립트에서 터널을 설정하는 더 좋은 방법이 있습니까?