А какая для вас основная облачная платформа, которой вы пользуетесь?
Anonymous Poll
5%
OVH
12%
Hetzner
22%
AWS
6%
GCE
8%
Azure
1%
Linode
3%
Heroku
0%
Coobridge
13%
DO
30%
Другое
Расскажете о преимуществах вашей любимой платформы?
Коллеги, мы продолжаем поиск экстраординарных, уникальных людей к нам в команды, на вакансии: QA Engineer, Support Engineer, Разработчик Ruby, Frontend-разработчик, Системный аналитик, Pre-sale инженер, Менеджер по продажам ИТ проектов, Product Marketing Manager.
https://m.hh.ru/employer/2156053
можно в личку мне писать или через сайт.
#вакансии
https://m.hh.ru/employer/2156053
можно в личку мне писать или через сайт.
#вакансии
hh.ru
Вакансии компании Валарм - работа в Москве
Работа в компании Валарм. Информация о компании и все открытые вакансии в Москве
Уже пользовались яндекс облаком?
Anonymous Poll
6%
да, нравится, перевожу туда прод
19%
Какая-то ванильная зверушка - трогаю, вроде прикольно, но планов работать с ним нет
11%
Оно еще сыровато, делать там нечего
17%
Еще немного подожду - доделают и буду использовать
5%
Совсем не нравится
43%
Это жи яндекс, что от них можно ожидать
Forwarded from Vasiliy G
@Civiloid Владимир, спасибо тебе отдельное. Ты подсказал на 100% верное решение, правда я ввиду отсутствия опыта не сразу понял как его правильно реализовать)
Может будет кому полезно - сейчас опишу как мы решили нашу проблему редиректа с HTTP на HTTPs балансер в GCP
Собственно у нас был виртуальный хост вида
Но c glb так не получилось, потому что трафик то приходит https, хоть и на 80 порт.
browser —> http —> glb —> https —> backend
В итоге редирект есть, а по факту - его нет) Зато все запросы которые идут не через glb он редиректил исправно.
Решение: можно этот же виртуальный хост для редиректа заставить слушать шифрованый трафик, но важно указать server_name
P.S. Кстати, при создании балансера тупонул еще в одном моменте. Вместе с 443 портом - добавил на backend еще и 80 порт, из-за чего glb начал довольно странно себя вести (ну а хули я хотел)
Даже на обычных страничках со статикой время получения первого байта доходило до 10сек ) В итоге когда оставили только один 443 порт на backend - все заработало как надо)
Может будет кому полезно - сейчас опишу как мы решили нашу проблему редиректа с HTTP на HTTPs балансер в GCP
Собственно у нас был виртуальный хост вида
server {Т.есть все что приходит по 80 порту - редиректим на https://
listen 80;
server_name ~.;
return 301 https://$host$request_uri;
}
Но c glb так не получилось, потому что трафик то приходит https, хоть и на 80 порт.
browser —> http —> glb —> https —> backend
В итоге редирект есть, а по факту - его нет) Зато все запросы которые идут не через glb он редиректил исправно.
Решение: можно этот же виртуальный хост для редиректа заставить слушать шифрованый трафик, но важно указать server_name
listen 443;domain.com
server_name *.
;Ну или прописать уже на другие виртуальный хости это же правило
if ($http_x_forwarded_proto = 'http') {
return 301 https://$host$request_uri;
}
P.S. Кстати, при создании балансера тупонул еще в одном моменте. Вместе с 443 портом - добавил на backend еще и 80 порт, из-за чего glb начал довольно странно себя вести (ну а хули я хотел)
Даже на обычных страничках со статикой время получения первого байта доходило до 10сек ) В итоге когда оставили только один 443 порт на backend - все заработало как надо)
поговаривают, что rsa - уныло, грустно и вообще устаревшие фекалии мамонта. За сям нужно все это дело апгредить.
https://bagja.net/blog/upgrade-ssh-key-to-ed25519.html
#ssh #rsa #ed25519
https://bagja.net/blog/upgrade-ssh-key-to-ed25519.html
#ssh #rsa #ed25519
Openvpn объединение файлов в один конфиг
Клиент openvpn прекрасно умеет работать по одному файлу, в котором включены все параметры, сертификаты и ключи. Преимуществ уйма - начиная от автоматизации, когда генерируется всего один файл и заканчивая отсутсвием необходимости таскать за собой ворох ключей, следить за их именами и путями где они лежат.
Для того чтобы создать такой файл в конфиг openvpn.conf последовательно в любом порядке записываются все ключи и сертификаты, отделяясь друг от друга тегами, как в html разметке. Для каждого ключа - свой тег.
Полный список тегов: ca, cert, dh, extra-certs, key, pkcs12, secret, --tls-auth.
Пример:
Клиент openvpn прекрасно умеет работать по одному файлу, в котором включены все параметры, сертификаты и ключи. Преимуществ уйма - начиная от автоматизации, когда генерируется всего один файл и заканчивая отсутсвием необходимости таскать за собой ворох ключей, следить за их именами и путями где они лежат.
Для того чтобы создать такой файл в конфиг openvpn.conf последовательно в любом порядке записываются все ключи и сертификаты, отделяясь друг от друга тегами, как в html разметке. Для каждого ключа - свой тег.
Полный список тегов: ca, cert, dh, extra-certs, key, pkcs12, secret, --tls-auth.
Пример:
key-direction 1
<tls-auth>
#
# 2048 bit OpenVPN static key
#
-----BEGIN OpenVPN Static key V1-----
f745... rest of tls key
-----END OpenVPN Static key V1-----
</tls-auth>
<ca>
-----BEGIN CERTIFICATE-----
MIIG... rest of ca.crt data
-----END CERTIFICATE-----
</ca>
<cert>
-----BEGIN CERTIFICATE-----
MIIH... rest of client/user .crt data
-----END CERTIFICATE-----
</cert>
<key>
-----BEGIN PRIVATE KEY-----
MIIJ... rest of client/user .key data
-----END PRIVATE KEY-----
</key>
Forwarded from mindsellers
Как настроить 2500 микротиков по всей стране и поддерживать на них актуальный конфиг, когда у падаванов на местах - лапки
Итак, постановка задачи:
* Имеется порядка 2500 географически разнесенных торговых точек. В каждой точке установлен т.н. Главный компьютер, он же ПК заведующего, кассы на базе персональных компьютеров под управлением Windows, система видеонаблюдения.
* Сеть одноранговая, 192.168.0.0/24, адрес шлюза и ДНС, он же роутер, 192.168.0.254, адрес главного компьютера - 192.168.0.1. Подключение к Интернет не стандартизировано.
* Необходимо обеспечить доступ главного компьютера в интернет без ограничений, остальным устройствам в сети предоставить доступ только на заранее известный список ресурсов. Кроме того, требуется обеспечить возможность удаленного управления каждым роутером в отдельности, а также возможность массовой настройки всех устройств, например, для добавления нового ресурса в список разрешенных.
* Постепенную замену всех установленных роутеров на MikroTik hAP ac lite необходимо произвести силами региональных техников, не знакомых с RouterOS. Предоставление доступа к настроенным роутерам местному персоналу по умолчанию не предполагается.
Взяли python в зубы и за три дня набыдлокодили. Структурно вышло вот так:
* Для первичной настройки роутера разработана консольная программа, которая в доступной для эникея низкой квалификации форме запросит параметры подключения к Интернет и номер торговой точки. После этого конфигурация маршрутизатора происходит в автоматическом режиме
* Для удаленного управления устройствами поднимается VPN-туннель до центрального офиса
* В офисе установлен и настроен VPN-сервер
* Параметры подключения(логин и пароль) генерируются для каждого устройства как средствами программы настройки, так и на стороне сервера. IP-адрес на VPN-интерфейсе ассоциирован с номером торговой точки по следующему правилу: номер торговой точки приводится в 4-значный hex, который разделяется на 2 октета, и каждый из них возвращается в dec. Пример: точка №500. hex(500)=01f4, dec(01)=1, dec(f4)=244. Таким образом, два последних октета адреса на PPTP интерфейсе будет 1.244
* На серверной стороне разработан скрипт, осуществляющий массовое применение изменений. Для каждого устройства выполняются только те команды, которые еще не были применены для него, то есть контролируется версионность.
за подробностями и кодом - в wiki или vk:
http://pubwiki.mindsellers.ru/index.php/%D0%A1%D0%B8%D1%81%D1%82%D0%B5%D0%BC%D0%B0_%D1%86%D0%B5%D0%BD%D1%82%D1%80%D0%B0%D0%BB%D0%B8%D0%B7%D0%BE%D0%B2%D0%B0%D0%BD%D0%BD%D0%BE%D0%B3%D0%BE_%D1%83%D0%BF%D1%80%D0%B0%D0%B2%D0%BB%D0%B5%D0%BD%D0%B8%D1%8F_%D0%BF%D0%B0%D1%80%D0%BA%D0%BE%D0%BC_MikroTik
vk.com/@mindsellers-sistema-centralizovannogo-upravleniya-parkom-mikrotik
#python #mikrotik #vpn
Итак, постановка задачи:
* Имеется порядка 2500 географически разнесенных торговых точек. В каждой точке установлен т.н. Главный компьютер, он же ПК заведующего, кассы на базе персональных компьютеров под управлением Windows, система видеонаблюдения.
* Сеть одноранговая, 192.168.0.0/24, адрес шлюза и ДНС, он же роутер, 192.168.0.254, адрес главного компьютера - 192.168.0.1. Подключение к Интернет не стандартизировано.
* Необходимо обеспечить доступ главного компьютера в интернет без ограничений, остальным устройствам в сети предоставить доступ только на заранее известный список ресурсов. Кроме того, требуется обеспечить возможность удаленного управления каждым роутером в отдельности, а также возможность массовой настройки всех устройств, например, для добавления нового ресурса в список разрешенных.
* Постепенную замену всех установленных роутеров на MikroTik hAP ac lite необходимо произвести силами региональных техников, не знакомых с RouterOS. Предоставление доступа к настроенным роутерам местному персоналу по умолчанию не предполагается.
Взяли python в зубы и за три дня набыдлокодили. Структурно вышло вот так:
* Для первичной настройки роутера разработана консольная программа, которая в доступной для эникея низкой квалификации форме запросит параметры подключения к Интернет и номер торговой точки. После этого конфигурация маршрутизатора происходит в автоматическом режиме
* Для удаленного управления устройствами поднимается VPN-туннель до центрального офиса
* В офисе установлен и настроен VPN-сервер
* Параметры подключения(логин и пароль) генерируются для каждого устройства как средствами программы настройки, так и на стороне сервера. IP-адрес на VPN-интерфейсе ассоциирован с номером торговой точки по следующему правилу: номер торговой точки приводится в 4-значный hex, который разделяется на 2 октета, и каждый из них возвращается в dec. Пример: точка №500. hex(500)=01f4, dec(01)=1, dec(f4)=244. Таким образом, два последних октета адреса на PPTP интерфейсе будет 1.244
* На серверной стороне разработан скрипт, осуществляющий массовое применение изменений. Для каждого устройства выполняются только те команды, которые еще не были применены для него, то есть контролируется версионность.
за подробностями и кодом - в wiki или vk:
http://pubwiki.mindsellers.ru/index.php/%D0%A1%D0%B8%D1%81%D1%82%D0%B5%D0%BC%D0%B0_%D1%86%D0%B5%D0%BD%D1%82%D1%80%D0%B0%D0%BB%D0%B8%D0%B7%D0%BE%D0%B2%D0%B0%D0%BD%D0%BD%D0%BE%D0%B3%D0%BE_%D1%83%D0%BF%D1%80%D0%B0%D0%B2%D0%BB%D0%B5%D0%BD%D0%B8%D1%8F_%D0%BF%D0%B0%D1%80%D0%BA%D0%BE%D0%BC_MikroTik
vk.com/@mindsellers-sistema-centralizovannogo-upravleniya-parkom-mikrotik
#python #mikrotik #vpn
VK
Система централизованного управления парком MikroTik
Разработка клиентской части ведется на Windows с корректно установленным Python, pip и любым подходящим редактором.
Grafana basic auth
В ролях:
- grafana stable chart
- nginx ingress controller
- terraform
Задача:
Сделать basic auth для графаны на уровне nginx, передавая username в grafana, так чтобы переданное имя использовалось как пользователь в grafana и запихнуть всё это в терраформ.
Решение: (выписка из values.yaml)
Содержимое файла basic_auth.txt заполняется так:
#grafana #kubernetes #nginx #ingress #terraform
В ролях:
- grafana stable chart
- nginx ingress controller
- terraform
Задача:
Сделать basic auth для графаны на уровне nginx, передавая username в grafana, так чтобы переданное имя использовалось как пользователь в grafana и запихнуть всё это в терраформ.
Решение: (выписка из values.yaml)
ingress:где переменные в main.tf принимают такие значения:
enabled: true
annotations:
'kubernetes.io/ingress.class': ${var.controller_ingress_class}
'nginx.ingress.kubernetes.io/auth-type': ${var.auth-type}
'nginx.ingress.kubernetes.io/auth-secret': ${var.basic_auth_secret_name}
'nginx.ingress.kubernetes.io/auth-realm': ${var.auth-realm}
'nginx.ingress.kubernetes.io/configuration-snippet': |
proxy_set_header X-Remote-User $remote_user;
....
grafana.ini:
users:
allow_sign_up: false
allow_org_create: false
auth:
disable_login_form: true
auth.proxy:
enabled: true
header_name: X-Remote-User
header_property: username
auto_sign_up: true
auth-type = "basic"
auth-secret = "nginx-ingress-auth"
auth-realm = "Authentication Required - OK"
basic_auth_secret = "${file("basic_auth.txt")}"
Содержимое файла basic_auth.txt заполняется так:
htpasswd -nb username long_long_password > basic_auth.txt
#grafana #kubernetes #nginx #ingress #terraform
курс по CCNA
http://blog.netskills.ru/p/cisco-packet-tracer.html?m=1
http://blog.netskills.ru/search/label/%D0%BA%D1%83%D1%80%D1%81%20%D0%BC%D0%BE%D0%BB%D0%BE%D0%B4%D0%BE%D0%B3%D0%BE%20%D0%B1%D0%BE%D0%B9%D1%86%D0%B0
https://www.youtube.com/playlist?list=PLcDkQ2Au8aVNYsqGsxRQxYyQijILa94T9
#networking #cisco #ccna #learning #thirdparty
http://blog.netskills.ru/p/cisco-packet-tracer.html?m=1
http://blog.netskills.ru/search/label/%D0%BA%D1%83%D1%80%D1%81%20%D0%BC%D0%BE%D0%BB%D0%BE%D0%B4%D0%BE%D0%B3%D0%BE%20%D0%B1%D0%BE%D0%B9%D1%86%D0%B0
https://www.youtube.com/playlist?list=PLcDkQ2Au8aVNYsqGsxRQxYyQijILa94T9
#networking #cisco #ccna #learning #thirdparty
blog.netskills.ru
Курс молодого бойца. Практический курс с использованием Cisco Packet Tracer
Перед вами практический курс для новичков в мире сетевых технологий. Посмотрев данный материал вы научитесь пользоваться программным симу...
время старта процесса
#ps
$ ps -eo pid,lstart,cmd
PID CMD STARTED
1 Tue Jun 7 01:29:38 2016 /sbin/init
2 Tue Jun 7 01:29:38 2016 [kthreadd]
3 Tue Jun 7 01:29:38 2016 [ksoftirqd/0]
5 Tue Jun 7 01:29:38 2016 [kworker/0:0H]
7 Tue Jun 7 01:29:38 2016 [rcu_sched]
8 Tue Jun 7 01:29:38 2016 [rcu_bh]
9 Tue Jun 7 01:29:38 2016 [migration/0]
10 Tue Jun 7 01:29:38 2016 [kdevtmpfs]
11 Tue Jun 7 01:29:38 2016 [netns]
277 Tue Jun 7 01:29:38 2016 [writeback]
279 Tue Jun 7 01:29:38 2016 [crypto]
#ps
Forwarded from Кавычка (Bo0oM)
Хороший материал по захвату доменов (поддоменов), когда о них забывают:
https://github.com/EdOverflow/can-i-take-over-xyz
https://github.com/EdOverflow/can-i-take-over-xyz
GitHub
GitHub - EdOverflow/can-i-take-over-xyz: "Can I take over XYZ?" — a list of services and how to claim (sub)domains with dangling…
"Can I take over XYZ?" — a list of services and how to claim (sub)domains with dangling DNS records. - EdOverflow/can-i-take-over-xyz
Apache, ты пьян, иди домой
Словил сегодня интересную особенность apache. Запустил докер с апачем внутри и начал тестить. Захожу в браузере на страничку, иногда возвращаюсь в терминал. В один прекрасный момент замечаю что апач завершил работу. Путем вдумчивых повторений процесса оказалось что... при изменении размера терминала апач завершает свою работу. ему посылается сигнал SIGWINCH, который апач воспринимает как gracefull shutdown.
более подробное разъяснение (лень переводить)
SIGWINCH
SIGWINCH means SIGNAL WINDOWS CHANGE and is sent automatically when a terminal detects a change in it's windows size to allow for a redraw.
SIGWINCH for apache2
But unfortunately apache2 process poorly misuses this signal (in the way they divert its first meaning), but for their defense, they seems not to have a choice and had to resort to this due to a lack of signal (see bug report). One of their assumption is that apache2 process is always in background.
т.е. из этого становится понятно - апач запущен в foreground с подключенной tty (docker run -t). Поэтому при изменении размера терминала получаем завершение работы.
источник
#apache #yakuake
Словил сегодня интересную особенность apache. Запустил докер с апачем внутри и начал тестить. Захожу в браузере на страничку, иногда возвращаюсь в терминал. В один прекрасный момент замечаю что апач завершил работу. Путем вдумчивых повторений процесса оказалось что... при изменении размера терминала апач завершает свою работу. ему посылается сигнал SIGWINCH, который апач воспринимает как gracefull shutdown.
более подробное разъяснение (лень переводить)
SIGWINCH
SIGWINCH means SIGNAL WINDOWS CHANGE and is sent automatically when a terminal detects a change in it's windows size to allow for a redraw.
SIGWINCH for apache2
But unfortunately apache2 process poorly misuses this signal (in the way they divert its first meaning), but for their defense, they seems not to have a choice and had to resort to this due to a lack of signal (see bug report). One of their assumption is that apache2 process is always in background.
т.е. из этого становится понятно - апач запущен в foreground с подключенной tty (docker run -t). Поэтому при изменении размера терминала получаем завершение работы.
источник
#apache #yakuake
Что такое LA на linux OS
попалась на глаза довольно простая и по-детски объясняющая что же именно скрывается за волшебной статистикой load average.
https://scoutapp.com/blog/understanding-load-averages
или еще один вариант
http://www.brendangregg.com/blog/2017-08-08/linux-load-averages.html
#la
попалась на глаза довольно простая и по-детски объясняющая что же именно скрывается за волшебной статистикой load average.
https://scoutapp.com/blog/understanding-load-averages
или еще один вариант
http://www.brendangregg.com/blog/2017-08-08/linux-load-averages.html
#la
Scoutapm
Understanding Linux CPU Load - when should you be worried? | Scout APM Blog
In terms of load averages the three numbers represent averages over progressively longer periods of time (i.e. 1, 5, and 15-min. averages).