Installer Plesk på CentOS 7
Bruker du et annet system? Plesk er et proprietært kontrollpanel for webverten som lar brukere administrere sine personlige og/eller klienters nettsteder, databaser
Kontinuerlig integrasjon er en DevOps-programvareutviklingspraksis som gjør det mulig for utviklerne å flette den modifiserte koden ofte inn i det delte depotet mange ganger om dagen. Etter hver sammenslåing utføres automatiske bygg og tester for å oppdage problemer i koden. Det gjør det mulig for utviklerne å finne og løse feilene raskt for å forbedre programvarekvaliteten og sørge for kontinuerlig levering av programvaren. Det er veldig enkelt å bytte frem og tilbake fra Concourse ettersom den beholder all konfigurasjonen i deklarative filer som kan sjekkes inn i versjonskontroll. Det gir også et nettbrukergrensesnitt som viser byggeinformasjonen interaktivt.
Pass på å erstatte alle forekomster av 192.0.2.1
og ci.example.com
med din faktiske Vultr offentlige IP-adresse og faktiske domenenavn.
Oppdater basissystemet ditt ved å bruke veiledningen Hvordan oppdatere CentOS 7 . Når systemet ditt har blitt oppdatert, fortsett å installere PostgreSQL.
PostgreSQL er et objektrelasjonsdatabasesystem. Concourse lagrer pipeline-dataene sine i en PostgreSQL-database. Legg til PostgreSQL-depotet.
sudo rpm -Uvh https://download.postgresql.org/pub/repos/yum/9.6/redhat/rhel-7-x86_64/pgdg-centos96-9.6-3.noarch.rpm
Installer PostgreSQL-databaseserveren.
sudo yum -y install postgresql96-server postgresql96-contrib
Initialiser databasen.
sudo /usr/pgsql-9.6/bin/postgresql96-setup initdb
initdb
oppretter en ny PostgreSQL-databaseklynge, som er en samling databaser som administreres av en enkelt serverforekomst. Rediger pg_hba.conf
filen for å aktivere MD5-basert autentisering.
sudo nano /var/lib/pgsql/9.6/data/pg_hba.conf
Finne følgende linjer og endre verdiene peer
og ident
i METHOD
kolonnen til trust
og md5
hhv.
# 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
Når den er oppdatert, skal konfigurasjonen se slik ut.
# 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
Start PostgreSQL-serveren og la den starte automatisk ved oppstart.
sudo systemctl start postgresql-9.6
sudo systemctl enable postgresql-9.6
Endre passordet for standard PostgreSQL-bruker.
sudo passwd postgres
Logg på som PostgreSQL-bruker:
sudo su - postgres
Opprett en ny PostgreSQL-bruker for Concourse CI.
createuser concourse
Merk : Standard PostgreSQL-bruker kan brukes for autentisering av databasen, men det anbefales å bruke en dedikert bruker for autentisering av Concourse-databasen i et produksjonsoppsett.
PostgreSQL gir et skall for å kjøre spørringer på databasen. Bytt til PostgreSQL-skallet ved å kjøre:
psql
Angi et passord for den nyopprettede Concourse-databasebrukeren.
ALTER USER concourse WITH ENCRYPTED password 'DBPassword';
Viktig : Erstatt DBPassword
med et sterkt passord. Noter passordet, da det kreves senere i opplæringen.
Opprett en ny database for Concourse.
CREATE DATABASE concourse OWNER concourse;
Gå ut av psql
skallet.
\q
Bytt til sudo-brukeren fra gjeldende postgres-bruker.
exit
Last ned den nyeste versjonen av Concourse kjørbar og lagre den /usr/bin
slik at den kan kjøres direkte. Den siste versjonen av Concourse and Fly binærfiler finner du på Concourse-nedlastingssiden . Nye utgivelser er svært hyppige. Erstatt lenken nedenfor med den nye lenken for den nyeste versjonen.
sudo wget https://github.com/concourse/concourse/releases/download/v3.4.1/concourse_linux_amd64 -O /usr/bin/concourse
På samme måte kan du laste ned den nyeste versjonen av fly-kjørbaren og lagre den i /usr/bin
.
sudo wget https://github.com/concourse/concourse/releases/download/v3.4.1/fly_linux_amd64 -O /usr/bin/fly
Fly er kommandolinjegrensesnittet for å koble til ATC API for Concourse CI. Fly er tilgjengelig for flere plattformer som Linux, Windows og MacOS.
Tildel utføringstillatelse til de nedlastede concourse
og fly
binære filene.
sudo chmod +x /usr/bin/concourse /usr/bin/fly
Sjekk om Concourse og Fly fungerer som de skal ved å sjekke versjonen deres.
concourse -version
fly -version
RSA-nøkkelpar gir en måte å kryptere kommunikasjonen mellom komponentene i Concourse.
For at Concourse skal fungere, må minst tre par nøkler genereres. For å kryptere øktdataene, generer en session_signing_key
. Denne nøkkelen vil også bli brukt av TSA til å signere forespørslene den sender til ATC. For å sikre TSA SSH-serveren, generer en tsa_host_key
. Til slutt, generer en worker_key
for hver arbeider.
Opprett en ny katalog for å lagre nøklene og konfigurasjonen relatert til Concourse CI.
sudo mkdir /opt/concourse
Generer de nødvendige nøklene.
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
Autoriser arbeidernes offentlige nøkkel ved å kopiere innholdet til authorized_worker_keys
filen:
sudo cp /opt/concourse/worker_key.pub /opt/concourse/authorized_worker_keys
Concourse har to separate komponenter som må startes, nettet og arbeideren. Start Concourse-nettet.
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
Endre brukernavnet og passordet til basic-auth
om ønskelig. Sørg for at banen til nøkkelfilene er riktige og sørg for at riktig verdi for brukernavn og passord i PostgreSQL-databasekonfigurasjonen er oppgitt.
Merk : ATC vil lytte til standardporten 8080
og TSA vil lytte til porten 2222
. Hvis autentisering ikke er ønsket, passerer du --no-really-i-dont-want-any-auth
alternativet etter at du har fjernet de grunnleggende autentiseringsalternativene.
Once the web server is started, the following output should be displayed.
{"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"}}
Stop the server for now, as a few more things still must be setup.
Start the 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
The above command will assume that the TSA is running on localhost and listening to the default port 2222
.
Though the Concourse web and worker can be started easily using the commands above, it is recommended to use Systemd to manage the server.
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
Målinnloggingen vil bli lagret i en dag. Etter det vil den utløpe.
For å logge ut umiddelbart.
fly -t my-ci logout
fly kan brukes til å logge på serveren utenfor nettverket, men bare hvis serveren har en offentlig IP-adresse og den er tilgjengelig fra utenfor nettverket. Windows- eller MacOS-binærfilen kan lastes ned fra nedlastingssiden eller fra nettgrensesnittet til serveren.
Pålogginger og annen informasjon som sendes gjennom web-UI til Concourse-serveren er ikke sikret. Forbindelsen er ikke kryptert. En Nginx omvendt proxy kan settes opp med en Let's Encrypt gratis SSL.
Installer Nginx-nettserveren og Certbot, som er klientapplikasjonen for Let's Encrypt CA.
sudo yum -y install certbot-nginx nginx
Start og aktiver Nginx til å starte automatisk ved oppstart:
sudo systemctl start nginx
sudo systemctl enable nginx
Før en forespørsel kan gjøres for sertifikatene, må port 80 og 443, eller standard HTTP- og HTTPS-tjenester, aktiveres gjennom brannmuren. Certbot vil sjekke domeneautoriteten før den utsteder sertifikater.
sudo firewall-cmd --zone=public --add-service=http --permanent
sudo firewall-cmd --zone=public --add-service=https --permanent
Port 8080 trenger ikke lenger å tillates gjennom brannmuren lenger fordi Concourse nå kjøres på standard HTTPS-porten. Fjern brannmuroppføringen for å tillate port 8080.
sudo firewall-cmd --zone=public --remove-port=8080/tcp --permanent
sudo firewall-cmd --reload
Merk
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.
Generer SSL-sertifikatene.
sudo certbot certonly --webroot -w /usr/share/nginx/html -d ci.example.com
De genererte sertifikatene vil sannsynligvis bli lagret i /etc/letsencrypt/live/ci.example.com/
katalogen. SSL-sertifikatet vil bli lagret som fullchain.pem
og den private nøkkelen vil bli lagret som privkey.pem
.
La oss kryptere sertifikater utløper om 90 dager, så det anbefales automatisk fornyelse for sertifikatene er satt opp med cronjobs. Cron er en systemtjeneste som brukes til å kjøre periodiske oppgaver.
Åpne cron-jobbfilen.
sudo crontab -e
Legg til følgende linje på slutten av filen.
30 5 * * 1 /usr/bin/certbot renew --quiet
Cron-jobben ovenfor vil kjøre hver mandag kl. 05.30. Hvis sertifikatet skal utløpe, vil det automatisk bli fornyet.
Opprett en ny virtuell vert.
sudo nano /etc/nginx/conf.d/concourse-ssl.conf
Fyll ut filen.
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;
}
}
Merk : Erstatt ci.example.com
med det faktiske domenet.
Rediger miljøfilen opprettet for concourse Web.
sudo nano /opt/concourse/web.env
Endre verdien på CONCOURSE_EXTERNAL_URL
og legg også til to linjer til på slutten av filen.
CONCOURSE_EXTERNAL_URL=https://ci.example.com
CONCOURSE_BIND_IP=127.0.0.1
CONCOURSE_BIND_PORT=8080
Lagre filen og start Concourse Web, Worker og Nginx webserver på nytt:
sudo systemctl restart concourse-worker concourse-web nginx
All data som sendes til og fra nettleseren er nå sikret med SSL-krypteringer.
Bruker du et annet system? Plesk er et proprietært kontrollpanel for webverten som lar brukere administrere sine personlige og/eller klienters nettsteder, databaser
Squid er et populært, gratis Linux-program som lar deg lage en webproxy for videresending. I denne veiledningen vil du se hvordan du installerer Squid på CentOS for å gjøre deg om
Introduksjon Lighttpd er en apachegaffel som har som mål å være mye mindre ressurskrevende. Den er lett, derav navnet, og er ganske enkel å bruke. Installer
VULTR har nylig gjort endringer på sin side, og alt skal nå fungere bra ut av boksen med NetworkManager aktivert. Skulle du ønske å deaktivere
Icinga2 er et kraftig overvåkingssystem, og når det brukes i en master-klient-modell, kan det erstatte behovet for NRPE-baserte overvåkingskontroller. Mester-klienten
Bruker du et annet system? Apache Cassandra er et gratis og åpen kildekode NoSQL-databasebehandlingssystem som er designet for å gi skalerbarhet, høy
Bruker du et annet system? Microweber er en åpen kildekode dra og slipp CMS og nettbutikk. Microweber-kildekoden er vert på GitHub. Denne guiden vil vise deg
Bruker du et annet system? Vanilla forum er en åpen kildekode-forumapplikasjon skrevet i PHP. Det er en fullt tilpassbar, enkel å bruke og støtter ekstern
Bruker du et annet system? Mattermost er et åpen kildekode, selvdrevet alternativ til Slack SAAS-meldingstjenesten. Med andre ord, med Mattermost kan du ca
Hva du trenger En Vultr VPS med minst 1 GB RAM. SSH-tilgang (med root/administratorrettigheter). Trinn 1: Installere BungeeCord Først
Plesk-kontrollpanelet har en veldig fin integrasjon for Lets Encrypt. Lets Encrypt er en av de eneste SSL-leverandørene som gir ut sertifikater komplett
Lets Encrypt er en sertifiseringsinstans dedikert til å tilby SSL-sertifikater gratis. cPanel har bygget en ryddig integrasjon slik at du og din klient
Bruker du et annet system? Concrete5 er et åpen kildekode CMS som tilbyr mange karakteristiske og nyttige funksjoner for å hjelpe redaktører med å produsere innhold enkelt og
Bruker du et annet system? Review Board er et gratis og åpen kildekodeverktøy for gjennomgang av kildekode, dokumentasjon, bilder og mye mer. Det er nettbasert programvare
I denne veiledningen lærer du hvordan du setter opp HTTP-autentisering for en Nginx-webserver som kjører på CentOS 7. Krav For å komme i gang trenger du
Bruker du et annet system? GoAccess er en åpen kildekode-nettlogganalysator. Du kan bruke den til analyse av logger på sanntidsbasis i enten terminalen eller
YOURLS (Your Own URL Shortener) er en åpen kildekode-applikasjon for URL-forkorting og dataanalyse. I denne artikkelen vil vi dekke installasjonsprosessen
Bruker du et annet system? Introduksjon ArangoDB er en åpen kildekode NoSQL-database med en fleksibel datamodell for dokumenter, grafer og nøkkelverdier. Det er
Innledning /etc/-katalogen spiller en kritisk rolle i måten et Linux-system fungerer på. Grunnen til dette er fordi nesten alle systemkonfigurasjoner
Mange systemadministratorer administrerer store mengder servere. Når filer må åpnes på tvers av forskjellige servere, logger du på hver enkelt individuelt ca
Kunstig intelligens er ikke i fremtiden, det er her akkurat i nåtiden I denne bloggen Les hvordan kunstig intelligens-applikasjoner har påvirket ulike sektorer.
Er du også et offer for DDOS-angrep og forvirret over forebyggingsmetodene? Les denne artikkelen for å løse spørsmålene dine.
Du har kanskje hørt at hackere tjener mye penger, men har du noen gang lurt på hvordan tjener de den slags penger? la oss diskutere.
Vil du se revolusjonerende oppfinnelser fra Google og hvordan disse oppfinnelsene forandret livet til alle mennesker i dag? Les deretter til bloggen for å se oppfinnelser fra Google.
Konseptet med selvkjørende biler som skal ut på veiene ved hjelp av kunstig intelligens er en drøm vi har hatt en stund nå. Men til tross for flere løfter, er de ingen steder å se. Les denne bloggen for å lære mer...
Ettersom vitenskapen utvikler seg raskt og tar over mye av innsatsen vår, øker også risikoen for å utsette oss for en uforklarlig singularitet. Les hva singularitet kan bety for oss.
Lagringsmetodene for dataene har vært i utvikling kan være siden fødselen av dataene. Denne bloggen dekker utviklingen av datalagring på grunnlag av en infografikk.
Les bloggen for å kjenne ulike lag i Big Data Architecture og deres funksjoner på den enkleste måten.
I denne digitaldrevne verden har smarthusenheter blitt en avgjørende del av livet. Her er noen fantastiske fordeler med smarthusenheter om hvordan de gjør livet vårt verdt å leve og enklere.
Nylig lanserte Apple macOS Catalina 10.15.4 en tilleggsoppdatering for å fikse problemer, men det ser ut til at oppdateringen forårsaker flere problemer som fører til muring av mac-maskiner. Les denne artikkelen for å lære mer