блого-заметки об администрировании и программировании (python, ruby, php). Траблшутинг в «примерах» и HOWTO.

😎 О себе | 📚 Литература и ресурсы | ⚡ Все посты | 📮 E-mail
31 заметка с тегом

Ubuntu

Управление KVM-нодой Ubuntu 16.04/18.04 LTS

Наткнулся на интересную утилитку virt-manager. По сути GUI для управления системой, можно подключать и удаленные хосты. Что понравилось — не нужно заморачиваться с подключением по VNC, открывает в один клик, как и управление некоторыми параметрами. Чуть ранее был пост о SystemRescueCd — незаменимая вещь для KVM, так вот его подключил тоже в пару кликов. Для подобных целей мегаудобная штука, советую!

Устанавливается просто: 


sudo apt-get install virt-manager


Сетапить виртуалку в моем случае проще, через консоль, т. к. подкидываю LVM-раздел, хотя такое вроде бы тоже можно.

Настройка ноды с KVM-виртуализацией Ubuntu 16.04 LTS: часть 2

Настройка ноды с KVM-виртуализацией Ubuntu 16.04 LTS: часть 2

В качестве «дисков», буду использовать логические тома (LV) в LVM. От qcow2 решили отказаться, поэтому будем использовать блочные устройства. Ничего сложного в этом нет.

Краткий экскурс в LVM можно почитать по ссылке Краткая заметка по работе с LVM в Linux

Кратко как сделать:


sudo pvcreate /dev/sda2
sudo vgcreate sas-storage /dev/sda2


Создаем устройство на 12G, для DNS-сервера, который будет рулить dns-именами во внутренней сети — за глаза.
Создаем командой:


sudo lvcreate -L 12G -n lv_dns sas-storage


или


sudo lvcreate -n lv_dns --size 12G sas-storage


где 12G размер логические тома (LV), sas-storage — имя группы томов (VG) и dns-disk имя логического тома (LV)

итог создания логические тома Logical Volumes (LV)

Далее запускаем установку системы на Ubuntu 16.04 LTS следующей командой


sudo virt-install --autostart --virt-type=kvm --name dns-server --description "DNS-server" --ram 1024 --vcpus=1 --os-type=linux --os-variant=ubuntu16.04 --hvm --cdrom=/var/lib/libvirt/boot/ubuntu-16.04.6-server-amd64.iso --network=bridge=br0,model=virtio --graphics vnc --disk path=/dev/sas-storage/lv_dns,bus=virtio


в моем сллучае dns-server это название виртуальной машины (оно будет мелькать ниже)
описание параметров virt-install:

--autostart
  • задает параметр автозагрузки виртуального сервера, при перезапуске ноды с виртуальными серверами
--virt-type=kvm
--cdrom
  • подключаем виртуальный CD-привод с образом ОС, которую будем устанавливать
--name
  • имя виртуальной машины, которое будет отображаться при выводе
virsh list all
--description
  • описание сервера
--ram
  • количество оперативной памяти для сервера
--vcpus

указываем количество «ядер» для виртуального сервера

--disk path
  • указываем диск для установки, в моем случае используется LVM, поэтому я не указываю размер диска, иначе через запятую указываем его размер, пример

--disk path=/var/lib/libvirt/images/ubuntu1604.img,size=100G,bus=virtio


--os-variant
  • указывает гипервизору под какую ОС нужно адаптировать настройки. Смотрим список доступных оптимизаций для гостевых ОС:

sudo virt-install --os-variant list


запуск установки виртуальной машины (VPS/VDS) KVM виртуализацией

Параллельно, в новом окне подключаемся к нашей ноде и вводим команду


sudo virsh dumpxml dns-server | grep vnc


получение доступа к vnc на ноде с KVM виртуализацией

Это даст нам информацию, к какому порту с помощью VNC мы можем подключиться для установке системы

Далее с помощью команды, указанной ниже, пробрасываем полученный порт из предыдущего шага и подключаемся к VNC.


ssh user@server.com -L 5900:127.0.0.1:5900


Я использую Remmina. Для примера приведу скриншот

подключение по vnc на ноде с виртуализацией KVM (VDS/VPS)

Далее, просто производим установку Ubuntu 16.04 LTS.

роизводим установку Ubuntu 16.04 LTS на VDS/VPS с виртуализацией KVM

На всякий случай указываю как добавить дополнительный диск виртуальному серверу


virsh attach-disk dns-server --source /dev/sas-storage/lv_dns-2 --target vdb --persistent


где /dev/sas-storage/lv_dns-2 путь к диску или блочномуц устройству, vdb имя диска внутри системы (для виртуальных систем обычно указывается c с приставкой vd вместо sd как у реальных машин)

проверяем в виртуальной машине


fdisk -l | grep vd


Или убираем дополнительный диск командой


virsh detach-disk dns-server vdb


И еще дополнительные команды, которые могут пригодиться в работе:
Просмотр всех серверов


sudo virsh list --all


Просмотр инфо о сервере


sudo virsh dominfo SERVER


Ребут-старт-стоп-выключение сервера


sudo virsh reboot SERVER 
sudo virsh start SERVER 
sudo virsh stop SERVER 
sudo virsh shutdown SERVER 


 Нет комментариев    27   18 дн   kvm   linux   lvm   Ubuntu   Ubuntu 16.04

Настройка ноды с KVM-виртуализацией Ubuntu 16.04 LTS: часть 1

Настройка ноды с KVM-виртуализацией Ubuntu 16.04 LTS: часть 1

Оставляю заметку для разворачивания ноды на виртуализации KVM, т. к. evernote безжалостно и безвозвратно сжевал мою заметку, которую я не перенес сюда.

Пошагово нужно выполнить следующие пункты, и не пытаться сперва указать конфиг бриджа и перезапустить сеть

  1. Вносим правку в /etc/sysctl.conf

net.ipv4.ip_forward = 1


  1. Устанавливаем утилиту

apt install bridge-utils


  1. Конфигурируем бридж в файле /etc/network/interfaces
    пример конфигурации

auto br0
iface br0 inet static
        address 10.10.64.100
        netmask 255.255.255.0
        gateway 10.10.64.1
        dns-nameservers 10.10.64.2
        bridge_ports eno4
        bridge_stp off
        bridge_fd 0
        bridge_maxwait 0


где eno4 имя сетевого интерфейса куда подключен линк.
После правок производим перезагрузку системы


sudo reboot


  1. Устанавливаем пакеты KVM

sudo apt-get install qemu-kvm libvirt-bin virtinst bridge-utils cpu-checker


  1. Проверяем корректность установки командой

sudo kvm-ok


  1. Загружаем образ системы для дальнейшей установки Ubuntu 16.04 LTS

cd /var/lib/libvirt/boot/
sudo wget https://ubuntu.volia.net/ubuntu-releases/16.04.6/ubuntu-16.04.6-server-amd64.iso


Чуть позже будет и часть 2, в которой будет описано подключение блочных устройств и запуск виртуальной машины

 Нет комментариев    17   19 дн   kvm   Ubuntu   Ubuntu 16.04

Ротация индектов Elasticsearch — утилита curator Ubuntu 19.04/18.04/16.04

Ротация индектов Elasticsearch - утилита curator Ubuntu 19.04/18.04/16.04

Была поставлена задача — произвести ротацию старых индексов у Elasticsearch, т.к старые индексы не несут пользы и занимают достаточно много места. После недолгих поисков выбор пал на утилиту curator
Подробнее можно найти на сайте elastic.co

Устанавливаем утилиту как pip-пакет
Сперва проверяем, установлен ли pip


sudo apt-get install python-pip


Установка утилиты


sudo pip install elasticsearch-curator


Для Ubuntu 12.04 — 16.04 LTS


wget https://packages.elastic.co/curator/5/debian/pool/main/e/elasticsearch-curator/elasticsearch-curator_5.7.5_amd64.deb

sudo dpkg -i elasticsearch-curator_5.7.5_amd64.deb


Для Ubuntu 18.04 LTS и новее


https://packages.elastic.co/curator/5/debian9/pool/main/e/elasticsearch-curator/elasticsearch-curator_5.7.5_amd64.deb

sudo dpkg -i elasticsearch-curator_5.7.5_amd64.deb


Примеры конфигурационных файлов. Для  curator.yml обращаем внимание на hosts — указываем сервер elasticsearch, port — порт тоже

curator.yml


---
client:
  hosts:
    - 127.0.0.1
  port: 9200
  url_prefix:
  use_ssl: False
  certificate:
  client_cert:
  client_key:
  ssl_no_validate: False
  http_auth:
  timeout: 30
  master_only: False

logging:
  loglevel: INFO
  logfile:
  logformat: default
  blacklist: ['elasticsearch', 'urllib3']


Для delete_indices.yml, с помощью которого удаляем нужные индексы, обращаем внимание на value — название индекса, timestring — форматы даты, который используется при ротации, unit и unit_count — период для ротации.

delete_indices.yml


---
actions:
  1:
    action: delete_indices
    description: >-
      Delete indices older than 20 days (based on index name
    options:
      ignore_empty_list: False
      timeout_override:
      continue_if_exception: False
      disable_action: False
    filters:
    - filtertype: pattern
      kind: prefix
      value: packetbeat-6.5.4-
      exclude:
    - filtertype: age
      source: name
      direction: older
      timestring: '%Y.%m.%d'
      unit: days
      unit_count: 20
      exclude:


Пример команды для запуска, для тестового запуска указываем —dry-run


sudo curator --config ~/curator.yml --dry-run ~/delete_indices.yml


ну или боевой запуск


sudo curator --config ~/curator.yml ~/delete_indices.yml


При необходимости указываем выполнение через crontab

Источники:
http://robwillis.info/2017/11/elk-stack-installing-and-configuring-curator/
https://anotheritguy.com/index.php/2018/08/install-configure-elastic-curator-for-index-management/
http://www.madhur.co.in/blog/2017/04/09/usingcuratordeleteelasticindex.html

 Нет комментариев    61   1 мес   crontab   curator   deb   Elasticsearch   ELK   index   pip   Ubuntu   Ubuntu 18.04

Резервное копирование сервера с помощью tar Ubuntu 16.04/18.04/18.10

Для создания архива сервера, можно воспользоваться следующей командой


cd / 
tar -cvpzf archive.tar.gz --exclude=/archive.tar.gz --one-file-system /


Это позволит создать архив системы исключая виртуальные файловые системы /proc, /sys и т.д
Расшифровка:
tar — утилита для создания архива

c — создание нового архива

v — подробный режим, вывод текущего дейсвия
p — сохранять права
z — сжать файлы с помощью gzip
f — указать имя архива

—exclude=/archive.tar.gz исключить данный файл из бекапа
—one-file-system исключить виртуальные ФС

Или полный вариант команды


cd / 
tar -cvpzf archive.tar.gz \
--exclude=/archive.tar.gz \
--exclude=/proc \
--exclude=/tmp \
--exclude=/mnt \
--exclude=/dev \
--exclude=/sys \
--exclude=/run \ 
--exclude=/media \ 
--exclude=/var/log \
--exclude=/var/cache/apt/archives \
--exclude=/usr/src/linux-headers* \ 
--exclude=/home/*/.gvfs \
--exclude=/home/*/.cache \ 
--exclude=/home/*/.local/share/Trash /


Замена netplan на networking Ubuntu 18.04 LTS Bionic Beaver/ Ubuntu 18.10 Cosmic Cuttlefish

Редактируем файл grub


sudo vim /etc/default/grub


И приводим строку GRUB_CMDLINE_LINUX к следующему виду


GRUB_CMDLINE_LINUX="netcfg/do_not_use_netplan=true"


После этого обновляем параметры grub


sudo update-grub


Устанавливаем пакет ifupdown


sudo apt update
sudo apt install ifupdown


И далее вносим параметры в файле /etc/network/interfaces



//Пример://
auto lo
iface lo inet loopback

auto ens3
iface ens3 inet dhcp

auto ens4
iface ens4 inet dhcp


Удаляем конфиг netplan


sudo rm -rf /etc/netplan/*.yml


После чего перезагружаем систему


sudo reboot


 Нет комментариев    103   4 мес   grub   netplan   network   networking   Ubuntu   Ubuntu 18.04   Ubuntu 18.10
Ранее Ctrl + ↓