Opprette en Jekyll-blogg på Ubuntu 16.04
Bruker du et annet system? Jekyll er et flott alternativ til WordPress for blogging eller deling av innhold. Det krever ingen databaser, og det er veldig enkelt, jeg
En vanlig bruk av en Vultr virtuell server er å være vert for Wordpress-nettsteder. Denne veiledningen viser deg hvordan du automatiserer konfigurasjonen av en virtuell server fra bunnen av (ved hjelp av Ansible) og distribuerer flere uavhengige Wordpress-nettsteder (ved hjelp av Webmin/Virtualmin). Virtualmin/Webmin er et grafisk brukergrensesnitt som lar deg administrere distribusjon av flere virtuelle serverkontoer på samme maskin (komplett med LAMP/LEMP-stack). Virtualmin ligner veldig på cPanel og Plesk, og i denne opplæringen skal vi bruke den gratis GPL-utgaven. Etter første oppsett av Vultr-serveren og installasjon av Virtualmin, kan du veldig raskt sette opp flere virtuelle servere fra Virtualmin-grensesnittet og installere Wordpress direkte på den virtuelle serveren komplett med sitt eget domenenavn.
I denne opplæringen, i stedet for å legge inn en lang liste med kommandoer manuelt, bruker vi i stedet Ansible. Ansible er et pythonbasert automatiseringsverktøy som lar deg pålitelig og gjentatte ganger automatisere serveroppgaver. Dette betyr at når du har fulgt denne opplæringen, vil du kunne distribuere en annen server på samme måte med bare et par kommandoer.
Installer Ansible på din lokale maskin eller en annen server.
mkdir ansible
cd ansible
virtualenv env
source env/bin/activate
pip install ansible
Ansible fungerer ved å logge på serveren din via SSH. SSH-tilgang er sikrest hvis vi bruker nøkler i stedet for et passord. La oss først generere et offentlig og privat nøkkelpar.
mkdir ssh_keys
ssh-keygen -t rsa -b 2048 -f ./ssh_keys
I ssh_keys
katalogen vil det nå være to filer, ssh_keys
og ssh_keys.pub
. ssh_keys
er din private nøkkelfil og bør oppbevares trygt. Du kan nå åpne ssh_keys.pub
, som inneholder den offentlige nøkkelen.
Logg på Vultrs nettdashbord og klikk på Deploy New Server
.
Velg en region, Servertype (Ubuntu 16.04), Serverstørrelse, og klikk deretter i del 6 ( SSH keys
) Add New
. På neste side limer du inn den offentlige nøkkelen og gir den et navn, og klikker Add SSH key
. Kontroller til slutt at nøkkelen er valgt, og klikk på Deploy now
.
Når serveren er ferdig distribuert, vil du bli vist IP-adressen. Du må logge på domenenavnets DNS-server og peke den til denne adressen.
Ansibles automatiseringsfiler kalles roles
. Vi vil først sette opp katalogstrukturen (inne i ansible
katalogen du nettopp opprettet i trinn 1), og de grunnleggende filene.
mkdir -p group_vars roles/common/tasks/ roles/common/handlers
touch hosts group_vars/all deploy.yml roles/common/handlers/main.yml
Rediger hosts
filen slik at den inneholder følgende, og erstatter ip address
serveren du nettopp opprettet. Ansible bruker python 2, som Ubuntu 16.04 ikke har installert som standard. I hosts
filen forteller vi Ansible å bruke python 3.
[common]
192.0.2.1 ansible_python_interpreter=/usr/bin/python3
Rediger deploy.yml
filen slik at den inneholder følgende. Vi kommer til å bruke root
brukeren.
- name: apply common configuration to server
hosts: all
user: root
roles:
- common
Rediger /group_vars/all
filen slik at den inneholder følgende. Disse variablene forteller Ansible plasseringen av SSH-nøklene dine, swap-filparametere, ditt fullt kvalifiserte domenenavn og root-passordet. Husk å ikke inkludere filen i kildekontrollen da den inneholder passordet ditt i klartekst.
ssh_dir: ./ssh_keys
swap_file_path: /swapfile
swap_file_size: 1G
swappiness: 1
hostname: example.com
new_password: YOUR_PASSWORD_HERE
Rediger common/handlers/main.yml
filen slik at den inneholder følgende.
- name: restart sshd
service: name=ssh state=restarted
Ansible automatisering er lettere å forstå hvis vi deler den ned i oppgaver. La oss lage filer for hver av oppgavene våre i prosessen.
cd roles/common/tasks
touch hosts main.yml setup.yml users.yml ufw.yml swap.yml virtualmin.yml
main.yml
skal peke til hver fil som inneholder Ansible-kommandoene, så rediger den slik at den inneholder følgende.
- include: setup.yml
- include: users.yml
- include: ufw.yml
- include: swap.yml
- include: virtualmin.yml
Det første trinnet i å sette opp en ny server er å oppdatere repo-cachen og angi tidssonen. Rediger common/handlers/setup.yml
filen slik at den inneholder følgende.
- apt: update_cache=yes
sudo: yes
- name: set timezone to Europe/London
timezone:
name: Europe/London
Nå gir vi root-brukeren et passord (som vi trenger for å få tilgang til virtualmin-nettgrensesnittet), men deaktiverer passordpålogginger over SSH (siden vi bruker den sikrere nøklermetoden for autentisering). Rediger for users.yml
å inneholde følgende.
- name: Change passwd
user: name=root password={{ new_password | password_hash('sha512') }} update_password=always
- name: Disable SSH password login
lineinfile: dest=/etc/ssh/sshd_config regexp="^#?PasswordAuthentication" line="PasswordAuthentication no"
notify: restart sshd
For sikkerheten trenger vi en brannmur. Vi vil bruke den ukompliserte brannmuren for å tillate SSH-tilgang på port 22
, nettilgang på port 80
og sikker nettilgang på port 443
. Rediger ufw.yml
filen slik at den inneholder følgende.
- name: Set default firewall policy to deny all
become: True
ufw: state=enabled direction=incoming policy=deny
tags: firewall
- name: enable SSH in firewall
ufw: rule=allow port=22
sudo: yes
- name: enable HTTP connections for web server
ufw: rule=allow port=80
sudo: yes
- name: enable HTTPS connections for web server
ufw: rule=allow port=443
sudo: yes
- name: enable firewall
ufw: state=enabled
sudo: yes
Eventuelt kan du inkludere en byttefil. Dette er viktig hvis serveren din har mindre enn 2 GB RAM for å unngå at det er tomt for minne. Rediger for swap.yml
å inneholde følgende.
- name: Set swap_file variable
set_fact:
swap_file: "{{swap_file_path}}"
tags:
- swap.set.file.path
- name: Check if swap file exists
stat:
path: "{{swap_file}}"
register: swap_file_check
tags:
- swap.file.check
- name: Create swap file
command: fallocate -l {{swap_file_size}} {{swap_file}}
when: not swap_file_check.stat.exists
tags:
- swap.file.create
- name: Change swap file permissions
file: path="{{swap_file}}"
owner=root
group=root
mode=0600
tags:
- swap.file.permissions
- name: Format swap file
sudo: yes
command: "mkswap {{swap_file}}"
when: not swap_file_check.stat.exists
tags:
- swap.file.mkswap
- name: Write swap entry in fstab
mount: name=none
src={{swap_file}}
fstype=swap
opts=sw
passno=0
dump=0
state=present
tags:
- swap.fstab
- name: Turn on swap
sudo: yes
command: swapon -a
when: not swap_file_check.stat.exists
tags:
- swap.turn.on
- name: Set swappiness
sudo: yes
sysctl:
name: vm.swappiness
value: "{{swappiness}}"
tags:
- swap.set.swappiness
Virtualmin har sin egen installasjonsfil som kan lastes ned og kjøres av Ansible. Her bruker vi minimal installasjon ( LINK
). De ekstra elementene er å konfigurere MySQL-serverpassordet som ikke er satt når det installeres av Virtualmin. Vi må midlertidig stoppe MySQL og legge til autentiseringskatalogen før vi endrer passordet. Rediger for virtualmin.yml
å inneholde følgende.
- name: download virtualmin install script
get_url: >
url=http://software.virtualmin.com/gpl/scripts/install.sh
dest=/root/install.sh
mode=0755
- name: virtualmin install (takes around 10 mins) you can see progress using $ sudo tail -f /root/virtualmin-install.log
tags: non-idem
shell: ~/install.sh --force --hostname {{ hostname }} --minimal --yes
args:
chdir: /root
- name: temp stop mysql
service:
name: mysql
state: stopped
- name: change owner (and group) of mysqld dir
file:
path: "/var/run/mysqld"
state: directory
owner: mysql
group: mysql
- name: virtualmin set mysql password
shell: virtualmin set-mysql-pass --user root --pass {{ new_password }}
- name: restart mysql
service:
name: mysql
state: started
Ansible-rollen er nå fullført, og vi er klare til å distribuere.
Fra ansible-mappen kan vi nå ganske enkelt kjøre følgende kommando, og Ansible vil utføre alle oppgavene vi har opprettet automatisk. Første gang du kobler til vil du få en SSH-nøkkeladvarsel, bare skriv " yes
" ved ledeteksten.
ansible-playbook deploy.yml --private-key=ssh_keys/ssh_keys -i hosts
Hvis vi ønsker å bruke en annen server, kan vi ganske enkelt endre ip-adressen i vertsfilen og kjøre den kommandoen på nytt for å fullføre nøyaktig samme oppsett.
Installasjonen er fullført og vi kan nå gå til https://192.0.2.1:10000
(bruk ip-adressen til serveren din). Nettleseren din vil utstede en sikkerhetsadvarsel fordi sertifikatet er selvsignert, så klikk advanced
og legg til et unntak. Du vil bli presentert med en påloggingsside. Brukernavnet er root
, og passordet er det du skrev inn i group_vars/all
filen i trinn 3. Første gang du går inn i Virtualmin vil du bli presentert med etterinstallasjonsveiviseren. Du kan enten gå gjennom disse innstillingene manuelt eller klikke for cancel
å godta standardinnstillingene.
For å få din første Wordpress-server i gang, klikk på fra Virtualmin-dashbordet Create Virtual Server
. Du må angi et domenenavn, en beskrivelse og et administratorpassord. Domenenavnet bør være forskjellig fra det fullstendige Virtualmin-domenenavnet, og du må peke DNS-posten til ip-adressen til serveren din.
Klikk på Create Server
. Når Virtualmin er ferdig med å lage serveren din, klikk Install Scripts
på menyen til venstre. Velg Wordpress
, klikk Show install options
og på den neste siden velg plasseringen av Wordpress-installasjonen. Bare velg At top level
og klikk Install Now
.
Det er alt du trenger å gjøre - du kan fullføre Wordpress-installasjonen ved å besøke ditt http://example.net/wp-admin/install.php
(hvor example.net
er dette virtuelle serverens domenenavn). Hvis DNS-postene dine ikke har spredt seg ennå, kan du gå til Services > Preview Website
fra Virtualmin-menyen.
Du kan gjenta dette trinnet flere ganger for å lage flere Wordpress-sider alle på samme Vultr-server.
Bruker du et annet system? Jekyll er et flott alternativ til WordPress for blogging eller deling av innhold. Det krever ingen databaser, og det er veldig enkelt, jeg
Bruker du et annet system? MODX Revolution er et raskt, fleksibelt, skalerbart, gratis og åpen kildekode, enterprise-grade Content Management System (CMS) skrevet i
Bruker du et annet system? MODX Revolution er et raskt, fleksibelt, skalerbart, åpen kildekode, enterprise-grade Content Management System (CMS) skrevet i PHP. Det jeg
Introduksjon WordPress er det dominerende innholdsstyringssystemet på internett. Den driver alt fra blogger til komplekse nettsteder med dynamisk innhold
Bruker du et annet system? Jekyll er et godt alternativ til WordPress. Det krever ingen databaser, og det fungerer med et språk mange er kjent med
Bruker du et annet system? MODX Revolution er et raskt, fleksibelt, skalerbart, gratis og åpen kildekode, enterprise-grade Content Management System (CMS) skrevet i
Bruker du et annet system? Fork er et åpen kildekode CMS skrevet i PHP. Forks kildekode er vert på GitHub. Denne guiden viser deg hvordan du installerer Fork CM
Neos er et innovativt innholdsstyringssystem med åpen kildekode som er flott for å lage og redigere innhold på nettet. Med forfattere og redaktører i tankene, Neo
Bruker du et annet system? Ghost er en bloggplattform med åpen kildekode som har blitt populær blant utviklere og vanlige brukere siden 201
Bruker du et annet system? SilverStripe er et fleksibelt og utvidbart, åpen kildekode, enterprise-grade Content Management System (CMS) skrevet i PHP. Det er lett
Bruker du et annet system? Ghost er en bloggplattform med åpen kildekode som har blitt populær blant utviklere og vanlige brukere siden 201
En vanlig bruk av en Vultr virtuell server er å være vert for Wordpress-nettsteder. Denne guiden viser deg hvordan du automatiserer konfigurasjonen av en virtuell server fra bunnen av
Ghost er den nyeste og beste oppkomlingen til å konkurrere med WordPress. Temautvikling er rask og enkel å lære fordi Ghost-utviklerne bestemte seg for å bruke både th
Ghost er en moderne, åpen kildekode-publiseringsplattform bygget på Node.js med en Ember.js admin-klient, en JSON API og en tema-API drevet av Handlebars.js. Ghos
Bruker du et annet system? MODX Revolution er et raskt, fleksibelt, skalerbart, gratis og åpen kildekode, enterprise-grade Content Management System (CMS) skrevet i
Bruker du et annet system? Dotclear er en veldig enkel bloggingmotor. Den er åpen kildekode og enkel å bruke. Denne opplæringen vil gå gjennom installasjonen på
Bruker du et annet system? SilverStripe er et fleksibelt og utvidbart gratis og åpen kildekode for enterprise-grade Content Management System (CMS) skrevet i PHP. Jeg
Bruker du et annet system? Fork er et åpen kildekode CMS skrevet i PHP. Forks kildekode er vert på GitHub. Denne guiden viser deg hvordan du installerer Fork CM
Bruker du et annet system? Ghost er en bloggplattform med åpen kildekode som har blitt mer populær blant utviklere og vanlige brukere siden utgivelsen i 2013. Jeg
Bruker du et annet system? Fork er et åpen kildekode CMS skrevet i PHP. Forks kildekode er vert på GitHub. Denne guiden viser deg hvordan du installerer Fork CM
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