Инсталирајте Плеск на ЦентОС 7
Користите другачији систем? Плеск је власничка контролна табла веб хоста која омогућава корисницима да управљају својим личним и/или клијентским веб локацијама, базама података
Буилдбот је алат за континуирану интеграцију отвореног кода заснован на Питхон-у за аутоматизацију изградње, тестирања и примене софтвера. Буилдбот се састоји од једног или више Буилдбот мајстора и одређеног броја радника. Буилдбот мастер или Буилдмастер има централну команду система. Он је одговоран за управљање окружењем за изградњу, радницима и доноси све одлуке о слању послова радницима. Буилдмастер открива промене у спремишту кода и шаље команде или послове радницима да их изврше. Радници извршавају послове и враћају резултат Буилдмастер-у. Буилдмастер затим обавештава програмере преко више подржаних канала. У овом водичу ћемо инсталирати Буилдбот мастер и воркер на ЦентОС 7. Такође ћемо конфигурисати аутентификацију и Нгинк као безбедни реверзни прокси.
За овај водич користићемо 192.168.1.1
као јавну ИП адресу и ci.example.com
као име домена усмерено на Вултр инстанцу. Обавезно замените сва појављивања примера имена домена и ИП адресе стварним.
Ажурирајте свој основни систем помоћу водича Како да ажурирате ЦентОС 7 . Када је ваш систем ажуриран, наставите да инсталирате ПостгреСКЛ.
Инсталирајте Пип, који је менаџер пакета за Питхон.
sudo yum -y install epel-release
sudo yum -y install python-pip gcc python-devel git
sudo pip install --upgrade pip
Буилдбот подржава више типова сервера база података као што су МиСКЛ, ПостгреСКЛ и СКЛите. У овом водичу ћемо користити ПостгреСКЛ за хостовање Буилдбот сервера базе података.
ПостгреСКЛ је објектно-релациони систем базе података, познат по својој стабилности и брзини. Подразумевано yum
спремиште садржи стару верзију ПостгреСКЛ-а, па додајте ПостгреСКЛ спремиште.
sudo yum -y install https://download.postgresql.org/pub/repos/yum/10/redhat/rhel-7-x86_64/pgdg-centos10-10-1.noarch.rpm
Инсталирајте ПостгреСКЛ сервер базе података.
sudo yum -y install postgresql10-server postgresql10-contrib postgresql10
Иницијализујте базу података.
sudo /usr/pgsql-10/bin/postgresql-10-setup initdb
Покрените ПостгреСКЛ сервер и омогућите му да се аутоматски покреће при покретању.
sudo systemctl start postgresql-10
sudo systemctl enable postgresql-10
Промените лозинку за подразумеваног корисника ПостгреСКЛ.
sudo passwd postgres
Пријавите се као ПостгреСКЛ корисник.
sudo su - postgres
Креирајте новог ПостгреСКЛ корисника за Буилдбот.
createuser bb_user
Можете користити било које корисничко име уместо bb_user
, ако желите. ПостгреСКЛ обезбеђује psql
љуску за покретање упита у бази података. Пређите на ПостгреСКЛ шкољку.
psql
Поставите лозинку за новокреираног корисника.
ALTER USER bb_user WITH ENCRYPTED password 'DBPassword';
Замените DBPassword
безбедном лозинком.
Креирајте нову базу података за инсталацију Буилдбота.
CREATE DATABASE buildbot OWNER bb_user;
Изађите из psql
љуске.
\q
Пребаците се на sudo
корисника.
exit
Уредите pg_hba.conf
датотеку да бисте омогућили аутентификацију засновану на МД5.
sudo nano /var/lib/pgsql/10/data/pg_hba.conf
Пронађите следеће редове и промените вредности peer
и ident
, у METHOD
колони, у trust
и md5
, респективно.
# TYPE DATABASE USER ADDRESS METHOD
# "local" is for Unix domain socket connections only
local all all peer
# IPv4 local connections:
host all all 127.0.0.1/32 ident
# IPv6 local connections:
host all all ::1/128 ident
Након ажурирања, конфигурација ће изгледати као следећи текст.
# TYPE DATABASE USER ADDRESS METHOD
# "local" is for Unix domain socket connections only
local all all trust
# IPv4 local connections:
host all all 127.0.0.1/32 md5
# IPv6 local connections:
host all all ::1/128 md5
Сачувајте датотеку и изађите из уређивача. Инсталирајте ПостгреСКЛ адаптер базе података за Питхон.
sudo pip install psycopg2
Поново покрените ПостгреСКЛ да би промене ступиле на снагу.
sudo systemctl restart postgresql-10
Инсталирајте Буилдбот користећи Пип.
sudo pip install 'buildbot[bundle]' pyopenssl service_identity
Горња команда ће инсталирати Буилдбот заједно са buildbot-www
, buildbot-worker
, и неколико веб додатака као што су buildbot-waterfall-view
.
Да бисте били сигурни да је Буилдбот успешно инсталиран, можете да проверите верзију Буилдбота.
buildbot --version
Резултат треба да личи на следећи текст.
[user@vultr ~]$ buildbot --version
Buildbot version: 0.9.15.post1
Twisted version: 17.9.0
Измените правила заштитног зида да бисте дозволили порт 8010
. Буилдбот користи овај порт за слушање веб захтева.
sudo firewall-cmd --zone=public --add-port=8010/tcp --permanent
sudo firewall-cmd --reload
Креирајте новог непривилегованог корисника да бисте покренули главне и радне процесе Буилдбот-а. Не препоручује се покретање Буилдбот мастер услуга као root
корисник.
sudo adduser buildbot
sudo passwd buildbot
Пријавите се као новокреирани buildbot
корисник.
sudo su - buildbot
Подесите Буилдбот мастер у /home/buildbot/master
директоријуму. Овај директоријум ће садржати конфигурацију, статус и датотеке евиденције сваке верзије.
buildbot create-master --db 'postgresql://bb_user:DBPassword@localhost/buildbot' ~/master
Обавезно замените акредитиве корисника базе података у горњој команди.
Напомена: Ако желите да користите СКЛите базу података уместо ПостгреСКЛ, једноставно изоставите --db 'postgresql://bb_user:DBpassword@localhost/buildbot'
опцију. СКЛите база података ће бити креирана у истом директоријуму.
Горња команда ће креирати ~/master
директоријум за складиштење Буилдмастер датотека. Такође ће записати податке у ПостгреСКЛ базу података. Добићете следећи излаз.
[buildbot@vultr ~]$ buildbot create-master --db 'postgresql://bb_user:DBPassword@localhost/buildbot' ~/master
mkdir /home/buildbot/master
creating /home/buildbot/master/master.cfg.sample
creating database (postgresql://bb_user:DBPassword@localhost/buildbot)
buildmaster configured in /home/buildbot/master
Копирајте узорак конфигурационе датотеке у конфигурациону датотеку уживо.
cp ~/master/master.cfg.sample ~/master/master.cfg
Уредите конфигурациону датотеку.
nano ~/master/master.cfg
Пронађите следеће редове.
c['workers'] = [worker.Worker("example-worker", "pass")]
...
c['builders'].append(
util.BuilderConfig(name="runtests",
workernames=["example-worker"],
factory=factory))
...
c['title'] = "Hello World CI"
c['titleURL'] = "https://buildbot.github.io/hello-world/"
...
c['buildbotURL'] = "http://localhost:8010/"
...
c['db'] = {
'db_url' : "postgresql://bb_user:DBpassword@localhost/buildbot",
}
Горња конфигурација има унос за пример радника. Изменићемо унос узорка за радника на коме ћемо радити localhost
. Промените име example-worker
у било које погодно име за localhost
радника и промените pass
у неку другу лозинку. Забележите име и лозинку радника јер ћемо то захтевати касније у водичу. Промените име радника на листи градитеља. Промените назив апликације и УРЛ пројекта према вашим потребама.
Change the Buildbot URL from localhost
to your actual domain name or public IP address. Also, verify that the database information in the configuration file matches your actual database credentials.
At the end of the file, add c['buildbotNetUsageData'] = None
. This parameter will disable sending the software version information and plugin usage details to the developers. However, to enable sending the uses information, change the option to Full
.
The configuration should look like the following text.
c['workers'] = [worker.Worker("localhost-worker", "Password123")]
...
c['builders'].append(
util.BuilderConfig(name="runtests",
workernames=["localhost-worker"],
factory=factory))
...
c['title'] = "My Application CI"
c['titleURL'] = "https://example.com/my-app"
...
c['buildbotURL'] = "http://192.168.1.1:8010/"
...
c['db'] = {
'db_url' : "postgresql://bb_user:DBpassword@localhost/buildbot",
}
...
c['buildbotNetUsageData'] = None
Save the file and exit the editor. Check the configuration file for errors.
buildbot checkconfig ~/master
If the configuration file has no errors, you will see following output.
[buildbot@vultr ~]$ buildbot checkconfig ~/master
Config file is good!
Now that everything is configured correctly, you can start the Buildbot master.
buildbot start ~/master
You will see the following output.
[buildbot@vultr ~]$ buildbot start ~/master
Following twistd.log until startup finished..
The buildmaster appears to have (re)started correctly.
Now that the Buildbot master has started correctly, the web user interface is accessible at http://192.168.1.1:8010
. You should see the following Buildbot interface.
Since we have already modified the worker configuration in ~/master/master.cfg
, we can proceed to create a new worker.
buildbot-worker create-worker ~/worker localhost localhost-worker Password123
Make sure that you use the exact same worker name and password as mentioned in ~/master/master.cfg
file. If there's a mismatch in worker name or password, the worker will not be able to connect to the Buildbot master. You will see the following output upon successful execution.
[buildbot@vultr ~]$ buildbot-worker create-worker ~/worker localhost example-worker pass
mkdir /home/buildbot/worker
mkdir /home/buildbot/worker/info
Creating info/admin, you need to edit it appropriately.
Creating info/host, you need to edit it appropriately.
Not creating info/access_uri - add it if you wish
Please edit the files in /home/buildbot/worker/info appropriately.
worker configured in /home/buildbot/worker
Information about the worker is stored in the /info
directory. Edit the administrative information about the developer.
nano ~/worker/info/admin
Replace the example name with your actual name and email.
Your Name <[email protected]>
Now, open the file containing information about the host.
nano ~/worker/info/host
Replace the example instruction with the actual information about the host system.
Localhost, CentOS 7
The worker admin and host information is only used to tell the users about the system. You can also add additional information about the system such as Buildbot version and Twisted version.
Start the worker.
buildbot-worker start ~/worker
The output will look like the following text.
[buildbot@vultr ~]$ buildbot-worker start ~/worker
Following twistd.log until startup finished..
The buildbot-worker appears to have (re)started correctly.
To check if the worker is registered, head to the web interface of Buildbot and navigate to Builds >> Workers
from the left navigation. You should see that the worker is up and ready to build.
To run a sample build, to check if the Buildbot worker is running successfully, navigate to Builds >> Builders
. Click on the runtests
builder name to open the builder interface and click on the Force
button to force a build. Provide your name and click on the Start Build
button to start the build. Since it is a sample build test to check the Buildbot environment, it will finish in a couple of seconds. You will get a success message and the build result.
Although the Buildbot master and worker can be easily started using the commands above, it is recommended to use Systemd units to run and manage the Buildbot services. This will ensure that they are automatically started on system restart and failures.
Note: Switch to the sudo
user again by running either exit
or su <username>
. From now on all the commands need to be executed by the sudo
user.
Stop the running Buildbot worker and master service.
sudo su buildbot -c "buildbot stop /home/buildbot/master"
sudo su buildbot -c "buildbot-worker stop ~/worker"
Create a new Systemd unit file for the Buildbot master.
sudo nano /etc/systemd/system/buildbot.service
Populate the file.
[Unit]
Description=BuildBot master service
After=network.target
[Service]
Type=forking
User=buildbot
Group=buildbot
WorkingDirectory=/home/buildbot/master
ExecStart=/usr/bin/buildbot start
ExecStop=/usr/bin/buildbot stop
ExecReload=/usr/bin/buildbot restart
[Install]
WantedBy=multi-user.target
Start the Buildbot master and enable it to automatically start at boot time.
sudo systemctl start buildbot
sudo systemctl enable buildbot
Create a new Systemd unit file for the Buildbot worker.
sudo nano /etc/systemd/system/buildbot-worker.service
Populate the file.
[Unit]
Description=BuildBot worker service
After=network.target
[Service]
Type=forking
User=buildbot
Group=buildbot
WorkingDirectory=/home/buildbot/worker
ExecStart=/usr/bin/buildbot-worker start
ExecStop=/usr/bin/buildbot-worker stop
ExecReload=/usr/bin/buildbot-worker restart
[Install]
WantedBy=multi-user.target
Start the Buildbot worker and enable it to automatically start at boot time.
sudo systemctl start buildbot-worker
sudo systemctl enable buildbot-worker
You can check the status of the services.
sudo systemctl status buildbot buildbot-worker
If the services are running smoothly, you will see that in the output.
[user@vultr ~]$ sudo systemctl status buildbot buildbot-worker
● buildbot.service - BuildBot master service
...
Active: active (running) since Fri 2018-01-12 16:00:59 UTC; 1min 25s ago
...
Jan 12 16:00:59 vultr.guest systemd[1]: Started BuildBot master service.
● buildbot-worker.service - BuildBot worker service
...
Active: active (running) since Fri 2018-01-12 16:02:00 UTC; 24s ago
...
Jan 12 16:02:00 vultr.guest systemd[1]: Started BuildBot worker service.
By default, authentication is not enabled in the Buildbot web interface. For internet facing sites, it is strongly recommended to setup authentication so that only the authorized users can have the ability to perform administrative tasks. To set up authentication, reopen the Buildbot master configuration file.
sudo su buildbot -c "nano /home/buildbot/master/master.cfg"
Add the following lines to the end of the file.
c['www']['authz'] = util.Authz(
allowRules = [
util.AnyEndpointMatcher(role="admins")
],
roleMatchers = [
util.RolesFromUsername(roles=['admins'], usernames=['admin_user'])
]
)
c['www']['auth'] = util.UserPasswordAuth({'admin_user': 'AdminPassword'})
Replace both occurrences of admin_user
with the actual username you want to use and AdminPassword
with a strong password.
Check for errors in the configuration file.
sudo su buildbot -c "buildbot checkconfig /home/buildbot/master"
Restart Buildbot master service so that the changes can take effect.
sudo systemctl restart buildbot
Browse the web interface again to see that the anonymous users can only view the basic details about the build server. Now, log in using the credentials set in the master.cfg
file and you will see that all other administrative functions are only available to the logged in admin user.
By default, Buildbot listens to the port 8010
on unsecured connections. Securing the web interface with HTTPS
is recommended to ensure that the data is safe during transportation from the browser to the server. In this section of the tutorial, we will install and secure Nginx with Let's Encrypt free SSL certificates. The Nginx web server will work as a reverse proxy to forward the incoming requests to Buildbot'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 the certificates, you will need to allow ports 80
and 443
or standard HTTP
and HTTPS
services through the firewall. Also, remove port 8010
, 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=8010/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 ci.example.com
Генерисани сертификати ће вероватно бити ускладиштени у /etc/letsencrypt/live/ci.example.com/
директоријуму. ССЛ сертификат ће бити сачуван као, fullchain.pem
а приватни кључ ће бити сачуван као privkey.pem
.
Лет'с Енцрипт сертификати истичу за 90 дана, па се препоручује да подесите аутоматско обнављање сертификата помоћу Црон послова.
Отворите датотеку црон посла за root
корисника.
sudo crontab -e
Додајте следећи ред на крај датотеке.
30 5 * * * /usr/bin/certbot renew --quiet
Горњи црон посао ће се покретати сваког дана у 5:30 ујутро. Ако сертификат истекне, аутоматски ће се обновити.
Сада промените Нгинк подразумевану конфигурациону датотеку да бисте уклонили default_server
линију.
sudo sed -i 's/default_server//g' /etc/nginx/nginx.conf
Направите нову конфигурациону датотеку за Буилдбот веб интерфејс.
sudo nano /etc/nginx/conf.d/buildbot.conf
Попуните датотеку.
upstream buildbot {
server 127.0.0.1:8010;
}
server {
listen 80 default_server;
server_name ci.example.com;
return 301 https://$host$request_uri;
}
server {
listen 443 ssl http2 default_server;
server_name ci.example.com;
root html;
index index.html index.htm;
ssl on;
ssl_certificate /etc/letsencrypt/live/ci.example.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/ci.example.com/privkey.pem;
ssl_session_cache shared:SSL:10m;
ssl_session_timeout 1440m;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_ciphers HIGH:!aNULL:!eNULL:!EXPORT:!CAMELLIA:!DES:!MD5:!PSK:!RC4;
ssl_prefer_server_ciphers on;
add_header Strict-Transport-Security "max-age=31536000; includeSubdomains;";
access_log /var/log/nginx/buildbot.access.log;
proxy_set_header HOST $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_set_header X-Forwarded-Server $host;
proxy_set_header X-Forwarded-Host $host;
location / {
proxy_pass http://buildbot;
}
location /sse/ {
proxy_buffering off;
proxy_pass http://buildbot/sse/;
}
location /ws {
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
proxy_pass http://buildbot/ws;
proxy_read_timeout 6000s;
}
}
Проверите да ли постоје грешке у новој конфигурационој датотеци.
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
Ако сте добили неку врсту грешке, обавезно проверите путању до ССЛ сертификата. Поново покрените Нгинк веб сервер да бисте применили промену у конфигурацији.
sudo systemctl restart nginx
Отворите конфигурациону датотеку Буилдмастер.
sudo su buildbot -c "nano /home/buildbot/master/master.cfg"
Пронађите следећи ред.
c['buildbotURL'] = "http://192.168.1.1:8010/"
Промените УРЛ у складу са именом домена који користите.
c['buildbotURL'] = "https://ci.example.com/"
Поново покрените главну услугу Буилдбот.
sudo systemctl restart buildbot
Сада можете приступити Буилдбот контролној табли на https://ci.example.com
. Видећете да су везе са Буилдботом сада заштићене ССЛ-ом.
Пријавите се користећи администраторске акредитиве и додајте свој први цевовод да бисте започели прављење апликације.
Користите другачији систем? Плеск је власничка контролна табла веб хоста која омогућава корисницима да управљају својим личним и/или клијентским веб локацијама, базама података
Скуид је популаран, бесплатни Линук програм који вам омогућава да креирате веб проки за прослеђивање. У овом водичу ћете видети како да инсталирате Скуид на ЦентОС да вас преокрене
Увод Лигхттпд је форк Апацхе-а који има за циљ да буде много мање интензиван према ресурсима. Лаган је, отуда и његово име, и прилично је једноставан за употребу. Инсталлин
ВУЛТР је недавно направио измене на њиховој страни, и сада би све требало да ради добро из кутије са омогућеним НетворкМанагер-ом. Ако желите да онемогућите
Ицинга2 је моћан систем за праћење, и када се користи у моделу мастер-цлиент, може да замени потребу за провером праћења заснованом на НРПЕ. Главни клијент
Користите другачији систем? Апацхе Цассандра је бесплатан систем за управљање НоСКЛ базом података отвореног кода који је дизајниран да обезбеди скалабилност, високу
Користите другачији систем? Мицровебер је ЦМС и онлајн продавница отвореног кода. Мицровебер изворни код се налази на ГитХуб-у. Овај водич ће вам показати
Користите другачији систем? Маттермост је опен соурце алтернатива Слацк СААС сервису за размену порука. Другим речима, са Маттермостом, ца
Шта вам треба Вултр ВПС са најмање 1 ГБ РАМ-а. ССХ приступ (са роот/административним привилегијама). Корак 1: Инсталирање БунгееЦорд-а Прво прво
Плеск контролна табла има веома лепу интеграцију за Летс Енцрипт. Летс Енцрипт је један од јединих ССЛ провајдера који у потпуности издају сертификате
Летс Енцрипт је ауторитет за сертификацију посвећен бесплатном пружању ССЛ сертификата. цПанел је направио уредну интеграцију тако да ви и ваш клијент
Користите другачији систем? Цонцрете5 је ЦМС отвореног кода који нуди многе карактеристичне и корисне функције које помажу уредницима да лако производе садржај и
Користите другачији систем? Ревиев Боард је бесплатан алат отвореног кода за преглед изворног кода, документације, слика и још много тога. То је софтвер заснован на вебу
У овом водичу ћете научити како да подесите ХТТП аутентификацију за Нгинк веб сервер који ради на ЦентОС 7. Захтеви Да бисте започели, требаће вам
ИОУРЛС (Иоур Овн УРЛ Схортенер) је апликација за скраћивање УРЛ-ова отвореног кода и аналитику података. У овом чланку ћемо покрити процес инсталације
Користите другачији систем? Увод АрангоДБ је НоСКЛ база података отвореног кода са флексибилним моделом података за документе, графиконе и кључ-вредности. То је
Увод Директоријум /етц/ игра кључну улогу у начину на који Линук систем функционише. Разлог за то је што је скоро свака конфигурација система
Многи системски администратори управљају великим количинама сервера. Када датотекама треба приступити на различитим серверима, пријављивање на сваки појединачно ца
Овај водич ће покрити процес инсталирања Халф Лифе 2 сервера за игре на ЦентОС 6 систем. Корак 1: Инсталирање предуслова Да бисте подесили оу
Ларавел ГитСцрум или ГитСцрум је алатка за продуктивност отвореног кода дизајнирана да помогне развојним тимовима да имплементирају Сцрум методологију на сличан начин т
Вештачка интелигенција није у будућности, она је овде управо у садашњости. У овом блогу Прочитајте како су апликације вештачке интелигенције утицале на различите секторе.
Да ли сте и ви жртва ДДОС напада и збуњени сте методама превенције? Прочитајте овај чланак да бисте решили своја питања.
Можда сте чули да хакери зарађују много новца, али да ли сте се икада запитали како зарађују толики новац? Хајде да причамо.
Да ли желите да видите револуционарне изуме Гугла и како су ти изуми променили живот сваког људског бића данас? Затим читајте на блогу да бисте видели Гооглеове изуме.
Концепт самовозећих аутомобила који путују на путеве уз помоћ вештачке интелигенције је сан који већ неко време имамо. Али упркос неколико обећања, њих нема нигде. Прочитајте овај блог да сазнате више…
Како се наука развија великом брзином, преузимајући многе наше напоре, расте и ризик да се подвргнемо необјашњивој сингуларности. Прочитајте шта би сингуларност могла да значи за нас.
Методе складиштења података су се развијале можда од рођења података. Овај блог покрива еволуцију складиштења података на основу инфографике.
Прочитајте блог да бисте на најједноставнији начин упознали различите слојеве у архитектури великих података и њихове функционалности.
У овом дигиталном свету, паметни кућни уређаји постали су кључни део живота. Ево неколико невероватних предности паметних кућних уређаја о томе како они чине наш живот вредним живљења и једноставнијим.
Недавно је Аппле издао мацОС Цаталина 10.15.4 додатак за исправку проблема, али изгледа да ажурирање изазива више проблема који доводе до квара Мац машина. Прочитајте овај чланак да бисте сазнали више