Mikrotik + OpenVPN server

Connect to Mikrotik via SSH and start writing text below

Set global VARs

:global COMMONNAME "openVPN"
:global COUNTRY "UA"
:global STATE "KV"
:global LOCALITY "Kyiv"
:global ORG "My org"
:global UNIT ""
:global KEYSIZE "1024"
:global USERNAME "admins"
:global PASSWORD "8charsPassword"
:global NET "77"
:global PORT "7777"

Make server and client CRT

/certificate
add name=ca-template country="$COUNTRY" state="$STATE" locality="$LOCALITY" organization="$ORGANIZATION" unit="$UNIT" common-name="$COMMONNAME" key-size="$KEYSIZE" days-valid=3650 key-usage=crl-sign,key-cert-sign
sign ca-template ca-crl-host=127.0.0.1 name="$COMMONNAME"
:delay [6]
add name=server-template country="$COUNTRY" state="$STATE" locality="$LOCALITY" organization="$ORGANIZATION" unit="$UNIT" common-name="server@$COMMONNAME" key-size="$KEYSIZE" days-valid=3650 key-usage=digital-signature,key-encipherment,tls-server
sign server-template ca="$COMMONNAME" name="server@$COMMONNAME"
:delay [6]
add name=$USERNAME country="$COUNTRY" state="$STATE" locality="$LOCALITY" organization="$ORGANIZATION" unit="$UNIT" common-name="$USERNAME" key-size="$KEYSIZE" days-valid=3650 key-usage=tls-client
sign $USERNAME  ca="$COMMONNAME" name="$USERNAME"

Create pool, profile, interface, firewall

/ip pool
add name=VPN-POOL-devops ranges="10.$NET.1.2-10.$NET.1.254"

/ppp profile
add dns-server="10.$NET.1.1" local-address="10.$NET.1.1" name=VPN-PROFILE remote-address=VPN-POOL use-encryption=yes

/interface ovpn-server server
set auth=sha1 certificate="server@$COMMONNAME" cipher=aes128,aes192,aes256 default-profile=VPN-PROFILE enabled=yes require-client-certificate=yes port="$PORT" max-mtu=1460


/ip firewall filter
add chain=input dst-port=$PORT protocol=tcp comment="Allow OpenVPN" action=accept place-before=0

/ppp secret
add name=$USERNAME password=$PASSWORD profile=VPN-PROFILE service=ovpn


/certificate
add name="$USERNAME-to-issue" copy-from="$USERNAME" common-name="$USERNAME@$COMMONNAME"
sign "$USERNAME-to-issue" ca="$COMMONNAME" name="$USERNAME@$COMMONNAME"


/certificate
export-certificate "$COMMONNAME" export-passphrase=""
export-certificate "$USERNAME@$COMMONNAME" export-passphrase="$PASSWORD"

Goto menu Files in Mikrotik admin panel and download ca.crt + client.crt + client.key

Then make file SomeName.ovpn with content:

client
# в этой строчке мы указываем адрес в интернете нашего микротика
remote <your.server.IP> <Port>
dev tun
proto tcp
tun-mtu 1460

 
nobind
persist-key
persist-tun
 
keepalive 10 120
verb 3
cipher AES-256-CBC
auth SHA1

remote-cert-tls server
# эта строка задаёт файл с логином-паролем которые мы прописывали в PPP-Secrets на микротике
auth-user-pass auth.cfg

# в этой части мы задаём настройки сетей которые находятся за микротиком,
# а 172.21.108.1 это адрес микротика который мы указывали в PPP профиле

#route-method exe 
#route-delay 2 
#route 192.168.1.0 255.255.255.0 172.21.108.1

#for internet access
redirect-gateway autolocal 

<ca>
-----BEGIN CERTIFICATE-----

.....Put your ca crt from downloaded files.....

-----END CERTIFICATE-----

</ca>
<cert>
-----BEGIN CERTIFICATE-----

.....Put your client crt from downloaded files.....

-----END CERTIFICATE-----
</cert>
<key>
-----BEGIN RSA PRIVATE KEY-----

.....Put your client key from downloaded files.....

-----END RSA PRIVATE KEY-----

</key>

Put your key and crt and change host:port vars

and file auth.cfg

user
pasword

with this two files you can start client

 

Java8 in Debian

For starting we need install add-apt-repository

apt-get install software-properties-common python-software-properties

Then install java8

sudo add-apt-repository ppa:webupd8team/java
sudo apt-get update
sudo apt-get install oracle-java8-installer

To automatically set up the Java 8 environment variables:

sudo apt-get install oracle-java8-set-default

or

echo "deb http://ppa.launchpad.net/webupd8team/java/ubuntu xenial main" | tee /etc/apt/sources.list.d/webupd8team-java.list
echo "deb-src http://ppa.launchpad.net/webupd8team/java/ubuntu xenial main" | tee -a /etc/apt/sources.list.d/webupd8team-java.list
apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys EEA14886
apt-get update
apt-get install oracle-java8-installer

Docker: очистка кэш

Если очень много раз собирать свой контейнер, то в папке aufs собирается очень много слоев одного и того же образа…
Почиистить за собой можно так

docker rmi -f $(docker images --filter dangling=true -q)

Добавление новой ноды в Chef Server

knife bootstrap {{address}} --ssh-user {{user}} --ssh-password '{{password}}' --sudo --use-sudo-password --node-name node1

From your workstation, run this command to bootstrap your node. Replace {{address}} with your remote node’s external address, {{user}} with your username, and {{password}} with your password.

Удаленный запуск chef-client

knife ssh 'name:mynode' 'sudo chef-client'

Hadoop – балансировка распределения блоков по кластеру

Балансировка блоков
Новые узлы могут быть напрямую доабвлены в кластер. На новом узле должна быть установлена та же версия Hadoop с той же конфигурацией, как в кластере (conf/hadoop-site.xml). Запуск демона DataNode заставит соединиться с NameNode и присоединиться к кластеру. (Также новый узел должен быть добавлен в файл slaves на главном сервере, чтобы сообщить мастеру, как вызвать команды на базе скрипта на новый узел.)
Но изначально у нового DataNode нет в себе данных; и поэтому свободное место зависит от существующих узлов. Новые файлы будут храниться на новом DataNode в дополнение к уже существующим, но для оптимального использования хранилище должно быть равномерно сбалансировано между всеми узлами.
Этого можно достичь с автоматическим инструментом балансировки от Hadoop. Класс Balancer будет разумно распределять блоки между узлами для достижения равномерного распределения блоков, начиная с определенного отправного пункта, выражая значение в процентах. (По умолчанию — 10%) Меньшее процентное содержание делает узлы более равномерно сбалансированными, но может потребовать больше времени на достижение этого состояния. Идеальная балансировка (0%) нежелательна к применению.
Скрипт балансировки может быть запущен путем старта bin/start-balancer.sh в каталоге Hadoop. Скрипт может обеспечить начало балансирующего процентного содержания, используя параметр -threshold ; например, bin/start-balancer.sh -threshold 5. Балансировщик автоматически закроется, когда достигнет своей цели, или когда случится ошибка, или когда не сможет найти больше перемещаемых блоков для улучшения баланса. Также балансировщик может быть безопасно выключен администратором, через запуск bin/stop-balancer.sh.
Скрипт балансировки может быть запущен когда никто больше не использует кластер (скажем, ночью), но также может быть запущен в модели «online», когда выполняется много иных задач. Чтобы предотвратить использование процессом ребалансировки всей ширины канала, тем самым значительно снижая производительность других процессов кластера, параметр конфигурации dfs.balance.bandwidthPerSec может использоваться для ограничения числа байт в секунду, которые может выделять каждый узел на восстановление равновесия.