Skapa en Jekyll-blogg på Ubuntu 16.04
Använder du ett annat system? Jekyll är ett bra alternativ till WordPress för att blogga eller dela innehåll. Det kräver inga databaser och det är väldigt enkelt i
En vanlig användning av en Vultr virtuell server är att vara värd för Wordpress-webbplatser. Den här guiden visar hur du automatiserar konfigurationen av en virtuell server från början (med Ansible) och distribuerar flera oberoende Wordpress-webbplatser (med Webmin/Virtualmin). Virtualmin/Webmin är ett grafiskt användargränssnitt som låter dig hantera distributionen av flera virtuella serverkonton på samma maskin (komplett med LAMP/LEMP-stack). Virtualmin är väldigt likt cPanel och Plesk, och i den här handledningen kommer vi att använda den kostnadsfria GPL-utgåvan. Efter initial installation av Vultr-servern och installation av Virtualmin kan du mycket snabbt konfigurera flera virtuella servrar från Virtualmin-gränssnittet och direkt installera Wordpress på den virtuella servern komplett med sitt eget domännamn.
I den här handledningen, istället för att manuellt ange en lång lista med kommandon, kommer vi istället att använda Ansible. Ansible är ett pythonbaserat automationsverktyg som låter dig på ett tillförlitligt och upprepat sätt automatisera serveruppgifter. Det betyder att när du har följt den här handledningen kommer du att kunna distribuera en annan server på samma sätt med bara ett par kommandon.
Installera Ansible på din lokala dator eller annan server.
mkdir ansible
cd ansible
virtualenv env
source env/bin/activate
pip install ansible
Ansible fungerar genom att logga in på din server via SSH. SSH-åtkomst är säkrast om vi använder nycklar snarare än ett lösenord. Låt oss först skapa ett offentligt och privat nyckelpar.
mkdir ssh_keys
ssh-keygen -t rsa -b 2048 -f ./ssh_keys
I ssh_keys
katalogen kommer det nu att finnas två filer, ssh_keys
och ssh_keys.pub
. ssh_keys
är din privata nyckelfil och bör förvaras säkert. Du kan nu öppna ssh_keys.pub
, som innehåller den publika nyckeln.
Logga in på Vultrs webbinstrumentpanel och klicka på Deploy New Server
.
Välj en region, Servertyp (Ubuntu 16.04), Serverstorlek och sedan i del 6 ( SSH keys
), klicka på Add New
. På nästa sida klistra in din publika nyckel och ge den ett namn och klicka på Add SSH key
. Se till slutligen att nyckeln är vald och klicka på Deploy now
.
När servern har installerats färdigt visas dess ip-adress. Du måste logga in på ditt domännamns DNS-server och peka den till den här adressen.
Ansibles automatiseringsfiler kallas roles
. Vi kommer först att ställa in katalogstrukturen (inuti ansible
katalogen du just skapade i steg 1) och de grundläggande filerna.
mkdir -p group_vars roles/common/tasks/ roles/common/handlers
touch hosts group_vars/all deploy.yml roles/common/handlers/main.yml
Redigera hosts
filen så att den innehåller följande, ersätt ip address
servern du just skapade. Ansible använder python 2, som Ubuntu 16.04 inte har installerat som standard. I hosts
filen säger vi till Ansible att använda python 3.
[common]
192.0.2.1 ansible_python_interpreter=/usr/bin/python3
Redigera deploy.yml
filen så att den innehåller följande. Vi kommer att använda root
användaren.
- name: apply common configuration to server
hosts: all
user: root
roles:
- common
Redigera /group_vars/all
filen så att den innehåller följande. Dessa variabler talar om för Ansible platsen för dina SSH-nycklar, växlingsfilparametrar, ditt fullt kvalificerade domännamn och root-lösenordet. Kom ihåg att inte inkludera filen i källkontrollen eftersom den innehåller ditt lösenord i klartext.
ssh_dir: ./ssh_keys
swap_file_path: /swapfile
swap_file_size: 1G
swappiness: 1
hostname: example.com
new_password: YOUR_PASSWORD_HERE
Redigera common/handlers/main.yml
filen så att den innehåller följande.
- name: restart sshd
service: name=ssh state=restarted
Ansible automation är lättare att förstå om vi delar upp det i uppgifter. Låt oss skapa filer för var och en av våra uppgifter i processen.
cd roles/common/tasks
touch hosts main.yml setup.yml users.yml ufw.yml swap.yml virtualmin.yml
main.yml
bör peka på varje fil som innehåller Ansible-kommandona, så redigera den så att den innehåller följande.
- include: setup.yml
- include: users.yml
- include: ufw.yml
- include: swap.yml
- include: virtualmin.yml
Det första steget i att sätta upp en ny server är att uppdatera repo-cachen och ställa in tidszonen. Redigera common/handlers/setup.yml
filen så att den innehåller följande.
- apt: update_cache=yes
sudo: yes
- name: set timezone to Europe/London
timezone:
name: Europe/London
Nu kommer vi att ge rotanvändaren ett lösenord (som vi kommer att behöva för att komma åt virtualmins webbgränssnitt), men inaktivera lösenordsinloggningar över SSH (eftersom vi använder den säkrare nycklarmetoden för autentisering). Redigera för users.yml
att innehålla följande.
- 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
För säkerheten behöver vi en brandvägg. Vi kommer att använda den okomplicerade brandväggen för att tillåta SSH-åtkomst på port 22
, webbåtkomst på port 80
och säker webbåtkomst på port 443
. Redigera ufw.yml
filen så att den innehåller följande.
- 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
Alternativt kan du inkludera en växlingsfil. Detta är viktigt om din server har mindre än 2 GB RAM för att undvika att minnet kraschar. Redigera för swap.yml
att innehålla följande.
- 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 en egen installationsfil som kan laddas ner och köras av Ansible. Här använder vi minimal installation ( LINK
). De ytterligare objekten är att konfigurera MySQL-serverlösenordet som inte ställs in när det installeras av Virtualmin. Vi måste tillfälligt stoppa MySQL och lägga till autentiseringskatalogen innan vi ändrar lösenordet. Redigera för virtualmin.yml
att innehålla följande.
- 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 är nu klar och vi är redo att distribuera.
Från ansible-mappen kan vi nu helt enkelt köra följande kommando, och Ansible kommer att utföra alla uppgifter vi har skapat automatiskt. Första gången du ansluter får du en SSH-nyckelvarning, skriv bara " yes
" vid prompten.
ansible-playbook deploy.yml --private-key=ssh_keys/ssh_keys -i hosts
Om vi vill använda en annan server kan vi helt enkelt ändra ip-adressen i hosts-filen och köra det kommandot igen för att slutföra exakt samma installation.
Installationen är klar och vi kan nu gå till https://192.0.2.1:10000
(använd din servers ip-adress). Din webbläsare kommer att utfärda en säkerhetsvarning eftersom certifikatet är självsignerat, så klicka advanced
och lägg till ett undantag. Du kommer att presenteras med en inloggningssida. Användarnamnet är root
, och lösenordet är det du skrev in i group_vars/all
filen i steg 3. Första gången du går in i Virtualmin kommer du att presenteras med efterinstallationsguiden. Du kan antingen gå igenom dessa inställningar manuellt eller klicka för cancel
att acceptera standardinställningarna.
För att få igång din första Wordpress-server, klicka på från Virtualmin-instrumentpanelen Create Virtual Server
. Du måste ange ett domännamn, en beskrivning och ett administratörslösenord. Domännamnet bör skilja sig från det fullständiga Virtualmin-domännamnet och du måste peka DNS-posten till din servers ip-adress.
Klicka på Create Server
. När Virtualmin har skapat din server, klicka Install Scripts
på menyn till vänster. Välj Wordpress
, klicka på Show install options
och på följande sida välj platsen för Wordpress-installationen. Välj bara At top level
och klicka Install Now
.
Det är allt du behöver göra - du kan slutföra Wordpress-installationen genom att besöka ditt domännamn http://example.net/wp-admin/install.php
(var example.net
är det här virtuella serverns domännamn). Om dina DNS-poster inte har spridits ännu kan du gå till Services > Preview Website
från Virtualmin-menyn.
Du kan upprepa detta steg flera gånger för att skapa flera Wordpress-webbplatser på samma Vultr-server.
Använder du ett annat system? Jekyll är ett bra alternativ till WordPress för att blogga eller dela innehåll. Det kräver inga databaser och det är väldigt enkelt i
Använder du ett annat system? MODX Revolution är ett snabbt, flexibelt, skalbart, gratis och öppen källkod, företagsklassat Content Management System (CMS) skrivet i
Använder du ett annat system? Jekyll är ett bra alternativ till WordPress. Det kräver inga databaser och det fungerar med ett språk många är bekanta med
Använder du ett annat system? MODX Revolution är ett snabbt, flexibelt, skalbart, gratis och öppen källkod, företagsklassat Content Management System (CMS) skrivet i
Använder du ett annat system? Fork är ett CMS med öppen källkod skrivet i PHP. Forks källkod finns på GitHub. Den här guiden visar hur du installerar Fork CM
Neos är ett innovativt innehållshanteringssystem med öppen källkod som är utmärkt för att skapa och redigera onlineinnehåll. Med författare och redaktörer i åtanke, Neo
Använder du ett annat system? Ghost är en bloggplattform med öppen källkod som har vunnit popularitet bland utvecklare och vanliga användare sedan 201
Använder du ett annat system? Ghost är en bloggplattform med öppen källkod som har vunnit popularitet bland utvecklare och vanliga användare sedan 201
En vanlig användning av en Vultr virtuell server är att vara värd för Wordpress-webbplatser. Den här guiden visar hur du automatiserar konfigurationen av en virtuell server från början
Ghost är den senaste och bästa uppkomlingen att konkurrera med WordPress. Temautveckling är snabb och enkel att lära sig eftersom Ghost-utvecklarna bestämde sig för att använda både th
Ghost är en modern publiceringsplattform med öppen källkod byggd på Node.js med en Ember.js-adminklient, ett JSON-API och ett tema-API som drivs av Handlebars.js. Ghos
Använder du ett annat system? MODX Revolution är ett snabbt, flexibelt, skalbart, gratis och öppen källkod, företagsklassat Content Management System (CMS) skrivet i
Använder du ett annat system? Dotclear är en väldigt enkel bloggmotor. Det är öppen källkod och lätt att använda. Denna handledning kommer att gå igenom installationen på
Använder du ett annat system? Fork är ett CMS med öppen källkod skrivet i PHP. Forks källkod finns på GitHub. Den här guiden visar hur du installerar Fork CM
Använder du ett annat system? Ghost är en bloggplattform med öppen källkod som vinner popularitet bland utvecklare och vanliga användare sedan lanseringen 2013. jag
Använder du ett annat system? Fork är ett CMS med öppen källkod skrivet i PHP. Forks källkod finns på GitHub. Den här guiden visar hur du installerar Fork CM
Typesetter är ett CMS med öppen källkod skrivet i PHP fokuserat på användarvänlighet med True WYSIWYG-redigering och platt-fillagring. I den här artikeln kommer vi att installera
Vultr-instanser är ett bra sätt att köra din WordPress-blogg, men en mer anmärkningsvärd tillägg till WordPress är WooCommerce, ett e-handelsplugin som utökar
Använder du ett annat system? Fork är ett CMS med öppen källkod skrivet i PHP. Forks källkod finns på GitHub. Den här guiden visar hur du installerar Fork CM
Använder du ett annat system? MODX Revolution är ett snabbt, flexibelt, skalbart, gratis och öppen källkod, företagsklassat Content Management System (CMS) skrivet i
Artificiell intelligens är inte i framtiden, det är här i nuet I den här bloggen Läs hur Artificiell intelligens-applikationer har påverkat olika sektorer.
Är du också ett offer för DDOS-attacker och förvirrad över de förebyggande metoderna? Läs den här artikeln för att lösa dina frågor.
Du kanske har hört att hackare tjänar mycket pengar, men har du någonsin undrat hur de tjänar den typen av pengar? låt oss diskutera.
Vill du se revolutionerande uppfinningar av Google och hur dessa uppfinningar förändrade livet för varje människa idag? Läs sedan till bloggen för att se uppfinningar av Google.
Konceptet med att självkörande bilar ska ut på vägarna med hjälp av artificiell intelligens är en dröm vi har ett tag nu. Men trots flera löften finns de ingenstans att se. Läs den här bloggen för att lära dig mer...
När vetenskapen utvecklas i snabb takt och tar över en hel del av våra ansträngningar, ökar också riskerna för att utsätta oss för en oförklarlig singularitet. Läs, vad singularitet kan betyda för oss.
Lagringsmetoderna för data har utvecklats kan vara sedan födelsen av data. Den här bloggen tar upp utvecklingen av datalagring på basis av en infografik.
Läs bloggen för att känna till olika lager i Big Data Architecture och deras funktionaliteter på enklaste sätt.
I denna digitala värld har smarta hemenheter blivit en avgörande del av livet. Här är några fantastiska fördelar med smarta hemenheter om hur de gör vårt liv värt att leva och enklare.
Nyligen släppte Apple macOS Catalina 10.15.4, en tilläggsuppdatering för att åtgärda problem, men det verkar som om uppdateringen orsakar fler problem som leder till att mac-datorer blir murade. Läs den här artikeln för att lära dig mer