Ubuntu: migrate from Ifupdown to Netplan. Step by step.

In Ubuntu 18.04 old good ifupdown is considered obsolete. And you need to migrate your servers to systemd-networkd + netplan. Lots of internet resources describe how to revert back to ifupdown but I am hailing the future! So this manual covers 2 situations, static networking & DHCP. Both are IPv4.

systemctl disable networking.service 
apt-get remove ifupdown -y
apt-get install netplan.io libnet-cidr-perl -y
systemctl enable systemd-networkd
DEV=`facter networking.primary`
rm /etc/netplan/*
grep dhcp /etc/network/interfaces 

Now follow either DHCP or Static part.

######## DHCP START
echo "network:
  version: 2
  renderer: networkd
  ethernets:
    $DEV:
      nameservers:
          addresses: [8.8.8.8]
      dhcp4: yes" | tee /etc/netplan/01-netcfg.yaml

######## DHCP END
###### STATIC START

GW=$( ip ro get 8.8.8.8  | grep -P '(?<=via )[\d\.]+(?= )' -o )
NETMASK=$( facter networking.netmask )
CIDR=$( perl -e 'use Net::CIDR; print \
    Net::CIDR::addrandmask2cidr(\
    "'$IP'", "'$NETMASK'")."\n"; ' ) 
IP=$( facter networking.ip )

echo "network:
  version: 2
  renderer: networkd
  ethernets:
    $DEV:
      addresses:
        - $IP/24
      gateway4: $GW
      nameservers:
          addresses: [8.8.8.8]" | tee   /etc/netplan/01-netcfg.yaml 

###### STATIC END

Then apply new conf & see its status in networkctl

netplan apply
systemctl stop  networking.service
sleep 2; networkctl list $DEV

And reboot the server!

Why Ansible? Ansible vs Puppet.

PROS

  1. For each “piece of code” you have nodes where code will be executed.
    In puppet thou, it is vice versa.
  2. Orchestration. Macro events can be scheduled easily i.e. inter-nodes dependencies. Inter-action dependencies.
    E.g. live migration of the whole distributed cloud web app ( all the load balancers, web-/db-/cache servers) from one cloud vendor to another, can be achieved with an Ansible playbook. Because Ansible is declarative language that in some cases can be used as a Bash script.
  3. consequences are important & can be leveraged. E.g. action1 on nodes1 before action2 on nodes2. In Puppet nodes don’t know about each other.
  4. Ansible works via SSH connection, so you even can reboot the server & wait till it is booted up again, then execute something on it right after reboot. Everything via Ansible.
  5. signing/revoking SSL certificates in Puppet is s hell comparing to SSH access which is enough for Ansible. With Ansible you only need SSH access, no agents/masters.
  6. Initiator/Ansible model is better than polling a server/Puppet. No need to invent (GEO) caches on 100+ nodes Puppet-setup.
  7. Some Ansible code can be executed hourly, some monthly, some ad-hoc manually. Hardly possible in puppet.
  8. No need to install agent software on node. Python is enough.

The SAME

  1. It is difficult to find a module per your needs. Really, how can I trust the author of a module? Some modules provide what I need but abandoned, some are new but too simple.

CONS

  1. Yaml sucks. Those nasty spaces VS tabs, formatting is something I havent been familiar with: some notions of YAML structure ( multiline VS single line). And YAML looks like Windows Registry!
  2. Bad reports. Really, I need to know what happened after Ansible run & track history of runs.
  3. Bad logging. What I am seeing on the screen, doesnt reflect major things I expect: what changed & how. How means the diff betwen it had been & had became.
  4. Speed. O Lord, Ansible is slow. It takes 40 sec to apply a playbook with SSHD + Fail2ban + NRPE + APT roles. Technically it means to place a bunch of files based on templates & restart some services upon changes. I bet on Puppet it would take 10 sec.

Чешско русский микс

Из дискуссии на Дваче:
.. речь о произношении конкретных русских слов.
Названия Приедайне, Лиелварде, Кемери, Кегумс и Меллужи не являются русскими словами. Поэтому их произношение в русском языке может различаться в зависимости от близости знакомства конкретного носителя русского языка с этими местами. Человек, ни разу там не бывавший, скорей всего произнесёт одним образом, а человек, там живущий, скорей всего, произнесёт так, как эти названия произносят местные жители.

в Праге, Чехия похожая ситуация в русскоязычной среде.
Например район Holešovice , при говорении этого слова в русской речи я сохраняю чешское произношение, даже ритм чешский. При склонении (местный падеж) я говорю это тупо по чешски, v Holešovicích. Но можно встретить и более обрусевший вариант: [в Галишовицах] — все равно множ.число соблюдено. Те, кто не склоняет чешский плурал хоть и по русски, смотрятся как не вполне ориентирующиеся в местных реалиях.

Funny projects for freelancers

Couchsurfing clone for $10 ? Really?
Jeez, I was called handsome, that’s what is called sexual harrasment at work, right?
Minimalistic website for minimalistic price…
Become a pro from A to Z for just $20
half paid, half done

Syncthing

СЫРОЕ ПОДЕЛИЕ
Вердикт: лучше чем 2 года назад но все равно ОЧЕНЬ СЫРО
Продолжаю пользоваться Resilio Sync. Подробнее: * зачем мне на мобиле мерзопакостный WEBGUI в дополнение к главному интерфейсу? Ощущение непродуманности интерфейса, склеили 2 сущности.
* Моб клиент не переживает смену IP. Приходится его рестартовать
* часто наблюдаю неконсистенцию, на 1 пире другой виден как онлайн, а на том как оффлайн. Статус пиров гуляет (ладно, не очень часто) из-за операций с папками.
* любая операция с папкой — этот peer отваливается на 10 секунд
* оно мне создало папку ~ (да, с именем тильда в хомяке) на компе!
* На убунте на всех папках висят ошибки про fs.inotify.max_user_watches. Не фиксится sysctl -ем. Причем на другой убунте все ок.
* Introducer не заработал. Пришлось чтоб сконнектить 3 девайса, делать 3 спаривания.
* На мобиле оно потребовало включить Documents в недрах настроек Xiaomi. Не знаю, зачем. Все аппки работали без этого хорошо, для операций на sdcard.
* При режиме папки Send only (на мобиле) если удалить файло на компе, то на мобиле появляется мерзкая кнопка Push overrided changes, которую если нажать, оно пересинкнет все заново. Если же на компе выставить Receive only, то он не будет перепосылать другим пирам.
* Оно еще не всегда удаляет .tmp файлы после (не) удачного синка.
Это воспроизводится например скачкой видоса с помощью youtube-dl с последующей конвертацией прямо в шаренном каталоге

Идентичность, восприятие себя и другого в белорусской деревне.

Читаю очень интересную книгу о этнографических исследованиях польско-белорусского пограничья. Там и про “хамские” и “панские” вёски, и про “шляхту” и “жидов”. И про идентичность. И вот про язык пару цитат.

  • „Przed wojną też się po prostu mówiło w wiosce?
  • Jak gdzie. Gdzie kultumiejsze wioski, to po polsku” (G97Sie.EM).
  • „Który język ładniejszy: polski czy prosty?
  • [gospodyni:] Oj, jak ja przyzwyczajona, chodziłam do szkoły, to był bardzo śliczny ten jenzyk, taki jakiś mientki taki. A to prosty, no, prosty… Ale zrozumieć można.
  • [sąsiadka:] Mnie sie tak po prostu, tak po prostu, no, tak -mnie sie nie podoba. […] Jak my przyzwyczajone jest po polsku, to po polsku” (G97Cze.HG).
  • „Nie ma ładniejszego jenzyka jak po rusku i po polsku. Pierwszy jenzyk – polski. A już drugi rosyjski, żeby czysto po rosyjsku wy-mawiać. A to brzydki taki, garłaty taki, nieładny. Nie, nie, nie. Continue reading “Идентичность, восприятие себя и другого в белорусской деревне.”