Как установить и настроить 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» из верхней панели навигации.

Теперь выберите администратора, которого вы создали, и нажмите « Roles». Продвиньте пользователя до единственного администратора, установив Go System Administratorфлажок « ».

Как установить и настроить GoCD в Ubuntu 16.04

Чтобы добавить пользователей в GoCD, созданных в файле паролей, нажмите кнопку « ADD» и найдите пользователя, чтобы добавить их. Пользователи также автоматически добавляются в панель управления GoCD при первом входе в систему. Очевидно, что для входа в систему пользователи должны быть добавлены в файл паролей, который мы создали ранее.

Защита GoCD с помощью Let's Encrypt SSL

По умолчанию GoCD прослушивает порты 8153 и 8154 защищенные соединения. Хотя порт 8154 обеспечивает безопасное соединение с приложением, он также отображает ошибки браузера, поскольку использует самозаверяющий сертификат. В этом разделе руководства мы установим и защитим Nginx с помощью бесплатного SSL-сертификата Let's Encrypt. Веб-сервер Nginx будет работать в качестве обратного прокси-сервера для пересылки входящих запросов в конечную HTTP точку GoCD .

Установите Nginx.

sudo apt -y install nginx

Запустите Nginx и включите его автоматический запуск во время загрузки.

sudo systemctl start nginx
sudo systemctl enable nginx

Добавьте хранилище Certbot.

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

Установите Certbot, который является клиентским приложением для 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

В среде непрерывной интеграции 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

Изучение 26 методов анализа больших данных: часть 1

Изучение 26 методов анализа больших данных: часть 1

Изучение 26 методов анализа больших данных: часть 1

6 невероятных фактов о Nintendo Switch

6 невероятных фактов о Nintendo Switch

Многие из вас знают Switch, который выйдет в марте 2017 года, и его новые функции. Для тех, кто не знает, мы подготовили список функций, которые делают «Switch» обязательным гаджетом.

Технические обещания, которые все еще не выполнены

Технические обещания, которые все еще не выполнены

Вы ждете, когда технологические гиганты выполнят свои обещания? проверить, что осталось недоставленным.

Функциональные возможности уровней эталонной архитектуры больших данных

Функциональные возможности уровней эталонной архитектуры больших данных

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

Как ИИ может вывести автоматизацию процессов на новый уровень?

Как ИИ может вывести автоматизацию процессов на новый уровень?

Прочтите это, чтобы узнать, как искусственный интеллект становится популярным среди небольших компаний и как он увеличивает вероятность их роста и дает преимущество перед конкурентами.

CAPTCHA: как долго она может оставаться жизнеспособным методом различения между человеком и ИИ?

CAPTCHA: как долго она может оставаться жизнеспособным методом различения между человеком и ИИ?

CAPTCHA стало довольно сложно решать пользователям за последние несколько лет. Сможет ли он оставаться эффективным в обнаружении спама и ботов в ближайшем будущем?

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

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

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

Телемедицина и удаленное здравоохранение: будущее уже здесь

Телемедицина и удаленное здравоохранение: будущее уже здесь

Что такое телемедицина, дистанционное здравоохранение и их влияние на будущее поколение? Это хорошее место или нет в ситуации пандемии? Прочтите блог, чтобы узнать мнение!

Вы когда-нибудь задумывались, как хакеры зарабатывают деньги?

Вы когда-нибудь задумывались, как хакеры зарабатывают деньги?

Возможно, вы слышали, что хакеры зарабатывают много денег, но задумывались ли вы когда-нибудь о том, как они зарабатывают такие деньги? Давайте обсудим.

Обновление дополнения к macOS Catalina 10.15.4 вызывает больше проблем, чем решает

Обновление дополнения к macOS Catalina 10.15.4 вызывает больше проблем, чем решает

Недавно Apple выпустила macOS Catalina 10.15.4, дополнительное обновление для исправления проблем, но похоже, что это обновление вызывает больше проблем, приводящих к поломке компьютеров Mac. Прочтите эту статью, чтобы узнать больше