Створення блогу Jekyll в Ubuntu 16.04
Використання іншої системи? Jekyll — чудова альтернатива WordPress для ведення блогів або обміну вмістом. Для цього не потрібні ніякі бази даних, і це дуже легко i
Поширеним використанням віртуального сервера Vultr є розміщення веб-сайтів Wordpress. У цьому посібнику показано, як автоматизувати налаштування віртуального сервера з нуля (за допомогою Ansible) і розгорнути кілька незалежних веб-сайтів Wordpress (за допомогою Webmin/Virtualmin). Virtualmin/Webmin — це графічний інтерфейс користувача, який дозволяє керувати розгортанням кількох облікових записів віртуального сервера на одній машині (у комплекті зі стеком LAMP/LEMP). Virtualmin дуже схожий на cPanel і Plesk, і в цьому уроці ми будемо використовувати безкоштовну версію GPL. Після початкового налаштування сервера Vultr та встановлення Virtualmin ви можете дуже швидко налаштувати декілька віртуальних серверів з інтерфейсу Virtualmin і безпосередньо встановити Wordpress на цьому віртуальному сервері разом із власним доменним іменем.
У цьому посібнику замість того, щоб вручну вводити довгий список команд, ми будемо використовувати Ansible. Ansible — це інструмент автоматизації на основі Python, який дозволяє вам надійно й багаторазово автоматизувати завдання сервера. Це означає, що після того, як ви дотримуєтеся цього підручника, ви зможете таким же чином розгорнути інший сервер за допомогою всього кількох команд.
Встановіть Ansible на локальній машині або іншому сервері.
mkdir ansible
cd ansible
virtualenv env
source env/bin/activate
pip install ansible
Ansible працює, увійшовши на ваш сервер через SSH. Доступ SSH є найбільш безпечним, якщо ми використовуємо ключі, а не пароль. Давайте спочатку згенеруємо пару відкритих і закритих ключів.
mkdir ssh_keys
ssh-keygen -t rsa -b 2048 -f ./ssh_keys
ssh_keys
Тепер у каталозі буде два файли ssh_keys
і ssh_keys.pub
. ssh_keys
є вашим приватним ключем, і його слід зберігати в безпеці. Тепер ви можете відкрити файл ssh_keys.pub
, який містить відкритий ключ.
Увійдіть до веб-панелі Vultr і натисніть Deploy New Server
.
Виберіть регіон, тип сервера (Ubuntu 16.04), розмір сервера, а потім у частині 6 ( SSH keys
) натисніть Add New
. На наступній сторінці вставте свій відкритий ключ, дайте йому ім’я та натисніть Add SSH key
. Нарешті переконайтеся, що ключ вибрано, і натисніть Deploy now
.
Після завершення розгортання сервера вам буде показано його IP-адресу. Вам потрібно буде увійти на DNS-сервер вашого доменного імені та вказати його на цю адресу.
Файли автоматизації Ansible називаються roles
. Спочатку ми налаштуємо структуру каталогів (усередині ansible
каталогу, який ви щойно створили на кроці 1), і основні файли.
mkdir -p group_vars roles/common/tasks/ roles/common/handlers
touch hosts group_vars/all deploy.yml roles/common/handlers/main.yml
Відредагуйте hosts
файл, щоб він містив наступне, замінивши ip address
сервер, який ви щойно створили. Ansible використовує python 2, який Ubuntu 16.04 не встановлено за замовчуванням. У hosts
файлі ми кажемо Ansible використовувати python 3.
[common]
192.0.2.1 ansible_python_interpreter=/usr/bin/python3
Відредагуйте deploy.yml
файл, щоб він містив наступне. Ми будемо використовувати root
користувача.
- name: apply common configuration to server
hosts: all
user: root
roles:
- common
Відредагуйте /group_vars/all
файл, щоб він містив наступне. Ці змінні повідомляють Ansible про розташування ваших ключів SSH, параметри файлу підкачки, ваше повне доменне ім’я та пароль root. Будь ласка, пам’ятайте, що не включайте файл у систему керування джерелами, оскільки він містить ваш пароль відкритим текстом.
ssh_dir: ./ssh_keys
swap_file_path: /swapfile
swap_file_size: 1G
swappiness: 1
hostname: example.com
new_password: YOUR_PASSWORD_HERE
Відредагуйте common/handlers/main.yml
файл, щоб він містив наступне.
- name: restart sshd
service: name=ssh state=restarted
Автоматизацію Ansible легше зрозуміти, якщо розбити її на завдання. Давайте створимо файли для кожного з наших завдань у процесі.
cd roles/common/tasks
touch hosts main.yml setup.yml users.yml ufw.yml swap.yml virtualmin.yml
main.yml
має вказувати на кожен файл, що містить команди Ansible, тому відредагуйте його, щоб він містив наступне.
- include: setup.yml
- include: users.yml
- include: ufw.yml
- include: swap.yml
- include: virtualmin.yml
Першим кроком у налаштуванні нового сервера є оновлення кешу репо та встановлення часового поясу. Відредагуйте common/handlers/setup.yml
файл, щоб він містив наступне.
- apt: update_cache=yes
sudo: yes
- name: set timezone to Europe/London
timezone:
name: Europe/London
Тепер ми дамо користувачеві root пароль (який нам знадобиться для доступу до веб-інтерфейсу virtualmin), але вимкнемо вхід паролем через SSH (оскільки ми використовуємо метод аутентифікації з більш безпечними ключами). Відредагуйте, users.yml
щоб містити наступне.
- 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
Для безпеки нам потрібен брандмауер. Ми будемо використовувати нескладний брандмауер, щоб дозволити доступ SSH на порту 22
, веб-доступ через порт 80
і безпечний веб-доступ через порт 443
. Відредагуйте ufw.yml
файл, щоб він містив наступне.
- 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
За бажанням ви можете включити файл підкачки. Це важливо, якщо ваш сервер має менше 2 ГБ оперативної пам’яті, щоб уникнути збоїв у пам’яті. Відредагуйте, swap.yml
щоб містити наступне.
- 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 має власний файл інсталятора, який можна завантажити та запустити Ansible. Тут ми використовуємо мінімальне встановлення ( LINK
). Додатковими пунктами є налаштування пароля сервера MySQL, який не встановлюється під час встановлення Virtualmin. Нам потрібно тимчасово зупинити MySQL і додати каталог аутентифікації, перш ніж змінити пароль. Відредагуйте, virtualmin.yml
щоб містити наступне.
- 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 завершена, і ми готові до розгортання.
Тепер із папки ansible ми можемо просто запустити таку команду, і Ansible виконає всі створені нами завдання автоматично. Під час першого підключення ви отримаєте попередження про ключ SSH, просто введіть " yes
" у підказці.
ansible-playbook deploy.yml --private-key=ssh_keys/ssh_keys -i hosts
Якщо ми хочемо використовувати інший сервер, ми можемо просто змінити IP-адресу у файлі hosts і знову запустити цю команду, щоб завершити те саме налаштування.
Встановлення завершено, і тепер ми можемо перейти до https://192.0.2.1:10000
(використовуйте ip-адресу вашого сервера). Ваш браузер видасть попередження безпеки, оскільки сертифікат самопідписаний, тому натисніть advanced
і додайте виняток. Вам буде представлена сторінка входу. Ім’я користувача — root
, а пароль — той, який ви ввели у group_vars/all
файл на кроці 3. Коли ви вперше ввійдете у Virtualmin, вам буде представлено майстер після встановлення. Ви можете cancel
виконати ці налаштування вручну або натиснути, щоб прийняти значення за замовчуванням.
Щоб запустити свій перший сервер Wordpress, на інформаційній панелі Virtualmin натисніть Create Virtual Server
. Вам потрібно буде ввести ім’я домену, опис і пароль адміністратора. Ім’я домену має відрізнятися від повного доменного імені Virtualmin, і вам потрібно буде вказати запис DNS на IP-адресу вашого сервера.
Натисніть Create Server
. Коли Virtualmin закінчить створення вашого сервера, клацніть Install Scripts
меню зліва. Виберіть Wordpress
, клацніть Show install options
і на наступній сторінці виберіть розташування для встановлення Wordpress. Просто виберіть At top level
і натисніть Install Now
.
Це все, що вам потрібно зробити – ви можете завершити встановлення Wordpress, відвідавши своє доменне ім’я http://example.net/wp-admin/install.php
(де example.net
знаходиться це ім’я цього віртуального сервера). Якщо ваші записи DNS ще не розповсюджені, ви можете перейти до Services > Preview Website
з меню Virtualmin.
Ви можете повторити цей крок кілька разів, щоб створити кілька сайтів Wordpress на одному сервері Vultr.
Використання іншої системи? Jekyll — чудова альтернатива WordPress для ведення блогів або обміну вмістом. Для цього не потрібні ніякі бази даних, і це дуже легко i
Використання іншої системи? MODX Revolution — це швидка, гнучка, масштабована, безкоштовна система керування вмістом (CMS) корпоративного рівня з відкритим кодом.
Використання іншої системи? Jekyll — хороша альтернатива WordPress. Він не вимагає жодних баз даних і працює з мовою, знайомою багатьом
Використання іншої системи? MODX Revolution — це швидка, гнучка, масштабована, безкоштовна система керування вмістом (CMS) корпоративного рівня з відкритим кодом.
Використання іншої системи? Fork — це CMS з відкритим кодом, написана на PHP. Вихідний код Forks розміщено на GitHub. Цей посібник покаже вам, як встановити Fork CM
Neos – це інноваційна система керування вмістом із відкритим кодом, яка чудово підходить для створення та редагування онлайн-контенту. Маючи на увазі авторів і редакторів, Neo
Використання іншої системи? Ghost — це платформа для ведення блогів з відкритим кодом, яка набирає популярності серед розробників і звичайних користувачів з 201 року.
Використання іншої системи? Ghost — це платформа для ведення блогів з відкритим кодом, яка набирає популярності серед розробників і звичайних користувачів з 201 року.
Поширеним використанням віртуального сервера Vultr є розміщення веб-сайтів Wordpress. У цьому посібнику показано, як автоматизувати налаштування віртуального сервера з нуля
Ghost — найновіша і найкраща вискочка, яка конкурує з WordPress. Розробка теми швидка та проста в освоєнні, тому що розробники Ghost вирішили використовувати обидва
Ghost — це сучасна видавнича платформа з відкритим вихідним кодом, побудована на Node.js з клієнтом адміністратора Ember.js, API JSON та API тем, що працює на основі Handlebars.js. Ghos
Використання іншої системи? MODX Revolution — це швидка, гнучка, масштабована, безкоштовна система керування вмістом (CMS) корпоративного рівня з відкритим кодом.
Використання іншої системи? Fork — це CMS з відкритим кодом, написана на PHP. Вихідний код Forks розміщено на GitHub. Цей посібник покаже вам, як встановити Fork CM
Використання іншої системи? Ghost – це платформа для ведення блогів з відкритим кодом, яка набирає популярності серед розробників і звичайних користувачів з моменту її випуску в 2013 році. я
Використання іншої системи? Fork — це CMS з відкритим кодом, написана на PHP. Вихідний код Forks розміщено на GitHub. Цей посібник покаже вам, як встановити Fork CM
Typesetter — це CMS з відкритим вихідним кодом, написана на PHP, зосереджена на простоті використання з редагуванням True WYSIWYG і зберіганням плоских файлів. У цій статті ми будемо встановлювати
Примірники Vultr – це чудовий спосіб вести свій блог WordPress, але більш помітним розширенням WordPress є WooCommerce, плагін електронної комерції, який розширює
Використання іншої системи? Fork — це CMS з відкритим кодом, написана на PHP. Вихідний код Forks розміщено на GitHub. Цей посібник покаже вам, як встановити Fork CM
Використання іншої системи? MODX Revolution — це швидка, гнучка, масштабована, безкоштовна система керування вмістом (CMS) корпоративного рівня з відкритим кодом.
Використання іншої системи? SilverStripe — це гнучка та розширювана безкоштовна система керування вмістом (CMS) корпоративного рівня з відкритим кодом, написана на PHP. я
Штучний інтелект не в майбутньому, він тут прямо в сьогоденні У цьому блозі Прочитайте, як програми штучного інтелекту вплинули на різні сектори.
Ви також стали жертвою DDOS-атак і спантеличені методами запобігання? Прочитайте цю статтю, щоб вирішити свої запитання.
Можливо, ви чули, що хакери заробляють багато грошей, але чи замислювалися ви коли-небудь, як вони заробляють такі гроші? давайте обговоримо.
Ви хочете побачити революційні винаходи Google і як ці винаходи змінили життя кожної людини сьогодні? Тоді читайте в блозі, щоб побачити винаходи Google.
Концепція самокерованих автомобілів, щоб вирушати в дороги за допомогою штучного інтелекту, є мрією, яку ми давно мріємо. Але, незважаючи на кілька обіцянок, їх ніде не видно. Прочитайте цей блог, щоб дізнатися більше…
Оскільки наука розвивається швидкими темпами, бере на себе багато наших зусиль, ризики піддати себе незрозумілій Сингулярності також зростає. Читайте, що може означати для нас сингулярність.
Методи зберігання даних можуть розвиватися з моменту народження Даних. Цей блог висвітлює еволюцію зберігання даних на основі інфографіки.
Прочитайте блог, щоб дізнатися про різні шари архітектури великих даних та їх функціональні можливості найпростішим способом.
У цьому цифровому світі пристрої розумного дому стали важливою частиною життя. Ось кілька дивовижних переваг пристроїв розумного дому щодо того, як вони роблять наше життя гідним життя та спрощують його.
Нещодавно Apple випустила додаткове оновлення macOS Catalina 10.15.4, щоб виправити проблеми, але схоже, що оновлення викликає більше проблем, що призводять до блокування комп’ютерів Mac. Прочитайте цю статтю, щоб дізнатися більше