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

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

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

  • Сървърна инстанция Vultr CentOS 7 с поне 1 GB RAM.
  • А потребителското Sudo .
  • Име на домейн, насочено към сървъра.

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

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

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

GoCD изисква Java версия 8 и поддържа както Oracle Java, така и OpenJDK. В този урок ще инсталираме Java 8 от OpenJDK.

OpenJDK може лесно да се инсталира, тъй като пакетът е наличен в YUMхранилището по подразбиране .

sudo yum -y install java-1.8.0-openjdk-devel

Ако Java е инсталирана правилно, тогава ще можете да проверите нейната версия.

java -version

Ще получите изход, подобен на следващия текст.

[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)

Преди да продължим по-нататък, ще трябва да настроим JAVA_HOMEи JRE_HOMEпроменливите на средата. Намерете абсолютния път на изпълнимия файл на Java във вашата система.

readlink -f $(which java)

Следният текст ще бъде изведен на вашия терминал.

[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

Сега задайте JAVA_HOMEи JRE_HOMEпроменливите на средата според пътя на директорията на 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

Забележка: Уверете се, че използвате пътя на Java, получен във вашата система. Пътят, използван в този урок, може да се промени, когато бъде пусната нова версия на Java 8.

Изпълнете bash_profileфайла.

source ~/.bash_profile

Сега можете да изпълните echo $JAVA_HOMEкомандата, за да се уверите, че променливата на средата е зададена.

[user@vultr ~]$ echo $JAVA_HOME
/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.151-1.b12.el7_4.x86_64

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

GoCD е написан на Java, следователно Java е единствената зависимост за стартиране на GoCD. GoCD може да се инсталира с помощта на YUM. Инсталирайте неговото официално хранилище в системата.

sudo curl https://download.gocd.org/gocd.repo -o /etc/yum.repos.d/gocd.repo

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

sudo yum 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 сървърен екземпляр. Сега създайте нов дял на блоковото устройство за съхранение.

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

Настройка на защитната стена

Променете конфигурацията на защитната стена, за да разрешите портове 8153и 8154през защитната стена. Порт 8153прослушва за незащитени връзки и порт 8154за защитени връзки.

sudo firewall-cmd --zone=public --add-port=8153/tcp --permanent
sudo firewall-cmd --zone=public --add-port=8154/tcp --permanent
sudo firewall-cmd --reload

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

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

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

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

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

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

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

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

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

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

sudo systemctl restart go-server

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

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

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

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

sudo yum -y install httpd-tools

Създайте файл с парола с 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

Since, 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 an ID. Choose "Password File Authentication Plugin for GoCD" for 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 на CentOS 7

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 на CentOS 7

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 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

Before you can request certificates, you will need to allow ports 80 and 443, or standard HTTP and HTTPS services, through the firewall. Also, remove port 8153, which listens to the unsecured connections.

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

Note: To obtain certificates from Let's Encrypt CA, the domain for which the certificates are to be generated must be pointed towards the server. If not, make the necessary changes to the DNS records of the domain and wait for the DNS to propagate before making the certificate request again. Certbot checks the domain authority before providing the certificates.

Generate the SSL certificates.

sudo certbot certonly --webroot -w /usr/share/nginx/html -d gocd.example.com

The generated certificates are likely to be stored in /etc/letsencrypt/live/gocd.example.com/. The SSL certificate will be stored as fullchain.pem and private key will be stored as privkey.pem.

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

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

sudo crontab -e

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

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

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

Сега променете конфигурационния файл по подразбиране на Nginx, за да премахнете default_serverреда.

sudo sed -i 's/default_server//g' /etc/nginx/nginx.conf

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

sudo nano /etc/nginx/conf.d/gocd.conf

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

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;
    }
  }

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

sudo nginx -t

Ако видите следния изход, конфигурацията е без грешки.

[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

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

sudo systemctl restart nginx

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

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

Задайте " Site URL" и " Secure Site URL" на https://gocd.example.com. Портът 8154все още трябва да бъде достъпен през защитната стена, така че отдалечените агенти да могат да се свързват със сървъра чрез порт 8154, в случай че не могат да се свържат през стандартния HTTPпорт.

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

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

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

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

sudo yum install -y go-agent

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

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

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


Инсталирайте Plesk на CentOS 7

Инсталирайте Plesk на CentOS 7

Използване на различна система? Plesk е собствен контролен панел за уеб хост, който позволява на потребителите да администрират своите лични и/или клиентски уебсайтове, бази данни

Как да инсталирате Squid Proxy на CentOS

Как да инсталирате Squid Proxy на CentOS

Squid е популярна, безплатна програма за Linux, която ви позволява да създадете уеб прокси за препращане. В това ръководство ще видите как да инсталирате Squid на CentOS, за да ви обърне

Как да инсталирате Lighttpd (LLMP стек) на CentOS 6

Как да инсталирате Lighttpd (LLMP стек) на CentOS 6

Въведение Lighttpd е форк на Apache, чиято цел е да бъде много по-малко ресурсоемка. Той е лек, откъдето идва и името му, и е доста лесен за използване. Инсталирайте

Конфигуриране на статична мрежа и IPv6 на CentOS 7

Конфигуриране на статична мрежа и IPv6 на CentOS 7

VULTR наскоро направи промени от своя страна и вече всичко трябва да работи добре от кутията с активиран NetworkManager. Ако желаете да деактивирате

Промяна на Icinga2 за използване на модел главен/клиент на CentOS 6 или CentOS 7

Промяна на Icinga2 за използване на модел главен/клиент на CentOS 6 или CentOS 7

Icinga2 е мощна система за наблюдение и когато се използва в модел главен-клиент, тя може да замени необходимостта от проверки на базата на NRPE. Главният клиент

Как да инсталирате Apache Cassandra 3.11.x на CentOS 7

Как да инсталирате Apache Cassandra 3.11.x на CentOS 7

Използване на различна система? Apache Cassandra е безплатна система за управление на база данни NoSQL с отворен код, която е проектирана да осигури мащабируемост, висока

Как да инсталирате Microweber на CentOS 7

Как да инсталирате Microweber на CentOS 7

Използване на различна система? Microweber е CMS и онлайн магазин с отворен код за плъзгане и пускане. Изходният код на Microweber се хоства на GitHub. Това ръководство ще ви покаже

Как да инсталирате Mattermost 4.1 на CentOS 7

Как да инсталирате Mattermost 4.1 на CentOS 7

Използване на различна система? Mattermost е самостоятелно хоствана алтернатива с отворен код на Slack SAAS услугата за съобщения. С други думи, с Mattermost, вие ca

Създаване на мрежа от сървъри на Minecraft с BungeeCord на Debian 8, Debian 9 или CentOS 7

Създаване на мрежа от сървъри на Minecraft с BungeeCord на Debian 8, Debian 9 или CentOS 7

Какво ви трябва Vultr VPS с поне 1 GB RAM. SSH достъп (с root/административни привилегии). Стъпка 1: Инсталиране на BungeeCord На първо място

Lets Encrypt на Plesk

Lets Encrypt на Plesk

Контролният панел на Plesk разполага с много приятна интеграция за Lets Encrypt. Lets Encrypt е един от единствените доставчици на SSL, които предоставят пълно сертификати

Позволява криптиране на cPanel

Позволява криптиране на cPanel

Lets Encrypt е сертифициращ орган, посветен на предоставянето на SSL сертификати безплатно. cPanel изгради чиста интеграция, така че вие ​​и вашият клиент

Как да инсталирате Concrete5 на CentOS 7

Как да инсталирате Concrete5 на CentOS 7

Използване на различна система? Concrete5 е CMS с отворен код, който предлага много отличителни и полезни функции за подпомагане на редакторите при лесното създаване на съдържание и

Как да инсталирате табло за преглед на CentOS 7

Как да инсталирате табло за преглед на CentOS 7

Използване на различна система? Review Board е безплатен инструмент с отворен код за преглед на изходен код, документация, изображения и много други. Това е уеб базиран софтуер

Настройте HTTP удостоверяване с Nginx на CentOS 7

Настройте HTTP удостоверяване с Nginx на CentOS 7

В това ръководство ще научите как да настроите HTTP удостоверяване за уеб сървър на Nginx, работещ на CentOS 7. Изисквания За да започнете, ще ви трябва

Как да инсталирате YOURLS на CentOS 7

Как да инсталирате YOURLS на CentOS 7

YOURLS (Your Own URL Shortener) е приложение за съкращаване на URL адреси и анализ на данни с отворен код. В тази статия ще разгледаме процеса на инсталиране

Как да инсталирате и конфигурирате ArangoDB на CentOS 7

Как да инсталирате и конфигурирате ArangoDB на CentOS 7

Използване на различна система? Въведение ArangoDB е NoSQL база данни с отворен код с гъвкав модел на данни за документи, графики и ключ-стойности. то е

Използване на Etckeeper за контрол на версиите на /etc

Използване на Etckeeper за контрол на версиите на /etc

Въведение Директорията /etc/ играе критична роля в начина, по който функционира една Linux система. Причината за това е, че почти всяка системна конфигурация

Защо трябва да използвате SSHFS? Как да монтирате отдалечена файлова система със SSHFS на CentOS 6

Защо трябва да използвате SSHFS? Как да монтирате отдалечена файлова система със SSHFS на CentOS 6

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

Настройване на сървър на Half Life 2 на CentOS 6

Настройване на сървър на Half Life 2 на CentOS 6

Този урок ще обхване процеса на инсталиране на сървър за игри Half Life 2 на CentOS 6 System. Стъпка 1: Инсталиране на предпоставките За да настроите ou

Как да инсталирате Laravel GitScrum на CentOS 7

Как да инсталирате Laravel GitScrum на CentOS 7

Laravel GitScrum или GitScrum е инструмент за производителност с отворен код, предназначен да помогне на екипите за разработка да внедрят методологията на Scrum по подобен начин.

Възходът на машините: Реални приложения на 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 машини. Прочетете тази статия, за да научите повече