Instalirajte Plesk na CentOS 7
Korištenje drugog sustava? Plesk je vlasnička upravljačka ploča web hosta koja omogućuje korisnicima da administriraju svoje osobne i/ili klijentske web stranice, baze podataka
Kontinuirana integracija je praksa razvoja softvera DevOps koja programerima omogućuje često spajanje modificiranog koda u zajedničko spremište mnogo puta dnevno. Nakon svakog spajanja izvode se automatske izrade i testovi kako bi se otkrili problemi u kodu. Omogućuje programerima da brzo pronađu i riješe pogreške kako bi poboljšali kvalitetu softvera i osigurali kontinuiranu isporuku softvera. Prebacivanje s Concoursea i tamo vrlo je jednostavno jer svu svoju konfiguraciju čuva u deklarativnim datotekama koje se mogu provjeriti u kontroli verzija. Također pruža web korisničko sučelje koje interaktivno prikazuje informacije o izgradnji.
Svakako zamijenite sva pojavljivanja 192.0.2.1
i ci.example.com
sa svojom stvarnom javnom IP adresom Vultr i stvarnim imenom domene.
Ažurirajte svoj osnovni sustav pomoću vodiča Kako ažurirati CentOS 7 . Nakon što je vaš sustav ažuriran, nastavite s instalacijom PostgreSQL-a.
PostgreSQL je objektni relacijski sustav baze podataka. Concourse pohranjuje svoje podatke cjevovoda u PostgreSQL bazu podataka. Dodajte PostgreSQL spremište.
sudo rpm -Uvh https://download.postgresql.org/pub/repos/yum/9.6/redhat/rhel-7-x86_64/pgdg-centos96-9.6-3.noarch.rpm
Instalirajte PostgreSQL poslužitelj baze podataka.
sudo yum -y install postgresql96-server postgresql96-contrib
Inicijalizirajte bazu podataka.
sudo /usr/pgsql-9.6/bin/postgresql96-setup initdb
initdb
stvara novi PostgreSQL klaster baze podataka, koji je zbirka baza podataka kojima upravlja jedna instanca poslužitelja. Uredite pg_hba.conf
datoteku kako biste omogućili MD5 provjeru autentičnosti.
sudo nano /var/lib/pgsql/9.6/data/pg_hba.conf
Pronađite sljedeće retke i promijenite vrijednosti peer
i ident
u METHOD
stupcu na trust
i 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
Nakon ažuriranja, konfiguracija bi trebala izgledati ovako.
# 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
Pokrenite PostgreSQL poslužitelj i omogućite mu automatsko pokretanje prilikom pokretanja.
sudo systemctl start postgresql-9.6
sudo systemctl enable postgresql-9.6
Promijenite lozinku za zadanog korisnika PostgreSQL.
sudo passwd postgres
Prijavite se kao korisnik PostgreSQL:
sudo su - postgres
Stvorite novog PostgreSQL korisnika za Concourse CI.
createuser concourse
Napomena : Zadani korisnik PostgreSQL može se koristiti za provjeru autentičnosti baze podataka, ali se preporučuje korištenje namjenskog korisnika za provjeru autentičnosti Concourse baze podataka u proizvodnim postavkama.
PostgreSQL pruža ljusku za pokretanje upita u bazi podataka. Prebacite se na ljusku PostgreSQL tako što ćete pokrenuti:
psql
Postavite lozinku za novostvorenog korisnika baze podataka Concourse.
ALTER USER concourse WITH ENCRYPTED password 'DBPassword';
Važno : Zamijenite DBPassword
jakom lozinkom. Zabilježite lozinku jer će biti potrebna kasnije u vodiču.
Napravite novu bazu podataka za Concourse.
CREATE DATABASE concourse OWNER concourse;
Izađite iz psql
ljuske.
\q
Prebacite se na sudo korisnika s trenutnog korisnika postgresa.
exit
Preuzmite najnoviju verziju izvršne datoteke Concourse i pohranite je /usr/bin
tako da se može izravno izvršiti. Najnoviju verziju binarnih datoteka Concourse i Fly možete pronaći na stranici za preuzimanje Concourse . Nova izdanja su vrlo česta. Zamijenite vezu u nastavku novom vezom za najnoviju verziju.
sudo wget https://github.com/concourse/concourse/releases/download/v3.4.1/concourse_linux_amd64 -O /usr/bin/concourse
Slično, preuzmite najnoviju verziju izvršne datoteke fly i pohranite je u /usr/bin
.
sudo wget https://github.com/concourse/concourse/releases/download/v3.4.1/fly_linux_amd64 -O /usr/bin/fly
Fly je sučelje naredbenog retka za povezivanje s ATC API-jem Concourse CI. Fly je dostupan za više platformi kao što su Linux, Windows i MacOS.
Dodijelite dopuštenje za izvršavanje preuzetim concourse
i fly
binarnim datotekama.
sudo chmod +x /usr/bin/concourse /usr/bin/fly
Provjerite rade li Concourse i Fly ispravno tako da provjerite njihovu verziju.
concourse -version
fly -version
RSA parovi ključeva pružaju način za šifriranje komunikacije između komponenti Concoursea.
Da bi Concourse radio, moraju se generirati najmanje tri para ključeva. Za šifriranje podataka sesije generirajte session_signing_key
. Ovaj ključ će također koristiti TSA za potpisivanje zahtjeva koje upućuje ATC-u. Da biste osigurali TSA SSH poslužitelj, generirajte tsa_host_key
. Konačno, generirajte worker_key
za svakog radnika.
Izradite novi direktorij za pohranu ključeva i konfiguracije povezanih s Concourse CI.
sudo mkdir /opt/concourse
Generirajte potrebne ključeve.
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
Autorizirajte javni ključ radnika kopiranjem njegovog sadržaja u authorized_worker_keys
datoteku:
sudo cp /opt/concourse/worker_key.pub /opt/concourse/authorized_worker_keys
Concourse pruža dvije odvojene komponente koje je potrebno pokrenuti, web i worker. Pokrenite web Concourse.
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
Promijenite korisničko ime i lozinku basic-auth
ako želite. Provjerite je li put do datoteka s ključevima ispravan i osigurajte ispravnu vrijednost za korisničko ime i lozinku u konfiguraciji baze podataka PostgreSQL.
Napomena : ATC će slušati zadani port, 8080
a TSA će slušati port 2222
. Ako autentifikacija nije poželjna, proslijedite --no-really-i-dont-want-any-auth
opciju nakon uklanjanja osnovnih opcija autentifikacije.
Nakon što se web poslužitelj pokrene, trebao bi se prikazati sljedeći izlaz.
{"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"}}
Zaustavite poslužitelj za sada jer se još nekoliko stvari mora postaviti.
Pokrenite Concourse CI Worker.
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
Gornja naredba pretpostavlja da TSA radi na lokalnom hostu i sluša zadani port 2222
.
Iako se web Concourse i worker mogu lako pokrenuti pomoću gornjih naredbi, preporučuje se korištenje Systemd-a za upravljanje poslužiteljem.
Using Systemd service for managing the application ensures that the application is automatically started on failures and at boot time. The Concourse server does not take data from any configuration file, but it can access the data from environment variables. Instead of setting global environment variables, create a new file to store the environment variables and then pass the variables to the Concourse CI using the Systemd service.
Create a new environment file for Concourse web.
sudo nano /opt/concourse/web.env
Populate the file.
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 username 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 adduser --system 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
After=postgresql-9.6.service
[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
After=concourse-web.service
[Service]
Type=simple
User=root
Group=root
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 by running:
sudo systemctl start concourse-web concourse-worker
To enable the worker and web process to automatically start at boot time, run:
sudo systemctl enable concourse-worker concourse-web
To check the status of services, run:
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 should be simil.
[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.
Adjust your firewall to allow port 8080, on which ATS is running and port 2222, on which TSA is running.
sudo firewall-cmd --zone=public --add-port=8080/tcp --permanent
sudo firewall-cmd --zone=public --add-port=2222/tcp --permanent
sudo firewall-cmd --reload
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:
fly -t my-ci login -c http://192.0.2.1:8080
The above command is used for 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
Ciljna prijava bit će spremljena na jedan dan. Nakon toga će isteći.
Da se odmah odjavim.
fly -t my-ci logout
fly se može koristiti za prijavu na poslužitelj izvan mreže, ali samo ako poslužitelj ima javnu IP adresu i ako joj se može pristupiti izvan mreže. Windows ili MacOS binarni program može se preuzeti sa stranice za preuzimanje ili s web korisničkog sučelja poslužitelja.
Prijave i druge informacije poslane putem web korisničkog sučelja na Concourse poslužitelj nisu zaštićene. Veza nije šifrirana. Nginx reverse proxy može se postaviti s besplatnim SSL-om Let's Encrypt.
Instalirajte Nginx web poslužitelj i Certbot, koji je klijentska aplikacija za Let's Encrypt CA.
sudo yum -y install certbot-nginx nginx
Pokrenite i omogućite Nginx da se automatski pokrene prilikom pokretanja:
sudo systemctl start nginx
sudo systemctl enable nginx
Prije nego što se može podnijeti zahtjev za certifikate, port 80 i 443, ili standardne HTTP i HTTPS usluge, moraju biti omogućeni putem vatrozida. Certbot će provjeriti autoritet domene prije izdavanja certifikata.
sudo firewall-cmd --zone=public --add-service=http --permanent
sudo firewall-cmd --zone=public --add-service=https --permanent
Port 8080 više ne treba biti dopušten kroz vatrozid jer će se Concourse sada izvoditi na standardnom HTTPS portu. Uklonite unos vatrozida kako biste dopustili port 8080.
sudo firewall-cmd --zone=public --remove-port=8080/tcp --permanent
sudo firewall-cmd --reload
Bilješka
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.
Generirajte SSL certifikate.
sudo certbot certonly --webroot -w /usr/share/nginx/html -d ci.example.com
Generirani certifikati će vjerojatno biti pohranjeni u /etc/letsencrypt/live/ci.example.com/
imeniku. SSL certifikat će biti pohranjen kao, fullchain.pem
a privatni ključ će biti pohranjen kao privkey.pem
.
Let's Encrypt certifikati istječu za 90 dana, stoga se preporučuje automatska obnova za certifikate postavljena pomoću cronjobsa. Cron je sistemska usluga koja se koristi za izvršavanje periodičnih zadataka.
Otvorite cron datoteku posla.
sudo crontab -e
Dodajte sljedeći redak na kraj datoteke.
30 5 * * 1 /usr/bin/certbot renew --quiet
Gornji cron posao će se izvoditi svakog ponedjeljka u 5:30 ujutro. Ako certifikat istekne, automatski će se obnoviti.
Napravite novi virtualni host.
sudo nano /etc/nginx/conf.d/concourse-ssl.conf
Popunite datoteku.
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;
}
}
Napomena : Zamijenite ci.example.com
stvarnom domenom.
Uredite datoteku okruženja stvorenu za web concourse.
sudo nano /opt/concourse/web.env
Promijenite vrijednost CONCOURSE_EXTERNAL_URL
i također dodajte još dva retka na kraju datoteke.
CONCOURSE_EXTERNAL_URL=https://ci.example.com
CONCOURSE_BIND_IP=127.0.0.1
CONCOURSE_BIND_PORT=8080
Spremite datoteku i ponovno pokrenite Concourse Web, Worker i Nginx web poslužitelj:
sudo systemctl restart concourse-worker concourse-web nginx
Svi podaci koji se šalju u i iz preglednika sada su zaštićeni SSL enkripcijom.
Korištenje drugog sustava? Plesk je vlasnička upravljačka ploča web hosta koja omogućuje korisnicima da administriraju svoje osobne i/ili klijentske web stranice, baze podataka
Squid je popularan besplatni program za Linux koji vam omogućuje stvaranje web proxyja za prosljeđivanje. U ovom vodiču vidjet ćete kako instalirati Squid na CentOS da vas preokrene
Uvod Lighttpd je fork Apachea koji ima za cilj da bude puno manje intenzivan prema resursima. Lagan je, otuda mu i naziv, i prilično je jednostavan za korištenje. Instaliraj
VULTR je nedavno napravio promjene na svojoj strani i sada bi sve trebalo raditi dobro iz kutije s omogućenim NetworkManagerom. Želite li onemogućiti
Icinga2 je moćan sustav nadzora, a kada se koristi u modelu master-client, može zamijeniti potrebu za provjerama praćenja na temelju NRPE. Glavni klijent
Korištenje drugog sustava? Apache Cassandra je besplatni i otvorenog koda NoSQL sustav upravljanja bazom podataka koji je osmišljen kako bi osigurao skalabilnost, visoku
Korištenje drugog sustava? Microweber je CMS i internetska trgovina otvorenog koda povuci i ispusti. Izvorni kod Microwebera nalazi se na GitHubu. Ovaj vodič će vam pokazati
Korištenje drugog sustava? Mattermost je open source alternativa Slack SAAS servisu za razmjenu poruka. Drugim riječima, s Mattermostom možete ca
Što vam treba Vultr VPS s najmanje 1 GB RAM-a. SSH pristup (s root/administrativnim privilegijama). Korak 1: Instalacija BungeeCord-a Najprije
Upravljačka ploča Plesk ima vrlo lijepu integraciju za Lets Encrypt. Lets Encrypt je jedan od jedinih SSL pružatelja usluga koji u potpunosti izdaju certifikate
Lets Encrypt je tijelo za izdavanje certifikata posvećeno besplatnom pružanju SSL certifikata. cPanel je izgradio urednu integraciju tako da vi i vaš klijent
Korištenje drugog sustava? Concrete5 je CMS otvorenog koda koji nudi mnoge osebujne i korisne značajke koje pomažu urednicima u jednostavnoj proizvodnji sadržaja i
Korištenje drugog sustava? Review Board je besplatan alat otvorenog koda za pregled izvornog koda, dokumentacije, slika i još mnogo toga. To je web-bazirani softver
U ovom vodiču naučit ćete kako postaviti HTTP autentifikaciju za Nginx web poslužitelj koji radi na CentOS 7. Zahtjevi Da biste započeli, trebat će vam
YOURLS (Your Own URL Shortener) je aplikacija za skraćivanje URL-ova otvorenog koda i analizu podataka. U ovom članku ćemo pokriti proces instalacije
Korištenje drugog sustava? Uvod ArangoDB je NoSQL baza podataka otvorenog koda s fleksibilnim modelom podataka za dokumente, grafikone i ključ-vrijednosti. to je
Uvod Direktorij /etc/ igra ključnu ulogu u načinu na koji Linux sustav funkcionira. Razlog tome je što je gotovo svaka konfiguracija sustava
Mnogi administratori sustava upravljaju velikim količinama poslužitelja. Kada se datotekama treba pristupiti na različitim poslužiteljima, prijava na svaki pojedinačno ca
Ovaj vodič će pokriti proces instaliranja poslužitelja za igre Half Life 2 na sustavu CentOS 6. Korak 1: Instaliranje preduvjeta Kako biste postavili ou
Laravel GitScrum ili GitScrum je alat za produktivnost otvorenog koda dizajniran da pomogne razvojnim timovima da implementiraju Scrum metodologiju na sličan način.
Umjetna inteligencija nije u budućnosti, ovdje je upravo u sadašnjosti. U ovom blogu Pročitajte kako su aplikacije umjetne inteligencije utjecale na različite sektore.
Jeste li i vi žrtva DDOS napada i zbunjeni ste metodama prevencije? Pročitajte ovaj članak kako biste riješili svoje upite.
Možda ste čuli da hakeri zarađuju mnogo novca, ali jeste li se ikada zapitali kako zarađuju toliki novac? raspravimo.
Želite li vidjeti revolucionarne izume Googlea i kako su ti izumi promijenili život svakog čovjeka danas? Zatim čitajte na blogu kako biste vidjeli Googleove izume.
Koncept samovozećih automobila koji će krenuti na ceste uz pomoć umjetne inteligencije san je koji već neko vrijeme imamo. No, unatoč nekoliko obećanja, nigdje ih nema. Pročitajte ovaj blog kako biste saznali više…
Kako se znanost razvija velikom brzinom, preuzimajući mnoge naše napore, raste i rizik da se podvrgnemo neobjašnjivoj Singularnosti. Pročitajte što bi za nas mogla značiti singularnost.
Metode pohrane podataka su se razvijale možda od rođenja podataka. Ovaj blog pokriva evoluciju pohrane podataka na temelju infografike.
Pročitajte blog kako biste na najjednostavniji način upoznali različite slojeve u arhitekturi velikih podataka i njihove funkcionalnosti.
U ovom digitalnom svijetu, pametni kućni uređaji postali su ključni dio života. Evo nekoliko nevjerojatnih prednosti pametnih kućnih uređaja o tome kako naš život čine vrijednim življenja i jednostavnijim.
Nedavno je Apple izdao macOS Catalina 10.15.4 dodatak ažuriranju kako bi riješio probleme, ali čini se da ažuriranje uzrokuje više problema koji dovode do zalijevanja mac strojeva. Pročitajte ovaj članak da biste saznali više