Како инсталирати Јенкинс на ЦентОС 7
Јенкинс је популарна ЦИ (континуирана интеграција) алатка отвореног кода која се широко користи за развој пројеката, примену и аутоматизацију. Овај чланак ће
Континуирана интеграција је ДевОпс пракса развоја софтвера која омогућава програмерима да често спајају модификовани код у заједничко складиште много пута дневно. Након сваког спајања, изводе се аутоматске израде и тестови да би се открили проблеми у коду. Омогућава програмерима да брзо пронађу и отклоне грешке како би побољшали квалитет софтвера и обезбедили континуирану испоруку софтвера. Пребацивање са Цонцоурсе-а на и назад је веома једноставно јер сву своју конфигурацију чува у декларативним датотекама које се могу проверити у контроли верзија. Такође обезбеђује веб кориснички интерфејс који интерактивно приказује информације о изградњи.
Обавезно замените сва појављивања 192.0.2.1
и ci.example.com
са својом стварном Вултр јавном ИП адресом и стварним именом домена.
Ажурирајте свој основни систем користећи водич Како ажурирати Убунту 16.04 . Када је ваш систем ажуриран, наставите да инсталирате ПостгреСКЛ.
ПостгреСКЛ је објектно релациони систем базе података. Цонцоурсе складишти своје податке цевовода у ПостгреСКЛ базу података. Додајте ПостгреСКЛ спремиште.
echo "deb http://apt.postgresql.org/pub/repos/apt/ xenial-pgdg main" | sudo tee /etc/apt/sources.list.d/pgdg.list
wget --quiet -O - https://www.postgresql.org/media/keys/ACCC4CF8.asc | sudo apt-key add -
sudo apt update
Инсталирајте ПостгреСКЛ сервер базе података.
sudo apt -y install postgresql
Покрените ПостгреСКЛ сервер и омогућите му да се аутоматски покреће при покретању.
sudo systemctl start postgresql
sudo systemctl enable postgresql
Промените лозинку за подразумеваног корисника ПостгреСКЛ.
sudo passwd postgres
Пријавите се као корисник ПостгреСКЛ:
sudo su - postgres
Креирајте новог ПостгреСКЛ корисника за Цонцоурсе ЦИ.
createuser concourse
Напомена : Подразумевани ПостгреСКЛ корисник се може користити за аутентификацију базе података, али се препоручује коришћење наменског корисника за аутентификацију Цонцоурсе базе података у производном подешавању.
ПостгреСКЛ обезбеђује љуску за покретање упита у бази података. Пређите на ПостгреСКЛ шкољку.
psql
Поставите лозинку за новокреираног корисника базе података Цонцоурсе.
ALTER USER concourse WITH ENCRYPTED password 'DBPassword';
Важно : Замените DBPassword
јаком лозинком. Забележите лозинку јер ће бити потребна касније у водичу.
Креирајте нову базу података за Цонцоурсе.
CREATE DATABASE concourse OWNER concourse;
Изађите из psql
љуске.
\q
Пребаците се на судо корисника са тренутног postgres
корисника.
exit
Преузмите најновију верзију извршног програма Цонцоурсе и сачувајте га /usr/bin
тако да се може директно извршити. Најновија верзија бинарних датотека Цонцоурсе и Фли се може наћи на страници за преузимање Цонцоурсе . Нова издања су веома честа. Замените везу испод новом везом за најновију верзију.
sudo wget https://github.com/concourse/concourse/releases/download/v3.10.0/concourse_linux_amd64 -O /usr/bin/concourse
Слично томе, преузмите најновију верзију извршне датотеке за летење и сачувајте је у /usr/bin
.
sudo wget https://github.com/concourse/concourse/releases/download/v3.10.0/fly_linux_amd64 -O /usr/bin/fly
Фли је интерфејс командне линије који се користи за повезивање са АТЦ АПИ-јем Цонцоурсе ЦИ. Фли је доступан за више платформи као што су Линук, Виндовс и МацОС.
Доделите дозволу за извршавање преузетим concourse
и fly
бинарним датотекама.
sudo chmod +x /usr/bin/concourse /usr/bin/fly
Проверите да ли Цонцоурсе и Фли раде исправно тако што ћете проверити њихову верзију.
concourse -version
fly -version
РСА парови кључева обезбеђују начин за шифровање комуникације између компоненти Цонцоурсе-а.
Да би Цонцоурсе радио, морају се генерисати најмање три пара кључева. За шифровање података сесије, генеришите session_signing_key
. Овај кључ ће такође користити ТСА за потписивање захтева које упути АТЦ-у. Да бисте обезбедили ТСА ССХ сервер, генеришите tsa_host_key
. На крају, генеришите worker_key
за сваког радника.
Креирајте нови директоријум ��а чување кључева и конфигурације у вези са Цонцоурсе ЦИ.
sudo mkdir /opt/concourse
Генеришите потребне кључеве.
sudo ssh-keygen -t rsa -q -N '' -f /opt/concourse/session_signing_key
sudo ssh-keygen -t rsa -q -N '' -f /opt/concourse/tsa_host_key
sudo ssh-keygen -t rsa -q -N '' -f /opt/concourse/worker_key
Овластите јавни кључ радника копирањем његовог садржаја у authorized_worker_keys
датотеку.
sudo cp /opt/concourse/worker_key.pub /opt/concourse/authorized_worker_keys
Цонцоурсе пружа две одвојене компоненте које треба покренути: веб и радник. Покрените веб Цонцоурсе.
sudo concourse web \
--basic-auth-username admin \
--basic-auth-password StrongPass \
--session-signing-key /opt/concourse/session_signing_key \
--tsa-host-key /opt/concourse/tsa_host_key \
--tsa-authorized-keys /opt/concourse/authorized_worker_keys \
--postgres-user=concourse \
--postgres-password=DBPassword \
--postgres-database=concourse \
--external-url http://192.0.2.1:8080
Промените корисничко име и лозинку basic-auth
ако желите. Уверите се да је путања до датотека са кључевима исправна и да ли је наведена тачна вредност за корисничко име и лозинку у конфигурацији ПостгреСКЛ базе података.
Напомена : АТЦ ће слушати подразумевани порт, 8080
а ТСА ће слушати порт 2222
. Ако аутентификација није пожељна, проследите --no-really-i-dont-want-any-auth
опцију након што уклоните основне опције аутентификације .
Када се веб сервер покрене, биће приказан следећи излаз.
{"timestamp":"1503657859.661247969","source":"tsa","message":"tsa.listening","log_level":1,"data":{}}
{"timestamp":"1503657859.666907549","source":"atc","message":"atc.listening","log_level":1,"data":{"debug":"127.0.0.1:8079","http":"0.0.0.0:8080"}}
Зауставите сервер за сада, јер још неколико ствари мора да се подеси.
Покрените Цонцоурсе ЦИ Воркер.
sudo concourse worker \
--work-dir /opt/concourse/worker \
--tsa-host 127.0.0.1 \
--tsa-public-key /opt/concourse/tsa_host_key.pub \
--tsa-worker-private-key /opt/concourse/worker_key
Горња команда ће претпоставити да ТСА ради на локалном хосту и да слуша подразумевани порт 2222
.
Иако се Цонцоурсе веб и воркер могу лако покренути помоћу горњих команди, препоручује се да користите Системд за управљање сервером.
Коришћење Системд услуге за управљање апликацијом осигурава да се апликација аутоматски покреће у случају кварова и приликом покретања. Цонцоурсе сервер не узима податке из било које конфигурационе датотеке, али може приступити подацима из променљивих окружења. Уместо постављања глобалних променљивих окружења, креирајте нову датотеку за складиштење променљивих окружења, а затим проследите варијабле Цонцоурсе ЦИ користећи Системд услугу.
Направите нову датотеку окружења за Цонцоурсе веб.
sudo nano /opt/concourse/web.env
Попуните датотеку.
CONCOURSE_SESSION_SIGNING_KEY=/opt/concourse/session_signing_key
CONCOURSE_TSA_HOST_KEY=/opt/concourse/tsa_host_key
CONCOURSE_TSA_AUTHORIZED_KEYS=/opt/concourse/authorized_worker_keys
CONCOURSE_POSTGRES_USER=concourse
CONCOURSE_POSTGRES_PASSWORD=DBPassword
CONCOURSE_POSTGRES_DATABASE=concourse
CONCOURSE_BASIC_AUTH_USERNAME=admin
CONCOURSE_BASIC_AUTH_PASSWORD=StrongPass
CONCOURSE_EXTERNAL_URL=http://192.0.2.1:8080
Change the username and password of the BASIC_AUTH
if desired. Make sure that the path to the key files are correct and make sure that the correct value for username and password in the PostgreSQL database configuration is provided.
Similarly, create an environment file for the worker.
sudo nano /opt/concourse/worker.env
Populate the file.
CONCOURSE_WORK_DIR=/opt/concourse/worker
CONCOURSE_TSA_WORKER_PRIVATE_KEY=/opt/concourse/worker_key
CONCOURSE_TSA_PUBLIC_KEY=/opt/concourse/tsa_host_key.pub
CONCOURSE_TSA_HOST=127.0.0.1
As the environment files contain usernames and passwords, change its permissions so that it cannot be accessed by other users.
sudo chmod 600 /opt/concourse/*.env
Now create a new user for Concourse to run the web environment. This will ensure that the web server is running in an isolated environment.
sudo useradd concourse
Give the concourse user ownership over Concourse CI file's directory.
sudo chown -R concourse:concourse /opt/concourse
Create a new systemd service file for the Concourse web service.
sudo nano /etc/systemd/system/concourse-web.service
Populate the file.
[Unit]
Description=Concourse CI web server
[Service]
Type=simple
User=concourse
Group=concourse
Restart=on-failure
EnvironmentFile=/opt/concourse/web.env
ExecStart=/usr/bin/concourse web
StandardOutput=syslog
StandardError=syslog
SyslogIdentifier=concourse_web
[Install]
WantedBy=multi-user.target
Save and close the file. Create a new service file for the Concourse worker service.
sudo nano /etc/systemd/system/concourse-worker.service
Populate the file.
[Unit]
Description=Concourse CI worker process
[Service]
Type=simple
Restart=on-failure
EnvironmentFile=/opt/concourse/worker.env
ExecStart=/usr/bin/concourse worker
StandardOutput=syslog
StandardError=syslog
SyslogIdentifier=concourse_worker
[Install]
WantedBy=multi-user.target
The web and worker service can now be started directly.
sudo systemctl start concourse-web concourse-worker
To enable the worker and web process to automatically start at boot time, run the following.
sudo systemctl enable concourse-worker concourse-web
To check the status of services, run the following.
sudo systemctl status concourse-worker concourse-web
If the service is not started, or in the FAILED
state, remove the cache from the /tmp
directory.
sudo rm -rf /tmp/*
Restart the services.
sudo systemctl restart concourse-worker concourse-web
Notice that this time the services have started correctly. The output upon verifying the status of the services will be similar to the following.
[user@vultr ~]$ sudo systemctl status concourse-worker concourse-web
● concourse-worker.service - Concourse CI worker process
Loaded: loaded (/etc/systemd/system/concourse-worker.service; enabled; vendor preset: disabled)
Active: active (running) since Sat 2017-08-26 07:27:37 UTC; 55s ago
Main PID: 3037 (concourse)
CGroup: /system.slice/concourse-worker.service
└─3037 /usr/bin/concourse worker
Aug 26 07:27:42 vultr.guest concourse_worker[3037]: {"timestamp":"1503732462.934722900","source":"tsa","message":"t...""}}
Aug 26 07:27:42 vultr.guest concourse_worker[3037]: {"timestamp":"1503732462.941227913","source":"guardian","messag...0"}}
...
● concourse-web.service - Concourse CI web server
Loaded: loaded (/etc/systemd/system/concourse-web.service; enabled; vendor preset: disabled)
Active: active (running) since Sat 2017-08-26 07:27:37 UTC; 55s ago
Main PID: 3036 (concourse)
CGroup: /system.slice/concourse-web.service
└─3036 /usr/bin/concourse web
Aug 26 07:27:57 vultr.guest concourse_web[3036]: {"timestamp":"1503732477.925554752","source":"tsa","message":"tsa...ve"}}
Aug 26 07:28:02 vultr.guest concourse_web[3036]: {"timestamp":"1503732482.925430775","source":"tsa","message":"tsa...ve"}}
...
Hint: Some lines were ellipsized, use -l to show in full.
Once the server is started, the web interface of the Concourse CI can be accessed by going to http://192.0.2.1:8080
in any browser. Log in using the username and password provided in the environment file.
To connect to the server using Fly, run the following.
fly -t my-ci login -c http://192.0.2.1:8080
The above command is used for the initial login to the server. -t
is used to provide a target name. replace my-ci
with any desired target name. The above command will log in to the default team main
. It will ask for the username and password provided in the environment file.
The output will look like the following.
[user@vultr ~]$ fly -t my-ci login -c http://192.0.2.1:8080
logging in to team 'main'
username: admin
password:
target saved
The target login will be saved for a day. After that, it will expire.
To log out immediately.
fly -t my-ci logout
Fly can be used to login to the server outside of the network, but only if the server has a public IP address and it is accessible from outside the network. The Windows or MacOS binary can be downloaded from the download site or from the web UI of the server.
Пријаве и друге информације које се шаљу преко веб корисничког интерфејса на Цонцоурсе сервер нису заштићене. Веза није шифрована. Нгинк реверзни прокси може се подесити са бесплатним ССЛ-ом Лет'с Енцрипт.
Инсталирајте Нгинк.
sudo apt -y install nginx
Покрените Нгинк и омогућите му да се аутоматски покреће при покретању.
sudo systemctl start nginx
sudo systemctl enable nginx
Додајте Цертбот спремиште.
sudo add-apt-repository --yes ppa:certbot/certbot
sudo apt-get update
Инсталирајте Цертбот, који је клијентска апликација за Лет'с Енцрипт ЦА.
sudo apt -y install certbot
Напомена : Да бисте добили сертификате од Лет'с Енцрипт ЦА, домен за који ће се сертификати генерисати мора бити усмерен ка серверу. Ако није, извршите неопходне промене у ДНС записима домена и сачекајте да се ДНС пропагира пре него што поново поднесете захтев за сертификат. Цертбот проверава ауторитет домена пре пружања сертификата.
Генеришите ССЛ сертификате.
sudo certbot certonly --webroot -w /var/www/html -d ci.example.com
Генерисани сертификати ће вероватно бити ускладиштени у /etc/letsencrypt/live/ci.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/concourse
Попуните датотеку.
server {
listen 80;
server_name ci.example.com;
return 301 https://$host$request_uri;
}
server {
listen 443;
server_name ci.example.com;
ssl_certificate /etc/letsencrypt/live/ci.example.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/ci.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/concourse.access.log;
location / {
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_pass http://localhost:8080;
proxy_read_timeout 90;
proxy_redirect http://localhost:8080 https://ci.example.com;
}
}
Напомена : Замените ci.example.com
стварним доменом.
Активирајте конфигурациону датотеку.
sudo ln -s /etc/nginx/sites-available/concourse /etc/nginx/sites-enabled/concourse
Уредите датотеку окружења креирану за веб скуп.
sudo nano /opt/concourse/web.env
Промените вредност CONCOURSE_EXTERNAL_URL
и такође додајте још два реда на крају датотеке.
CONCOURSE_EXTERNAL_URL=https://ci.example.com
CONCOURSE_BIND_IP=127.0.0.1
CONCOURSE_BIND_PORT=8080
Сачувајте датотеку и поново покрените Цонцоурсе Веб, Воркер и Нгинк.
sudo systemctl restart concourse-worker concourse-web nginx
Сви подаци који се шаљу у и из претраживача су сада заштићени ССЛ енкрипцијом.
Јенкинс је популарна ЦИ (континуирана интеграција) алатка отвореног кода која се широко користи за развој пројеката, примену и аутоматизацију. Овај чланак ће
Користите другачији систем? Увод Континуирана интеграција је ДевОпс пракса развоја софтвера која омогућава програмерима да често спајају
Користите другачији систем? Ансибле је алатка отвореног кода за аутоматизацију задатака. Он управља конфигурацијом ваших Линук и Виндовс сервера. Је рад
Користите другачији систем? ГоЦД је систем за континуирану испоруку и аутоматизацију отвореног кода. Омогућава вам да моделујете сложене токове рада користећи свој паралелни ан
Иако је СалтСтацк одличан алат за истовремено покретање операција на многим серверима, он такође подржава унапред дефинисана подешавања конфигурације по хосту ускладиштена у
Користите другачији систем? Ансибле је алатка отвореног кода за аутоматизацију задатака. Он управља конфигурацијом ваших Линук и Виндовс сервера. Је рад
Увод Дроне је аутоматизована, континуирана платформа за тестирање и испоруку која ради на вашој сопственој инфраструктури. Дрон подржава било који језик, услугу о
Шта је балансатор оптерећења Балансери оптерећења седе испред ваше апликације и дистрибуирају долазни саобраћај на више инстанци ваше апликације. Фо
Користите другачији систем? Фореман је бесплатан алат отвореног кода који вам помаже у конфигурацији и управљању физичким и виртуелним серверима. Форема
СалтСтацк, или Салт, је популарно решење за управљање конфигурацијом отвореног кода које се може користити за имплементацију даљинског извршавања, управљања конфигурацијом, код
Увод Стридер ЦД је платформа за континуирано примену отвореног кода. Апликација је написана у Ноде.јс и користи МонгоДБ као позадину за складиштење. Стриде
Увод Цхоцолатеи доноси управљање пакетима које олакшава администрацију софтвера и зависности на Линук-у у Виндовс. Можете брзо и лако
Шта је Пацкер? Пацкер је алатка за обраду слика сервера коју је развио ХасхиЦорп. Сервер имагинг; или алтернативно, непроменљива инфраструктура; је популарна алтернатива
Користите другачији систем? Увод Континуирана интеграција је ДевОпс пракса развоја софтвера која омогућава програмерима да често спајају
Постоји много начина да се аутоматизује процес подешавања и конфигурисања кутије. Из било ког разлога, ако се цео наш систем у овом тренутку састоји од праведних
Користите другачији систем? Фореман је бесплатан алат отвореног кода који вам помаже у конфигурацији и управљању физичким и виртуелним серверима. Форема
СалтСтацк је програм за управљање конфигурацијом заснован на питхон-у који је оптимизован за аутоматизацију конфигурационих датотека, имплементације и било чега другог.
Вештачка интелигенција није у будућности, она је овде управо у садашњости. У овом блогу Прочитајте како су апликације вештачке интелигенције утицале на различите секторе.
Да ли сте и ви жртва ДДОС напада и збуњени сте методама превенције? Прочитајте овај чланак да бисте решили своја питања.
Можда сте чули да хакери зарађују много новца, али да ли сте се икада запитали како зарађују толики новац? Хајде да причамо.
Да ли желите да видите револуционарне изуме Гугла и како су ти изуми променили живот сваког људског бића данас? Затим читајте на блогу да бисте видели Гооглеове изуме.
Концепт самовозећих аутомобила који путују на путеве уз помоћ вештачке интелигенције је сан који већ неко време имамо. Али упркос неколико обећања, њих нема нигде. Прочитајте овај блог да сазнате више…
Како се наука развија великом брзином, преузимајући многе наше напоре, расте и ризик да се подвргнемо необјашњивој сингуларности. Прочитајте шта би сингуларност могла да значи за нас.
Методе складиштења података су се развијале можда од рођења података. Овај блог покрива еволуцију складиштења података на основу инфографике.
Прочитајте блог да бисте на најједноставнији начин упознали различите слојеве у архитектури великих података и њихове функционалности.
У овом дигиталном свету, паметни кућни уређаји постали су кључни део живота. Ево неколико невероватних предности паметних кућних уређаја о томе како они чине наш живот вредним живљења и једноставнијим.
Недавно је Аппле издао мацОС Цаталина 10.15.4 додатак за исправку проблема, али изгледа да ажурирање изазива више проблема који доводе до квара Мац машина. Прочитајте овај чланак да бисте сазнали више