Як встановити та налаштувати GoCD в Ubuntu 16.04

GoCD — це система безперервної доставки та автоматизації з відкритим вихідним кодом. Він дозволяє моделювати складні робочі процеси, використовуючи його паралельне та послідовне виконання. Його карта потоку цінності дозволяє легко візуалізувати складний робочий процес. GoCD дозволяє легко порівнювати дві збірки та розгортати будь-яку версію програми, яку ви бажаєте. Екосистема GoCD складається з сервера GoCD та агента GoCD. GoCD відповідає за контроль всього, наприклад запуск веб-інтерфейсу користувача та керування та надання завдань агенту. Агенти Go відповідають за виконання завдань і розгортання.

Передумови

  • Примірник сервера Vultr Ubuntu 16.04 з принаймні 2 Гб оперативної пам’яті.
  • Користувач 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

Тепер, коли ми створили файл паролів, знову відкрийте панель інструментів GoCD. Перейдіть до " Admin >> Security >> Authorization Configurations" на верхній панелі навігації. Натисніть Add кнопку та введіть будь-який ідентифікатор. Виберіть « Password File Authentication Plugin for GoCD« для ідентифікатора плагіна та вкажіть шлях до файлу пароля. Тепер натисніть кнопку " Check Connection", щоб переконатися, що GoCD може використовувати файл паролів для аутентифікації.

Як встановити та налаштувати GoCD в Ubuntu 16.04

Нарешті, збережіть метод аутентифікації. Перезавантажте інформаційну панель, і вона автоматично виведе вас із системи. Зараз ви побачите екран входу. Увійдіть, використовуючи облікові дані, створені раніше.

Вам потрібно буде підвищити користувача адміністратора вручну, інакше всі користувачі матимуть права адміністратора. Перейдіть до " 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.

Як встановити та налаштувати 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, запущений на локальному хості, автоматично вмикається при виявленні.


Leave a Comment

Повстання машин: застосування ШІ в реальному світі

Повстання машин: застосування ШІ в реальному світі

Штучний інтелект не в майбутньому, він тут прямо в сьогоденні У цьому блозі Прочитайте, як програми штучного інтелекту вплинули на різні сектори.

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. Прочитайте цю статтю, щоб дізнатися більше