Utilice jenkins para crear un sistema de publicación automatizado para crear jenkins
Perspectiva de DevOps de Niu Hengbo
instalación de jenkins
instalación
Establecer el directorio de jenkins Definir jenkins en catalina.sh
$ export CATALINA_OPTS="-DJENKINS_HOME=/path/to/jenkins_home/ -Xmx512m"
$ catalina.sh start
Definir jenkins en las variables de entorno de linux
$ export JENKINS_HOME=/path/to/jenkins_home/
$ catalina.sh start
Definir jenkins-home en el contexto
<Context ...>
<Environment name="JENKINS_HOME" value="/path/to/jenkins_home/" type="java.lang.String"/>
</Context>
Instalación e inicialización
wget http://mirrors.jenkins.io/war-stable/latest/jenkins.war
java -jar jenkins.war
http://localhost:8080
Instalar complementos comunes
Elige instalar
iniciar la instalación
Una vez completada la instalación del complemento, comience a configurar el nombre de usuario y la contraseña del administrador. Empiece a usar jenkins
Cambiar el directorio de inicio de jenkins
La ruta predeterminada del directorio de inicio de jenkins es /root/.jenkins/ ruta. Dependiendo del método de inicio, el método de modificación es ligeramente diferente.
1. Inicie java -jar jenkins.war directamente desde la línea de comandos
cat >>/etc/profile<<EOF
export JENKINS_HOME=/data/db/jenkins/
EOF
source /etc/profile
2. Comience con el contenedor Tomcat
vim /data/app/tomcat/bin/catalina.sh
export JENKINS_HOME=/data/db/jenkins/
# OS specific support. $var _must_ be set to either true or false.
3. Modifique el paquete jenkins.war (no recomendado)
vim jenkins /web.xml
<!-- if specified, this value is used as the Hudson home directory -->
<env-entry>
<env-entry-name>HUDSON_HOME</env-entry-name>
<env-entry-type>java.lang.String</env-entry-type>
<env-entry-value>/data/db/jenkins/</env-entry-value> #填入路径
</env-entry>
Comience a instalar el complemento
Los complementos son los más utilizados en jenkins, por lo que comenzamos instalando complementos.
método uno
Ruta: Administración del sistema -> Administrar complementos, comenzar a instalar complementos.
- Complemento de construcción de canalización: complemento de configuración de proceso de compilación.
- Complemento de Gitlab: complemento de extracción de gitlab.
- Complemento de gancho de Gitlab: complemento de gancho de Gitlab.
- Build Authorization Token Root Plugin: complemento de verificación de autorización de usuario.
- Escáner SonarQube para Jenkins: complemento de gestión de calidad del código.
- Complemento de activación remota parametrizado: complemento de activación remota.
- AnsiColor (opcional): este complemento puede hacer que la salida del registro de la consola de Jenkins sea coloreada (al igual que la consola de Linux)
- Complemento de integración de Maven
- Complemento de parámetros de opción extendida: interfaz gráfica para configurar parámetros de opción múltiple
Método dos
Cargar complemento Jenkins-plugin management-advanced-upload plugin
Método tres
Cargue directamente al directorio de archivos (de acuerdo con la ruta del archivo de contraseña anterior, puede saber que el directorio de jenkins está en /root/.jenkins/) /root/.jenkins/plugins reiniciar Jenkins
Crea un proceso de construcción
Ingrese el nombre del proyecto, elija para construir un proyecto de software de estilo libre
Configurar la dirección de descarga de origen
Agregue la clave de autenticación de gitlab, configure la clave privada de ssh aquí
Agregue la clave pública de ssh-key en gitlab
Configurar el proceso de construcción
Hay un punto a destacar aquí. Por ejemplo, ¿qué debemos hacer si queremos ejecutar scripts relacionados en una máquina remota?
Un principio: durante la ejecución de jenkins, el usuario que usa jenkins está ejecutando.
Dos métodos:
- Todos los servidores inician sesión sin llave con jenkins.
- La raíz de todos los servidores realiza un inicio de sesión sin llave.
Se recomienda utilizar el segundo tipo, ya que la secuencia de comandos publicada puede implicar problemas de permisos. Si utiliza jenkins, es posible que no haya suficientes permisos.
la mejor solucion
sudo ssh -p 52113 [email protected] "/data/scripts/web-deploy.sh"
Realice la salida de la consola de vista ahora
explique:
Jenkins clonará en / workspace de jenkins.
[root@linux-node1 web-build16:29:46]#pwd
/root/.jenkins/workspace/web-build
[root@linux-node1 web-build16:29:56]#ls -a
. .. .git index.html README.md
[root@linux-node1 web-build16:29:58]#
[root@linux-node1 web-build16:31:49]#cat /tmp/1.txt
2017-03-01
Espere el próximo artículo: Gestión de la calidad del código de la sonda