Предуслови
Инсталирајте Јава
Инсталирајте ГоЦД
Конфигуришите Блоцк Стораге
Конфигуришите ГоЦД
Сетуп Аутхентицатион
Обезбеђивање ГоЦД-а помоћу Лет'с Енцрипт ССЛ
Инсталирање ГоЦД агента
ГоЦД је систем за континуирану испоруку и аутоматизацију отвореног кода. Омогућава вам да моделујете сложене токове рада користећи његово паралелно и секвенцијално извршење. Његова мапа тока вредности омогућава вам да лако визуализујете сложен ток посла са лакоћом. ГоЦД вам омогућава да лако упоредите две верзије и примените било коју верзију апликације коју желите. ГоЦД екосистем се састоји од ГоЦД сервера и ГоЦД агента. ГоЦД је одговоран за контролу свега, као што је покретање веб-базираног корисничког интерфејса и управљање и пружање послова агенту. Го агенти су одговорни за обављање послова и имплементације.
Предуслови
- Инстанца сервера Вултр Убунту 16.04 са најмање 2 ГБ РАМ-а.
- : Судо корисника .
- Име домена усмерено ка серверу.
За овај водич користићемо 192.168.1.1као јавну ИП адресу и gocd.example.com као име домена усмерено на Вултр инстанцу. Обавезно замените сва појављивања примера имена домена и ИП адресе стварним.
Ажурирајте свој основни систем користећи водич Како ажурирати Убунту 16.04 . Када се ваш систем ажурира, наставите са инсталирањем Јаве.
Инсталирајте Јава
ГоЦД захтева Јава верзију 8 и подржава и Орацле Јава и ОпенЈДК. Додајте Убунту спремиште за Орацле Јава 8.
sudo add-apt-repository --yes ppa:webupd8team/java
sudo apt update
Инсталирајте Орацле Јава.
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)
Поставите подразумевану путању за Јаву тако што ћете инсталирати следећи пакет.
sudo apt -y install oracle-java8-set-default
Можете да проверите да ли JAVA_HOMEје подешено покретањем.
echo $JAVA_HOME
Видећеш.
user@vultr:~$ echo $JAVA_HOME
/usr/lib/jvm/java-8-oracle
Ако уопште не видите никакав излаз, мораћете да се одјавите из тренутне љуске и поново се пријавите.
Инсталирајте ГоЦД
Инсталирајте ГоЦД-ово званично складиште у систем.
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
Инсталирајте ГоЦД сервер у свој систем.
sudo apt install -y go-server
Покрените ГоЦД и омогућите му да се аутоматски покреће при покретању.
sudo systemctl start go-server
sudo systemctl enable go-server
Пре него што приступимо ГоЦД контролној табли, хајде да направимо нови директоријум за чување артефаката. Артефакти се могу чувати на истом диску на којем су инсталирани оперативни систем и апликације. Алтернативно, можете да користите наменски диск или блок за складиштење за складиштење артефаката.
Ако желите да користите исти диск за складиштење артефаката, само направите нови директоријум и обезбедите власништво ГоЦД кориснику.
sudo mkdir /opt/artifacts
sudo chown -R go:go /opt/artifacts
ГоЦД софтвер препоручује да користите додатну партицију или драјв за чување артефаката. У континуираној платформи интеграције и испоруке, артефакти се генеришу врло често. Простор на диску се временом смањује када се нови артефакти континуирано генеришу. У некој фази, вашем систему ће понестати слободног простора на диску и услуге које раде на вашем систему ће отказати. Да бисте превазишли овај проблем, можете да прикључите нови Вултр блок за складиштење за складиштење артефаката. Ако и даље желите да се бавите складиштењем артефаката на истом диску, пређите на одељак „Конфигуришите ГоЦД“.
Поставите нови блок за складиштење и прикључите га на инстанцу ГоЦД сервера. Сада креирајте нову партицију на блок уређају за складиштење.
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
Обезбедите власништво над директоријумом ГоЦД кориснику.
sudo chown -R go:go /mnt/artifacts
Сада можете приступити ГоЦД контролној табли на http://192.168.1.1:8153. Да бисте приступили ГоЦД контролној табли на безбедној вези, приступите https://192.168.1.1:8154. Добићете грешку која показује да сертификати нису важећи. Можете безбедно да игноришете грешку јер су сертификати самопотписани. Из безбедносних разлога, увек треба да користите контролну таблу преко безбедне везе.
Пре него што подесите нови цевовод, идите на „ Admin >> Server Configuration“ са горње траке за навигацију.
Унесите УРЛ вашег незаштићеног сајта у поље " Site URL" и заштићеног сајта у поље " Secure Site URL".

Затим наведите детаље свог СМТП сервера да бисте слали обавештења путем е-поште са ГоЦД-а.

На крају, наведите путању до локације на којој желите да ускладиштите артефакте. Ако сте изабрали да складиштите артефакте на истом диску као и оперативни систем, унесите /opt/artifacts; ако сте изабрали да прикључите блок за складиштење, онда можете да унесете /mnt/artifacts.
Такође можете да конфигуришете ГоЦД да аутоматски брише старе артефакте. Конфигуришите следећу опцију према величини вашег диска. Међутим, опција аутоматског брисања не прави резервну копију ваших старих артефаката. Да бисте ручно направили резервну копију и затим избрисали старе артефакте, онемогућите аутоматско брисање тако што ћете изабрати Neverопцију " Auto delete old artifacts" за опцију " ".

Мораћете поново да покренете ГоЦД сервер да би се примениле нове промене.
sudo systemctl restart go-server
Сетуп Аутхентицатион
Подразумевано, ГоЦД контролна табла није конфигурисана да користи било коју врсту аутентификације, али подржава аутентификацију помоћу датотеке лозинке и ЛДАП-а. У овом водичу ћемо поставити аутентификацију засновану на лозинки.
Напомена : Подешавање аутентификације је опциони корак, али се топло препоручује за јавне сервере, као што је Вултр.
Инсталирајте Апацхе алате тако да можемо користити htpasswd команду за креирање шифроване датотеке лозинке.
sudo apt -y install apache2-utils
Креирајте датотеку лозинке помоћу htpasswd команде користећи Бцрипт енкрипцију.
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
Сада када смо креирали датотеку лозинке, поново приступите ГоЦД контролној табли. Идите на „ Admin >> Security >> Authorization Configurations“ са горње траке за навигацију. Кликните на Add дугме и унесите било који ИД. Изаберите „ Password File Authentication Plugin for GoCD“ за ИД додатка и усмерите путању до датотеке лозинке. Сада кликните на дугме " Check Connection" да бисте потврдили да ГоЦД може да користи датотеку лозинке за аутентификацију.

На крају, сачувајте метод аутентификације. Поново учитајте контролну таблу и она ће вас аутоматски одјавити. Сада ћете видети екран за пријаву. Пријавите се користећи раније креиране акредитиве.
Мораћете ручно да унапредите корисника администратора, иначе ће сви корисници имати администраторске привилегије. Идите на „ Admin >> User Summary“ са горње траке за навигацију.
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.

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
Напомена : Да бисте добили сертификате од Лет'с Енцрипт ЦА, домен за који ће се сертификати генерисати мора бити усмерен ка серверу. Ако није, извршите неопходне промене у ДНС записима домена и сачекајте да се ДНС пропагира пре него што поново поднесете захтев за сертификат. Цертбот проверава ауторитет домена пре пружања сертификата.
Генеришите ССЛ сертификате.
sudo certbot certonly --webroot -w /var/www/html -d gocd.example.com
Генерисани сертификати ће вероватно бити ускладиштени у /etc/letsencrypt/live/gocd.example.com/. ССЛ сертификат ће бити сачуван као, fullchain.pem а приватни кључ ће бити сачуван као privkey.pem.
Лет'с Енцрипт сертификати истичу за 90 дана, па се препоручује да подесите аутоматско обнављање сертификата користећи црон послове.
Отворите црон датотеку посла.
sudo crontab -e
Додајте следећи ред на крај датотеке.
30 5 * * * /usr/bin/certbot renew --quiet
Горњи црон посао ће се покретати сваког дана у 5:30 ујутро. Ако сертификат истекне, аутоматски ће се обновити.
Креирајте нову конфигурациону датотеку за ГоЦД веб интерфејс.
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
Поново покрените Нгинк веб сервер да бисте применили промену у конфигурацији.
sudo systemctl restart nginx
Сада можете приступити ГоЦД контролној табли на https://gocd.example.com. Пријавите се на своју контролну таблу користећи администраторске акредитиве и идите на „ Admin >> Server Configuration“ са горње траке за навигацију.

Поставите " Site URL" и " Secure Site URL" на https://gocd.example.com.
Инсталирање ГоЦД агента
У окружењу ГоЦД континуиране интеграције, ГоЦД агенти су радници који су одговорни за извршавање свих задатака. Када се открије промена у извору, цевовод се покреће и послови се додељују доступним радницима за извршење. Агент затим извршава задатак и извештава о коначном статусу након извршења.
Да бисте покренули цевовод, најмање један агент мора бити конфигурисан. Наставите да инсталирате ГоЦД агента на ГоЦД сервер.
Пошто смо већ увезли ГоЦД спремиште на сервер, можемо директно да инсталирамо Го Агент.
sudo apt install -y go-agent
Сада покрените ГоЦД сервер и омогућите му да се аутоматски покреће при покретању.
sudo systemctl start go-agent
sudo systemctl enable go-agent
ГоЦД агент који ради на локалном хосту је аутоматски омогућен када се открије.