Requisits previs
Instal·leu Java
Instal·leu GoCD
Configura l'emmagatzematge de blocs
Configura el tallafoc
Configura l'autenticació
Protecció de GoCD amb Let's Encrypt SSL
Instal·lació de l'agent GoCD
GoCD és un sistema d'automatització i lliurament continu de codi obert. Us permet modelar fluxos de treball complexos mitjançant la seva execució paral·lela i seqüencial. El seu mapa de flux de valor us permet visualitzar fàcilment un flux de treball complex amb facilitat. GoCD us permet comparar fàcilment dues compilacions i desplegar qualsevol versió de l'aplicació que vulgueu. L'ecosistema GoCD està format pel servidor GoCD i l'agent GoCD. GoCD és responsable de controlar-ho tot, com ara executar la interfície d'usuari basada en web i gestionar i proporcionar feines a l'agent. Els agents de Go són els responsables d'executar les feines i els desplegaments.
Requisits previs
- Una instància del servidor Vultr CentOS 7 amb almenys 1 GB de RAM.
- Un usuari de sudo .
- Un nom de domini apuntat cap al servidor.
Per a aquest tutorial, utilitzarem 192.168.1.1com a adreça IP pública i gocd.example.comcom a nom de domini apuntat cap a la instància Vultr. Assegureu-vos de substituir totes les ocurrències del nom de domini d'exemple i l'adreça IP per l'actual.
Actualitzeu el vostre sistema base mitjançant la guia Com actualitzar CentOS 7 . Un cop actualitzat el sistema, procediu a instal·lar Java.
Instal·leu Java
GoCD requereix Java versió 8 i és compatible amb Oracle Java i OpenJDK. En aquest tutorial, instal·larem Java 8 des de l'OpenJDK.
OpenJDK es pot instal·lar fàcilment, ja que el paquet està disponible al YUMrepositori predeterminat .
sudo yum -y install java-1.8.0-openjdk-devel
Si Java està instal·lat correctament, podreu verificar la seva versió.
java -version
Obtindreu una sortida similar al text següent.
[user@vultr ~]$ java -version
openjdk version "1.8.0_151"
OpenJDK Runtime Environment (build 1.8.0_151-b12)
OpenJDK 64-Bit Server VM (build 25.151-b12, mixed mode)
Abans de continuar, haurem de configurar les variables d'entorn JAVA_HOMEi JRE_HOME. Trobeu la ruta absoluta de l'executable Java al vostre sistema.
readlink -f $(which java)
El text següent s'enviarà al vostre terminal.
[user@vultr ~]$ readlink -f $(which java)
/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.151-5.b12.el7_4.x86_64/jre/bin/java
Ara, configureu les variables d'entorn JAVA_HOMEi JRE_HOMEsegons la ruta del directori Java.
echo "export JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.151-5.b12.el7_4.x86_64" >> ~/.bash_profile
echo "export JRE_HOME=/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.151-5.b12.el7_4.x86_64/jre" >> ~/.bash_profile
Nota: Assegureu-vos que feu servir la ruta de Java obtinguda al vostre sistema. El camí utilitzat en aquest tutorial pot canviar quan es publica una nova versió de Java 8.
Executeu el bash_profilefitxer.
source ~/.bash_profile
Ara podeu executar l' echo $JAVA_HOMEordre per assegurar-vos que la variable d'entorn està definida.
[user@vultr ~]$ echo $JAVA_HOME
/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.151-1.b12.el7_4.x86_64
Instal·leu GoCD
GoCD està escrit en Java, per tant Java és l'única dependència per executar GoCD. GoCD es pot instal·lar amb l'ajuda de YUM. Instal·leu el seu repositori oficial al sistema.
sudo curl https://download.gocd.org/gocd.repo -o /etc/yum.repos.d/gocd.repo
Instal·leu el servidor GoCD al vostre sistema.
sudo yum install -y go-server
Inicieu GoCD i activeu-lo perquè s'iniciï automàticament en el moment de l'arrencada.
sudo systemctl start go-server
sudo systemctl enable go-server
Abans d'accedir al tauler de GoCD, creem un directori nou per emmagatzemar els artefactes. Els artefactes es poden emmagatzemar al mateix disc on estan instal·lats el sistema operatiu i les aplicacions. Alternativament, podeu utilitzar un disc dedicat o una unitat d'emmagatzematge de blocs per emmagatzemar els artefactes.
Si voleu utilitzar el mateix disc per emmagatzemar els artefactes, només cal que creeu un nou directori i proporcioneu la propietat a l'usuari de GoCD.
sudo mkdir /opt/artifacts
sudo chown -R go:go /opt/artifacts
El programari GoCD recomana utilitzar una partició o unitat addicional per emmagatzemar els artefactes. En una plataforma d'integració i lliurament contínua, els artefactes es generen molt sovint. L'espai en disc disminueix amb el temps quan es generen nous artefactes contínuament. En algun moment, el vostre sistema es quedarà sense espai al disc lliure i els serveis que s'executen al vostre sistema fallaran. Per solucionar aquest problema, podeu adjuntar una nova unitat d' emmagatzematge de blocs Vultr per emmagatzemar els artefactes. Si encara voleu continuar amb l'emmagatzematge d'artefactes a la mateixa unitat, aneu a la secció "Configuració del tallafoc".
Desplegueu una nova unitat d'emmagatzematge de blocs i connecteu-la a la vostra instància del servidor GoCD. Ara creeu una nova partició al dispositiu d'emmagatzematge de blocs.
sudo parted -s /dev/vdb mklabel gpt
sudo parted -s /dev/vdb unit mib mkpart primary 0% 100%
Creeu el sistema de fitxers al disc nou.
sudo mkfs.ext4 /dev/vdb1
Munteu la unitat d'emmagatzematge de blocs.
sudo mkdir /mnt/artifacts
sudo cp /etc/fstab /etc/fstab.backup
echo "
/dev/vdb1 /mnt/artifacts ext4 defaults,noatime 0 0" | sudo tee -a /etc/fstab
sudo mount /mnt/artifacts
Ara, executeu dfi veureu la nova unitat d'emmagatzematge de blocs muntada a /mnt/artifacts.
[user@vultr ~]$ df
Filesystem 1K-blocks Used Available Use% Mounted on
/dev/vda1 20616252 6313892 13237464 33% /
...
/dev/vdb1 10188052 36888 9610596 1% /mnt/artifacts
Proporcioneu la propietat del directori a l'usuari de GoCD.
sudo chown -R go:go /mnt/artifacts
Configura el tallafoc
Canvieu la configuració del tallafoc per permetre els ports 8153i a 8154través del tallafoc. El port 8153escolta les connexions no segures i el port les 8154connexions segures.
sudo firewall-cmd --zone=public --add-port=8153/tcp --permanent
sudo firewall-cmd --zone=public --add-port=8154/tcp --permanent
sudo firewall-cmd --reload
Ara podeu accedir al tauler de GoCD a http://192.168.1.1:8153. Per accedir al tauler de GoCD amb una connexió segura, accediu a https://192.168.1.1:8154. Obtindreu un error que mostra que els certificats no són vàlids. Podeu ignorar l'error amb seguretat, ja que els certificats estan signats automàticament. Per motius de seguretat, sempre hauríeu d'utilitzar el tauler mitjançant una connexió segura.
Abans de configurar una canalització nova, aneu a " Admin >> Server Configuration" des de la barra de navegació superior.
Introduïu l'URL del vostre lloc no segur al Site URLcamp " " i el lloc segur al Secure Site URLcamp " ".

A continuació, proporcioneu els detalls del vostre servidor SMTP per enviar notificacions per correu electrònic des de GoCD.
![Com instal·lar i configurar GoCD a CentOS 7 Com instal·lar i configurar GoCD a CentOS 7]()
Finalment, proporcioneu el camí cap a la ubicació on voleu emmagatzemar els artefactes. Si heu triat emmagatzemar els artefactes al mateix disc que el sistema operatiu, introduïu /opt/artifacts; si heu decidit connectar una unitat d'emmagatzematge de blocs, podeu introduir /mnt/artifacts.
A més, podeu configurar GoCD per eliminar automàticament els artefactes antics. Configureu la següent opció segons la mida del vostre disc. Tanmateix, l'opció d'eliminació automàtica no fa una còpia de seguretat dels vostres artefactes antics. Per fer una còpia de seguretat manualment i després suprimir els artefactes antics, desactiveu la supressió automàtica escollint l' Neveropció " " per a l' Auto delete old artifactsopció " ".
![Com instal·lar i configurar GoCD a CentOS 7 Com instal·lar i configurar GoCD a CentOS 7]()
Haureu de reiniciar el servidor GoCD perquè s'apliquin els nous canvis.
sudo systemctl restart go-server
Configura l'autenticació
De manera predeterminada, el tauler de control GoCD no està configurat per utilitzar cap tipus d'autenticació, però admet l'autenticació mitjançant un fitxer de contrasenya i LDAP. En aquest tutorial, configurarem l'autenticació basada en contrasenya.
Nota : Configurar l'autenticació és un pas opcional, però és molt recomanable per a servidors públics, com ara Vultr.
Instal·leu les eines d'Apache perquè puguem utilitzar l' htpasswdordre per crear un fitxer de contrasenya xifrat.
sudo yum -y install httpd-tools
Creeu un fitxer de contrasenyes amb l' htpasswdordre mitjançant el xifratge Bcrypt.
sudo htpasswd -B -c /etc/go/passwd_auth goadmin
Proporcioneu la contrasenya per a l'usuari dues vegades. Veureu la següent sortida.
[user@vultr ~]$ sudo htpasswd -B -c /etc/go/passwd_auth goadmin
New password:
Re-type new password:
Adding password for user goadmin
Podeu afegir tants usuaris com vulgueu fent servir la mateixa ordre anterior, però eliminant l' -copció. L' -copció substituirà el fitxer existent, substituint els usuaris antics per l'usuari nou.
sudo htpasswd -B /etc/go/passwd_auth gouser1
Des que hem creat el fitxer de contrasenyes, torneu a accedir al tauler de GoCD. Navegueu a " Admin >> Security >> Authorization Configurations" des de la barra de navegació superior. Feu clic al Addbotó i proporcioneu una identificació. Trieu " Password File Authentication Plugin for GoCD" per a l'identificador del connector i dirigiu el camí al fitxer de contrasenyes. Ara feu clic al Check Connectionbotó " " per verificar que GoCD pot utilitzar el fitxer de contrasenya per a l'autenticació.
![Com instal·lar i configurar GoCD a CentOS 7 Com instal·lar i configurar GoCD a CentOS 7]()
Finalment, deseu el mètode d'autenticació. Torneu a carregar el tauler i us tancarà automàticament. Ara veuràs una pantalla d'inici de sessió. Inicieu sessió amb les credencials creades anteriorment.
Haureu de promocionar l'usuari administrador manualment, en cas contrari, tots els usuaris tindran privilegis d'administrador. Navegueu a " Admin >> User Summary" des de la barra de navegació superior.
Ara seleccioneu l'usuari administrador que heu creat i feu clic al Rolesmenú desplegable " ". Promocioneu l'usuari a l'únic administrador seleccionant la Go System Administratorcasella de selecció " ".
![Com instal·lar i configurar GoCD a CentOS 7 Com instal·lar i configurar GoCD a CentOS 7]()
Per afegir els usuaris a GoCD creats al fitxer de contrasenyes, feu clic al ADDbotó " " i cerqueu l'usuari per afegir-los. Els usuaris també s'afegeixen automàticament al tauler de GoCD en el seu primer inici de sessió. Òbviament, perquè els usuaris iniciïn sessió, s'han d'afegir al fitxer de contrasenyes que hem creat anteriorment.
Protecció de GoCD amb Let's Encrypt SSL
By default, GoCD listens to ports 8153 and 8154 on secure connections. Though port 8154 provides a secure connection to the application, it also displays browser errors as it uses a self-signed certificate. In this section of the tutorial, we will install and secure Nginx with Let's Encrypt free SSL certificate. The Nginx web server will work as a reverse proxy to forward the incoming requests to GoCD's HTTP endpoint.
Install Nginx.
sudo yum -y install nginx
Start Nginx and enable it to automatically start at boot time.
sudo systemctl start nginx
sudo systemctl enable nginx
Install Certbot, which is the client application for Let's Encrypt CA.
sudo yum -y install certbot
Abans de poder sol·licitar certificats, haureu de permetre els ports 80i 443, o estàndard HTTPi HTTPSserveis, a través del tallafoc. A més, elimineu port 8153, que escolta les connexions no segures.
sudo firewall-cmd --zone=public --add-service=http --permanent
sudo firewall-cmd --zone=public --add-service=https --permanent
sudo firewall-cmd --zone=public --remove-port=8153/tcp --permanent
sudo firewall-cmd --reload
Nota : per obtenir certificats de Let's Encrypt CA, el domini per al qual s'han de generar els certificats s'ha d'apuntar cap al servidor. Si no, feu els canvis necessaris als registres DNS del domini i espereu que el DNS es propagui abans de tornar a fer la sol·licitud de certificat. Certbot verifica l'autoritat del domini abans de proporcionar els certificats.
Generar els certificats SSL.
sudo certbot certonly --webroot -w /usr/share/nginx/html -d gocd.example.com
És probable que els certificats generats s'emmagatzemin a /etc/letsencrypt/live/gocd.example.com/. El certificat SSL s'emmagatzemarà com a fullchain.pemi la clau privada com a privkey.pem.
Els certificats de Let's Encrypt caduquen en 90 dies, per la qual cosa es recomana configurar la renovació automàtica dels certificats mitjançant tasques cron.
Obriu el fitxer de treball cron.
sudo crontab -e
Afegiu la línia següent al final del fitxer.
30 5 * * * /usr/bin/certbot renew --quiet
El treball cron anterior s'executarà cada dia a les 5:30 del matí. Si el certificat ha de caducar, es renovarà automàticament.
Ara, canvieu el fitxer de configuració predeterminat de Nginx per treure la default_serverlínia.
sudo sed -i 's/default_server//g' /etc/nginx/nginx.conf
Creeu un fitxer de configuració nou per a la interfície web de GoCD.
sudo nano /etc/nginx/conf.d/gocd.conf
Omple el fitxer.
upstream gocd {
server 127.0.0.1:8153;
}
server {
listen 80 default_server;
server_name gocd.example.com;
return 301 https://$host$request_uri;
}
server {
listen 443 default_server;
server_name gocd.example.com;
ssl_certificate /etc/letsencrypt/live/gocd.example.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/gocd.example.com/privkey.pem;
ssl on;
ssl_session_cache builtin:1000 shared:SSL:10m;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_ciphers HIGH:!aNULL:!eNULL:!EXPORT:!CAMELLIA:!DES:!MD5:!PSK:!RC4;
ssl_prefer_server_ciphers on;
access_log /var/log/nginx/gocd.access.log;
location / {
proxy_pass http://gocd;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Host $http_host;
proxy_set_header X-NginX-Proxy true;
proxy_redirect off;
}
location /go {
proxy_pass http://gocd/go;
proxy_http_version 1.1;
proxy_set_header Upgrade websocket;
proxy_set_header Connection upgrade;
proxy_read_timeout 86400;
}
}
Comproveu si hi ha errors al nou fitxer de configuració.
sudo nginx -t
Si veieu la sortida següent, la configuració està lliure d'errors.
[user@vultr ~]$ sudo nginx -t
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful
Si heu rebut algun tipus d'error, assegureu-vos de comprovar el camí als certificats SSL. Reinicieu el servidor web Nginx per implementar el canvi de configuració.
sudo systemctl restart nginx
Ara podeu accedir al tauler de GoCD a https://gocd.example.com. Inicieu la sessió al vostre tauler amb les credencials d'administrador i navegueu a " Admin >> Server Configuration" des de la barra de navegació superior.
![Com instal·lar i configurar GoCD a CentOS 7 Com instal·lar i configurar GoCD a CentOS 7]()
Estableix " Site URL" i " Secure Site URL" a https://gocd.example.com. El port 8154encara ha de ser accessible a través del tallafoc perquè els agents remots es puguin connectar al servidor mitjançant port 8154, en cas que no es puguin connectar a través del HTTPport estàndard .
Instal·lació de l'agent GoCD
En l'entorn d'integració contínua de GoCD, els agents de GoCD són els treballadors responsables de l'execució de totes les tasques. Quan es detecta un canvi en la font, s'activa la canalització i els treballs s'assignen als treballadors disponibles per a l'execució. A continuació, l'agent executa la tasca i informa de l'estat final després de l'execució.
Per executar una canalització, cal configurar almenys un agent. Continueu amb la instal·lació de l'agent GoCD al servidor GoCD.
Com que ja hem importat el repositori GoCD al servidor, podem instal·lar directament Go Agent.
sudo yum install -y go-agent
Ara, inicieu el servidor GoCD i activeu-lo perquè s'iniciï automàticament en el moment de l'arrencada.
sudo systemctl start go-agent
sudo systemctl enable go-agent
L'agent GoCD que s'executa a l'host local s'habilita automàticament quan es detecta.