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_keysmappen vil der nu være to filer, ssh_keysog ssh_keys.pub. ssh_keyser 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 keysklik 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 ansiblemappe, 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 hostsfilen, så den indeholder følgende, og erstatter ip addressden server, du lige har oprettet. Ansible bruger python 2, som Ubuntu 16.04 ikke har installeret som standard. I hostsfilen fortæller vi Ansible at bruge python 3.  
[common]  
192.0.2.1 ansible_python_interpreter=/usr/bin/python3
Rediger deploy.ymlfilen, så den indeholder følgende. Vi kommer til at bruge rootbrugeren.
- name: apply common configuration to server
  hosts: all
  user: root
  roles:
    - common
Rediger /group_vars/allfilen, 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.ymlfilen, 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.ymlfilen, 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.ymlat 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 80og sikker webadgang på port 443. Rediger ufw.ymlfilen, 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.ymlat 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.ymlat 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 advancedog 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/allfilen 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 cancelat 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 Scriptspå 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 levelog 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.neter dette virtuelle servers domænenavn). Hvis dine DNS-poster ikke har spredt sig endnu, kan du gå til Services > Preview Websitefra 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
 
                             
                             
                            