Как да инсталирате и конфигурирате GoCD на Ubuntu 16.04

GoCD е система за непрекъсната доставка и автоматизация с отворен код. Тя ви позволява да моделирате сложни работни потоци, като използвате паралелното и последователно изпълнение. Неговата карта на потока на стойността ви позволява лесно да визуализирате сложен работен процес с лекота. GoCD ви позволява лесно да сравнявате две компилации и да разгръщате всяка версия на приложението, което искате. Екосистемата GoCD се състои от GoCD сървър и GoCD агент. GoCD отговаря за контрола на всичко, като например стартиране на уеб-базиран потребителски интерфейс и управление и предоставяне на работни места на агента. Агентите на Go са отговорни за изпълнението на заданията и внедряването.

Предпоставки

  • Vultr Ubuntu 16.04 сървърен екземпляр с поне 2 GB RAM.
  • А потребителското Sudo .
  • Име на домейн, насочено към сървъра.

За този урок ще използваме 192.168.1.1като публичен IP адрес и gocd.example.com като име на домейн, насочено към екземпляра Vultr. Моля, не забравяйте да замените всички срещания на примерното име на домейн и IP адрес с действителния.

Актуализирайте базовата си система с помощта на ръководството Как да актуализирате Ubuntu 16.04 . След като вашата система бъде актуализирана, продължете да инсталирате Java.

Инсталирайте Java

GoCD изисква Java версия 8 и поддържа както Oracle Java, така и OpenJDK. Добавете Ubuntu хранилище за Oracle Java 8.

sudo add-apt-repository --yes ppa:webupd8team/java
sudo apt update

Инсталирайте Oracle Java.

sudo apt -y install oracle-java8-installer

Проверете версията.

java -version

Ще видите следния изход.

user@vultr:~$ java -version
java version "1.8.0_161"
Java(TM) SE Runtime Environment (build 1.8.0_161-b12)
Java HotSpot(TM) 64-Bit Server VM (build 25.161-b12, mixed mode)

Задайте пътя по подразбиране за Java, като инсталирате следния пакет.

sudo apt -y install oracle-java8-set-default

Можете да проверите дали JAVA_HOMEе зададено, като стартирате.

echo $JAVA_HOME

Ще видиш.

user@vultr:~$ echo $JAVA_HOME
/usr/lib/jvm/java-8-oracle

Ако изобщо не виждате изход, ще трябва да излезете от текущата обвивка и да влезете отново.

Инсталирайте GoCD

Инсталирайте официалното хранилище на GoCD в системата.

echo "deb https://download.gocd.org /" | sudo tee /etc/apt/sources.list.d/gocd.list
curl https://download.gocd.org/GOCD-GPG-KEY.asc | sudo apt-key add -
sudo apt update

Инсталирайте GoCD сървъра във вашата система.

sudo apt install -y go-server

Стартирайте GoCD и го активирайте да стартира автоматично при стартиране.

sudo systemctl start go-server
sudo systemctl enable go-server

Преди да влезем в таблото за управление на GoCD, нека създадем нова директория за съхраняване на артефактите. Артефактите могат да се съхраняват на същия диск, в който са инсталирани операционната система и приложенията. Като алтернатива можете да използвате специален диск или блоково устройство за съхранение, за да съхранявате артефактите.

Ако искате да използвате същия диск за съхраняване на артефактите, просто създайте нова директория и предоставете собствеността на потребителя на GoCD.

sudo mkdir /opt/artifacts
sudo chown -R go:go /opt/artifacts

Конфигуриране на блоково съхранение

Софтуерът GoCD препоръчва да използвате допълнителен дял или устройство за съхранение на артефактите. В една непрекъсната платформа за интеграция и доставка артефактите се генерират много често. Дисковото пространство намалява с времето, когато непрекъснато се генерират нови артефакти. На някакъв етап вашата система ще свърши свободното дисково пространство и услугите, работещи на вашата система, ще се провалят. За да преодолеете този проблем, можете да прикачите ново устройство за съхранение на блок Vultr, за да съхранявате артефактите. Ако все пак искате да продължите със съхранението на артефакти на същото устройство, преминете към секцията „Конфигуриране на GoCD“.

Разположете ново блоково устройство за съхранение и го прикачете към вашия GoCD сървърен екземпляр. Сега създайте нов дял на блоковото устройство за съхранение.

sudo parted -s /dev/vdb mklabel gpt
sudo parted -s /dev/vdb unit mib mkpart primary 0% 100%

Създайте файловата система на новия диск.

sudo mkfs.ext4 /dev/vdb1

Монтирайте блоковото устройство за съхранение.

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

Сега стартирайте dfи ще видите новото блоково устройство за съхранение, монтирано на /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

Предоставете собствеността върху директорията на потребителя на GoCD.

sudo chown -R go:go /mnt/artifacts

Конфигурирайте GoCD

Сега можете да получите достъп до таблото за управление на GoCD на http://192.168.1.1:8153. За достъп до таблото за управление на GoCD при защитена връзка, отворете https://192.168.1.1:8154. Ще получите грешка, показваща, че сертификатите не са валидни. Можете спокойно да игнорирате грешката, тъй като сертификатите са самоподписани. От съображения за сигурност винаги трябва да използвате таблото за управление през защитена връзка.

Преди да настроите нов тръбопровод, отидете до " Admin >> Server Configuration" от горната лента за навигация.

Въведете URL адреса на вашия незащитен сайт в полето " Site URL" и защитения сайт в полето " Secure Site URL".

Как да инсталирате и конфигурирате GoCD на Ubuntu 16.04

След това предоставете подробности за вашия SMTP сървър, за да изпращате известия по имейл от GoCD.

Как да инсталирате и конфигурирате GoCD на Ubuntu 16.04

Накрая посочете пътя до мястото, където искате да съхранявате артефактите. Ако сте избрали да съхранявате артефактите на същия диск като операционната система, въведете /opt/artifacts; ако сте избрали да прикачите блоково устройство за съхранение, тогава можете да въведете /mnt/artifacts.

Можете също да конфигурирате GoCD да изтрива автоматично старите артефакти. Конфигурирайте следващата опция според размера на вашия диск. Въпреки това, опцията за автоматично изтриване не прави резервно копие на вашите стари артефакти. За да направите ръчно резервно копие и след това да изтриете старите артефакти, деактивирайте автоматичното изтриване, като изберете опцията " Never" за опцията " Auto delete old artifacts".

Как да инсталирате и конфигурирате GoCD на Ubuntu 16.04

Ще трябва да рестартирате GoCD сървъра, за да се приложат новите промени.

sudo systemctl restart go-server

Настройка на удостоверяване

По подразбиране таблото за управление на GoCD не е конфигурирано да използва какъвто и да е вид удостоверяване, но поддържа удостоверяване с помощта на файл с парола и LDAP. В този урок ще настроим удостоверяване, базирано на парола.

Забележка : Настройването на удостоверяване е незадължителна стъпка, но силно се препоръчва за публични сървъри, като Vultr.

Инсталирайте инструментите на Apache, за да можем да използваме htpasswd командата, за да създадем криптиран файл с парола.

sudo apt -y install apache2-utils

Създайте файл с парола с htpasswd командата, използвайки Bcrypt криптиране.

sudo htpasswd -B -c /etc/go/passwd_auth goadmin

Предоставете паролата за потребителя два пъти. Ще видите следния изход.

[user@vultr ~]$ sudo htpasswd -B -c /etc/go/passwd_auth goadmin
New password:
Re-type new password:
Adding password for user goadmin

Можете да добавите толкова потребители, колкото искате, като използвате същата команда по-горе, но премахнете -c опцията. В -c опция ще замени съществуващия файл, подмяна на стари потребители с новия потребител.

sudo htpasswd -B /etc/go/passwd_auth gouser1

Now that we have created the password file, access the GoCD dashboard again. Navigate to "Admin >> Security >> Authorization Configurations" from the top navigation bar. Click on the Add button and provide any ID. Choose "Password File Authentication Plugin for GoCD" for the plugin ID and direct the path to the password file. Now click on the "Check Connection" button to verify that GoCD can use the password file for authentication.

Как да инсталирате и конфигурирате GoCD на Ubuntu 16.04

Finally, save the authentication method. Reload the dashboard and it will automatically log you out. You will see a login screen now. Log in using the credentials created earlier.

You will need to promote the administrator user manually, otherwise, all the users will have administrator privileges. Navigate to "Admin >> User Summary" from the top navigation bar.

Now select the admin user you've created and click on the "Roles" drop-down. Promote the user to the only administrator by selecting the "Go System Administrator" checkbox.

Как да инсталирате и конфигурирате GoCD на Ubuntu 16.04

To add the users in GoCD created in the password file, click on the "ADD" button and search for the user to add them. Users are also automatically added to the GoCD dashboard on their first login. Obviously, for users to log in, they must be added to the password file we have created earlier.

Securing GoCD with 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 a 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 apt -y install nginx

Start Nginx and enable it to automatically start at boot time.

sudo systemctl start nginx
sudo systemctl enable nginx

Add the Certbot repository.

sudo add-apt-repository --yes ppa:certbot/certbot
sudo apt-get update

Install Certbot, which is the client application for Let's Encrypt CA.

sudo apt -y install certbot

Забележка : За да получите сертификати от Let's Encrypt CA, домейнът, за който трябва да се генерират сертификатите, трябва да бъде насочен към сървъра. Ако не, направете необходимите промени в DNS записите на домейна и изчакайте DNS да се разпространи, преди да направите отново заявка за сертификат. Certbot проверява авторитета на домейна, преди да предостави сертификатите.

Генерирайте SSL сертификати.

sudo certbot certonly --webroot -w /var/www/html -d gocd.example.com

Генерираните сертификати вероятно ще се съхраняват в /etc/letsencrypt/live/gocd.example.com/. SSL сертификатът ще се съхранява като, fullchain.pem а частният ключ ще се съхранява като privkey.pem.

Срокът на валидност на сертификатите Let's Encrypt изтича след 90 дни, така че се препоръчва да настроите автоматично подновяване на сертификатите с помощта на cron задания.

Отворете файла за задание на cron.

sudo crontab -e

Добавете следния ред в края на файла.

30 5 * * * /usr/bin/certbot renew --quiet

Горната задача на cron ще се изпълнява всеки ден в 5:30 сутринта. Ако срокът на валидност на сертификата изтича, той автоматично ще се поднови.

Създайте нов конфигурационен файл за уеб интерфейса на GoCD.

sudo nano /etc/nginx/sites-available/gocd

Попълнете файла.

upstream gocd {
server 127.0.0.1:8153;
}

server {
    listen 80;
    server_name gocd.example.com;
    return 301 https://$host$request_uri;
}

server {
    listen 443;
    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;
    }
  }

Активирайте конфигурационния файл.

sudo ln -s /etc/nginx/sites-available/gocd /etc/nginx/sites-enabled/gocd

Рестартирайте уеб сървъра на Nginx, за да приложите промяната в конфигурацията.

sudo systemctl restart nginx

Сега можете да получите достъп до таблото за управление на GoCD на адрес https://gocd.example.com. Влезте в таблото си за управление, като използвате администраторските идентификационни данни и отидете до „ Admin >> Server Configuration“ от горната лента за навигация.

Как да инсталирате и конфигурирате GoCD на Ubuntu 16.04

Задайте " Site URL" и " Secure Site URL" на https://gocd.example.com.

Инсталиране на GoCD Agent

В средата за непрекъсната интеграция на GoCD агентите на GoCD са работниците, които отговарят за изпълнението на всички задачи. Когато се открие промяна в източника, тръбопроводът се задейства и заданията се възлагат на налични работници за изпълнение. След това агентът изпълнява задачата и докладва окончателното състояние след изпълнение.

За да стартирате конвейер, трябва да бъде конфигуриран поне един агент. Продължете да инсталирате GoCD агента на GoCD сървъра.

Тъй като вече сме импортирали хранилището на GoCD в сървъра, можем директно да инсталираме Go Agent.

sudo apt install -y go-agent

Сега стартирайте GoCD сървъра и го активирайте да стартира автоматично при стартиране.

sudo systemctl start go-agent
sudo systemctl enable go-agent

GoCD агентът, работещ на локалния хост, се активира автоматично, когато бъде открит.


Възходът на машините: Реални приложения на AI

Възходът на машините: Реални приложения на AI

Изкуственият интелект не е в бъдещето, тук е точно в настоящето. В този блог Прочетете как приложенията за изкуствен интелект са повлияли на различни сектори.

DDOS атаки: кратък преглед

DDOS атаки: кратък преглед

Вие също сте жертва на DDOS атаки и сте объркани относно методите за превенция? Прочетете тази статия, за да разрешите вашите запитвания.

Чудили ли сте се как хакерите печелят пари?

Чудили ли сте се как хакерите печелят пари?

Може би сте чували, че хакерите печелят много пари, но чудили ли сте се някога как печелят такива пари? нека обсъдим.

Революционни изобретения на Google, които ще улеснят живота ви.

Революционни изобретения на Google, които ще улеснят живота ви.

Искате ли да видите революционни изобретения на Google и как тези изобретения промениха живота на всяко човешко същество днес? След това прочетете в блога, за да видите изобретенията на Google.

Friday Essential: Какво се случи с колите, задвижвани от изкуствен интелект?

Friday Essential: Какво се случи с колите, задвижвани от изкуствен интелект?

Концепцията за самоуправляващи се автомобили да тръгват по пътищата с помощта на изкуствен интелект е мечта, която имаме от известно време. Но въпреки няколкото обещания, те не се виждат никъде. Прочетете този блог, за да научите повече…

Технологична сингулярност: далечно бъдеще на човешката цивилизация?

Технологична сингулярност: далечно бъдеще на човешката цивилизация?

Тъй като науката се развива с бързи темпове, поемайки много от нашите усилия, рискът да се подложим на необяснима сингулярност също нараства. Прочетете какво може да означава сингулярността за нас.

Еволюция на съхранението на данни – инфографика

Еволюция на съхранението на данни – инфографика

Методите за съхранение на данните може да се развиват от раждането на данните. Този блог обхваща развитието на съхранението на данни на базата на инфографика.

Функционалности на референтните архитектурни слоеве за големи данни

Функционалности на референтните архитектурни слоеве за големи данни

Прочетете блога, за да разберете различни слоеве в архитектурата на големи данни и техните функционалности по най-простия начин.

6 невероятни предимства от наличието на интелигентни домашни устройства в живота ни

6 невероятни предимства от наличието на интелигентни домашни устройства в живота ни

В този дигитално задвижван свят устройствата за интелигентен дом се превърнаха в решаваща част от живота. Ето няколко невероятни предимства на интелигентните домашни устройства за това как те правят живота ни струващ и по-опростен.

Актуализацията на допълнението на macOS Catalina 10.15.4 причинява повече проблеми, отколкото решава

Актуализацията на допълнението на macOS Catalina 10.15.4 причинява повече проблеми, отколкото решава

Наскоро Apple пусна macOS Catalina 10.15.4 допълнителна актуализация за отстраняване на проблеми, но изглежда, че актуализацията причинява повече проблеми, водещи до блокиране на mac машини. Прочетете тази статия, за да научите повече