Oprettelse af en Jekyll-blog på Ubuntu 16.04
Bruger du et andet system? Jekyll er et godt alternativ til WordPress til at blogge eller dele indhold. Det kræver ingen databaser, og det er meget nemt, dvs
En almindelig brug af en Vultr virtuel server er at være vært for Wordpress-websteder. Denne vejledning viser dig, hvordan du automatiserer konfigurationen af en virtuel server fra bunden (ved hjælp af Ansible) og implementerer flere uafhængige Wordpress-websteder (ved hjælp af Webmin/Virtualmin). Virtualmin/Webmin er en grafisk brugergrænseflade, der giver dig mulighed for at administrere implementeringen af flere virtuelle serverkonti på den samme maskine (komplet med LAMP/LEMP-stak). Virtualmin ligner meget cPanel og Plesk, og i denne vejledning vil vi bruge den gratis GPL-udgave. Efter indledende opsætning af Vultr-serveren og installation af Virtualmin, kan du meget hurtigt opsætte flere virtuelle servere fra Virtualmin-grænsefladen og direkte installere Wordpress på den virtuelle server komplet med sit eget domænenavn.
I denne vejledning vil vi i stedet for manuelt at indtaste en lang liste af kommandoer bruge Ansible. Ansible er et python-baseret automatiseringsværktøj, som giver dig mulighed for pålideligt og gentagne gange at automatisere serveropgaver. Det betyder, at når du har fulgt denne vejledning, vil du være i stand til at implementere en anden server på samme måde med blot et par kommandoer.
Installer Ansible på din lokale maskine eller en anden server.
mkdir ansible
cd ansible
virtualenv env
source env/bin/activate
pip install ansible
Ansible fungerer ved at logge på din server via SSH. SSH-adgang er mest sikker, hvis vi bruger nøgler i stedet for en adgangskode. Lad os først generere et offentligt og et privat nøglepar.
mkdir ssh_keys
ssh-keygen -t rsa -b 2048 -f ./ssh_keys
I ssh_keys
mappen vil der nu være to filer, ssh_keys
og ssh_keys.pub
. ssh_keys
er din private nøglefil og bør opbevares sikkert. Du kan nu åbne ssh_keys.pub
, som indeholder den offentlige nøgle.
Log ind på Vultr-webdashboardet, og klik på Deploy New Server
.
Vælg en region, Servertype (Ubuntu 16.04), Serverstørrelse, og SSH keys
klik derefter i del 6 ( ) Add New
. Indsæt din offentlige nøgle på næste side og giv den et navn, og klik på Add SSH key
. Sørg endelig for, at nøglen er valgt, og klik på Deploy now
.
Når serveren er færdig med at installere, får du vist dens ip-adresse. Du skal logge ind på dit domænenavns DNS-server og pege den til denne adresse.
Ansibles automatiseringsfiler hedder roles
. Vi opsætter først mappestrukturen (inde i den ansible
mappe, du lige har oprettet i trin 1), og de grundlæggende filer.
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, så den indeholder følgende, og erstatter ip address
den server, du lige har oprettet. Ansible bruger python 2, som Ubuntu 16.04 ikke har installeret som standard. I hosts
filen fortæller vi Ansible at bruge python 3.
[common]
192.0.2.1 ansible_python_interpreter=/usr/bin/python3
Rediger deploy.yml
filen, så den indeholder følgende. Vi kommer til at bruge root
brugeren.
- name: apply common configuration to server
hosts: all
user: root
roles:
- common
Rediger /group_vars/all
filen, så den indeholder følgende. Disse variabler fortæller Ansible placeringen af dine SSH-nøgler, swap-filparametre, dit fuldt kvalificerede domænenavn og root-adgangskoden. Husk ikke at inkludere filen i kildekontrol, da den indeholder din adgangskode 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, så den indeholder følgende.
- name: restart sshd
service: name=ssh state=restarted
Ansible automatisering er lettere at forstå, hvis vi deler den op i opgaver. Lad os oprette filer til hver af vores opgaver i processen.
cd roles/common/tasks
touch hosts main.yml setup.yml users.yml ufw.yml swap.yml virtualmin.yml
main.yml
skal pege på hver fil, der indeholder Ansible-kommandoerne, så rediger den, så den indeholder følgende.
- include: setup.yml
- include: users.yml
- include: ufw.yml
- include: swap.yml
- include: virtualmin.yml
Det første trin i opsætningen af en ny server er at opdatere repo-cachen og indstille tidszonen. Rediger common/handlers/setup.yml
filen, så den indeholder følgende.
- apt: update_cache=yes
sudo: yes
- name: set timezone to Europe/London
timezone:
name: Europe/London
Nu giver vi root-brugeren en adgangskode (som vi skal bruge for at få adgang til virtualmin-webgrænsefladen), men deaktiverer adgangskodelogin over SSH (da vi bruger den mere sikre nøglemetode til godkendelse). Rediger for users.yml
at indeholde 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
Af sikkerhedsmæssige årsager har vi brug for en firewall. Vi bruger den ukomplicerede firewall til at tillade SSH-adgang på port 22
, webadgang på port 80
og sikker webadgang på port 443
. Rediger ufw.yml
filen, så den indeholder 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
Du kan eventuelt inkludere en swap-fil. Dette er vigtigt, hvis din server har mindre end 2 GB RAM for at undgå nedbrud i hukommelsen. Rediger for swap.yml
at indeholde 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 installationsfil, som kan downloades og køres af Ansible. Her bruger vi den minimale installation ( LINK
). De yderligere elementer er at konfigurere MySQL-serveradgangskoden, som ikke er indstillet, når den installeres af Virtualmin. Vi er nødt til midlertidigt at stoppe MySQL og tilføje autentificeringsmappen før vi ændrer adgangskoden. Rediger for virtualmin.yml
at indeholde 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 nu afsluttet, og vi er klar til at implementere.
Fra ansible-mappen kan vi nu blot køre følgende kommando, og Ansible udfører alle de opgaver, vi har oprettet automatisk. Første gang du opretter forbindelse vil du få en SSH-nøgleadvarsel, skriv bare " yes
" ved prompten.
ansible-playbook deploy.yml --private-key=ssh_keys/ssh_keys -i hosts
Hvis vi ønsker at bruge en anden server, kan vi blot ændre ip-adressen i hosts-filen og køre den kommando igen for at fuldføre nøjagtig den samme opsætning.
Installationen er færdig, og vi kan nu gå til https://192.0.2.1:10000
(brug ip-adressen på din server). Din browser vil udsende en sikkerhedsadvarsel, fordi certifikatet er selvsigneret, så klik advanced
og tilføj en undtagelse. Du vil blive præsenteret for en login-side. Brugernavnet er root
, og adgangskoden er den, du indtastede i group_vars/all
filen i trin 3. Første gang du indtaster Virtualmin, vil du blive præsenteret for efterinstallationsguiden. Du kan enten gå igennem disse indstillinger manuelt eller klikke for cancel
at acceptere standardindstillingerne.
For at få din første Wordpress-server op at køre, skal du klikke på fra Virtualmin-dashboardet Create Virtual Server
. Du skal indtaste et domænenavn, en beskrivelse og en administratoradgangskode. Domænenavnet skal være forskelligt fra Virtualmins fuldt kvalificerede domænenavn, og du skal pege DNS-posten til din servers ip-adresse.
Klik på Create Server
. Når Virtualmin er færdig med at oprette din server, skal du klikke Install Scripts
på menuen til venstre. Vælg Wordpress
, klik på Show install options
, og vælg placeringen af Wordpress-installationen på den følgende side. Bare vælg At top level
og klik Install Now
.
Det er alt, du skal gøre - du kan fuldføre Wordpress-installationen ved at besøge dit http://example.net/wp-admin/install.php
(hvor example.net
er dette virtuelle servers domænenavn). Hvis dine DNS-poster ikke har spredt sig endnu, kan du gå til Services > Preview Website
fra Virtualmin-menuen.
Du kan gentage dette trin flere gange for at oprette flere Wordpress-websteder alle på den samme Vultr-server.
Bruger du et andet system? Jekyll er et godt alternativ til WordPress til at blogge eller dele indhold. Det kræver ingen databaser, og det er meget nemt, dvs
Bruger du et andet system? MODX Revolution er et hurtigt, fleksibelt, skalerbart, gratis og open source, enterprise-grade Content Management System (CMS) skrevet i
Bruger du et andet system? MODX Revolution er et hurtigt, fleksibelt, skalerbart, open source, enterprise-grade Content Management System (CMS) skrevet i PHP. Det jeg
Introduktion WordPress er det dominerende content management system på internettet. Det driver alt fra blogs til komplekse websteder med dynamisk indhold
Bruger du et andet system? Jekyll er et godt alternativ til WordPress. Det kræver ingen databaser, og det fungerer med et sprog, som mange kender til
Bruger du et andet system? MODX Revolution er et hurtigt, fleksibelt, skalerbart, gratis og open source, enterprise-grade Content Management System (CMS) skrevet i
Bruger du et andet system? Fork er et open source CMS skrevet i PHP. Forks kildekode er hostet på GitHub. Denne vejledning viser dig, hvordan du installerer Fork CM
Neos er et innovativt open source-indholdsstyringssystem, som er fantastisk til at skabe og redigere onlineindhold. Med forfattere og redaktører i tankerne, Neo
Bruger du et andet system? Ghost er en open source-blogplatform, der har vundet popularitet blandt udviklere og almindelige brugere siden dens 201
Bruger du et andet system? SilverStripe er et fleksibelt og udvidelsesvenligt, open source, enterprise-grade Content Management System (CMS) skrevet i PHP. Det er let
Bruger du et andet system? Ghost er en open source-blogplatform, der har vundet popularitet blandt udviklere og almindelige brugere siden dens 201
En almindelig brug af en Vultr virtuel server er at være vært for Wordpress-websteder. Denne guide viser dig, hvordan du automatiserer konfigurationen af en virtuel server fra bunden
Ghost er den seneste og bedste opkomling til at konkurrere med WordPress. Temaudvikling er hurtig og nem at lære, fordi Ghost-udviklerne besluttede at bruge både th
Ghost er en moderne, open source publiceringsplatform bygget på Node.js med en Ember.js admin-klient, en JSON API og en tema-API drevet af Handlebars.js. Ghos
Bruger du et andet system? MODX Revolution er et hurtigt, fleksibelt, skalerbart, gratis og open source, enterprise-grade Content Management System (CMS) skrevet i
Bruger du et andet system? Dotclear er en meget simpel blogging-motor. Det er open source og nemt at bruge. Denne tutorial vil gennemgå installationen på
Bruger du et andet system? SilverStripe er et fleksibelt og udvidelsesvenligt gratis og open source enterprise-grade Content Management System (CMS) skrevet i PHP. jeg
Bruger du et andet system? Fork er et open source CMS skrevet i PHP. Forks kildekode er hostet på GitHub. Denne vejledning viser dig, hvordan du installerer Fork CM
Bruger du et andet system? Ghost er en open source-blogplatform, der er ved at vinde popularitet blandt udviklere og almindelige brugere siden udgivelsen i 2013. jeg
Bruger du et andet system? Fork er et open source CMS skrevet i PHP. Forks kildekode er hostet på GitHub. Denne vejledning viser dig, hvordan du installerer Fork CM
Kunstig intelligens er ikke i fremtiden, det er her lige i nuet I denne blog Læs, hvordan kunstig intelligens-applikationer har påvirket forskellige sektorer.
Er du også et offer for DDOS-angreb og forvirret over forebyggelsesmetoderne? Læs denne artikel for at løse dine spørgsmål.
Du har måske hørt, at hackere tjener mange penge, men har du nogensinde spekuleret på, hvordan tjener de den slags penge? lad os diskutere.
Vil du se revolutionerende opfindelser fra Google, og hvordan disse opfindelser ændrede livet for ethvert menneske i dag? Læs derefter til bloggen for at se opfindelser fra Google.
Konceptet med selvkørende biler til at køre på vejene ved hjælp af kunstig intelligens er en drøm, vi har haft i et stykke tid nu. Men på trods af flere løfter er de ingen steder at se. Læs denne blog for at lære mere...
Efterhånden som videnskaben udvikler sig i et hurtigt tempo og overtager en stor del af vores indsats, stiger risikoen for at udsætte os selv for en uforklarlig Singularitet. Læs, hvad singularitet kunne betyde for os.
Opbevaringsmetoderne for dataene har været under udvikling, kan være siden fødslen af dataene. Denne blog dækker udviklingen af datalagring på basis af en infografik.
Læs bloggen for at kende forskellige lag i Big Data-arkitekturen og deres funktionaliteter på den enkleste måde.
I denne digitalt drevne verden er smarte hjemmeenheder blevet en afgørende del af livet. Her er et par fantastiske fordele ved smarte hjemmeenheder om, hvordan de gør vores liv værd at leve og enklere.
For nylig udgav Apple macOS Catalina 10.15.4 en supplerende opdatering for at løse problemer, men det ser ud til, at opdateringen forårsager flere problemer, hvilket fører til mursten af mac-maskiner. Læs denne artikel for at lære mere