Дженкинс развернуть WAR для Tomcat через SSH?

tomcat jenkins jenkins-plugins

1005 просмотра

3 ответа

3296 Репутация автора

Есть ли плагин для Jenkins, который будет обмениваться звонками с менеджером Tomcat через SSH?

Моя компания собирается развернуть некоторые приложения «в облаке», и мы, похоже, собираемся использовать Jenkins. Проблема в том, что мне неудобно открывать Tomcat Manager в Интернет.

Альтернативно, может ли Jenkins открыть VPN-соединение с целевым сервером перед развертыванием?

Автор: pepoluan Источник Размещён: 18.07.2016 04:59

Ответы (3)


1 плюс

361 Репутация автора

Вы можете использовать публиковать над SSH плагин .

Автор: Kaleb Размещён: 18.07.2016 01:00

0 плюса

318 Репутация автора

Вероятно, вы можете написать скрипт Ansible, чтобы выполнить работу, и использовать его в Jenkins.

Автор: Jigar Размещён: 18.07.2016 02:22

0 плюса

16 Репутация автора

Почему бы вам не включить SSL для tomcat и не поставить обратный прокси-сервер перед ним?

ваш соединитель в вашем server.xml будет выглядеть примерно так:

->

 <Connector  address="<localhost IP>" port="<port>" protocol="org.apache.coyote.http11.Http11NioProtocol"
            maxThreads="150" SSLEnabled="true" scheme="https" secure="true"
            clientAuth="false" sslProtocol="TLS"
            ciphers="<Cipher1>,
                     <Cipher2>,
                     <Cipher3>" 
            keystoreFile="<keystore directory>"          
            keystorePass="<keystore password>"
            URIEncoding="UTF-8"
            connectionTimeout="120000"
            maxPostSize="-1"
            maxKeepAliveRequests="-1"
            />

чтобы развернуть ваши военные файлы, вы можете использовать xml-файл, выполняемый ant в вашем скрипте jenkins:

<project name="Deploy" default="deploy">
<path id="tomcat.class.path">
<fileset dir="<TomcatHome>/lib">
        <include name="**/*.jar"/>
    </fileset>
<pathelement location="<TomcatHome>/bin/bootstrap.jar"/>
<pathelement location="<TomcatHome>/bin/tomcat-juli.jar"/>
</path>
<target name="tomcat-start">
    <echo>Stop Tomcat</echo>
<java classname="org.apache.catalina.startup.Bootstrap" fork="true" classpathref="tomcat.class.path">
    <jvmarg value="-Dcatalina.home=<TomcatHome>"/>
</java>
<sleep seconds="15"/>
</target>

<target name="tomcat-stop" depends="tomcat-check-status" if="tomcat.started">
    <echo>Start Tomcat</echo>
    <java classname="org.apache.catalina.startup.Bootstrap"     fork="true" classpathref="tomcat.class.path">
<jvmarg value="-Dcatalina.home=<TomcatHome>"/>
        <arg line="stop"/>
    </java>
    <sleep seconds="15"/>
</target>

<target name="tomcat-check-status">
    <condition property="tomcat.started">
        <socket server="localhost" port="8000"/>
    </condition>
</target>
<target name="deploy">
    <sequential>
        <antcall target="tomcat-stop"/>
            <echo>Deploy to server</echo>
            <copy todir="<TomcatHome>/webapps">
                <fileset dir="<Current directory of WarFiles>">
                <include name="*.war"/>
                </fileset>
            </copy>
        <antcall target="tomcat-start"/>
    </sequential>
</target>
</project>

Вот как может выглядеть ваш конвейерный скрипт:

dir("<directory of build.xml>") {
       stage('deploy'){
         def antHome = tool 'Ant <version>';
                withAnt(installation: 'Ant <version>') {

            bat "ant deploy"
            }
        }
        }
    }   
Автор: Murmel Tier Размещён: 13.02.2019 02:36
Вопросы из категории :
32x32