<?xml version="1.0" encoding="utf-8"?> 
<rss version="2.0"
  xmlns:itunes="http://www.itunes.com/dtds/podcast-1.0.dtd"
  xmlns:atom="http://www.w3.org/2005/Atom">

<channel>

<title>Skurudo Blog(post): заметки с тегом Яндекс</title>
<link>https://skurudo.ru/tags/yandex/</link>
<description>«Я́ндекс» — российская ИТ-компания, владеющая одноимённой системой поиска в Сети и интернет-порталом</description>
<author></author>
<language>ru</language>
<generator>Aegea 11.2 (v4116)</generator>

<itunes:subtitle>«Я́ндекс» — российская ИТ-компания, владеющая одноимённой системой поиска в Сети и интернет-порталом</itunes:subtitle>
<itunes:image href="" />
<itunes:explicit></itunes:explicit>

<item>
<title>Импорт пользователей в Яндекс.Коннект через API</title>
<guid isPermaLink="false">227</guid>
<link>https://skurudo.ru/all/import-users-to-yandex-connect/</link>
<pubDate>Thu, 04 Mar 2021 15:00:15 +0300</pubDate>
<author></author>
<comments>https://skurudo.ru/all/import-users-to-yandex-connect/</comments>
<description>
&lt;p&gt;Возникла задача добавить несколько десятков пользователей в Яндекс.Коннект и сразу же начались поиски пути решения, чтобы избавиться от ручного труда и в дальнейшем облегчить жизнь. Решил попробовать вариант от &lt;a href="https://habr.com/ru/users/Energys/"&gt;Energys&lt;/a&gt; — статья на &lt;a href="https://habr.com/ru/post/448036/"&gt;habr’e&lt;/a&gt;. Почему попробовать? За пару лет что-то могло перестать работать, как говорится — «За время пути собака могла подрасти!»&lt;/p&gt;
&lt;p&gt;С первого взгляда не понравилось то, что пароли у сотрудников будущих одинаковые — это обязательно нужно было поменять, плюс не указана должность — потребовалось добавить. Однако для общего понимания статья подходит как нельзя лучше. К тому же изменения сравнительно не сложные — готовимся и применяем.&lt;/p&gt;
&lt;p&gt;Самое не простое в этой истории — возня с токеном от Яндекса. В статье она описана, пройдем по шагам для истории и чтобы ничего не забыть:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;* зайти в аккаунт яндекса под администратором домена;&lt;/li&gt;
&lt;li&gt;* в &lt;a href="https://oauth.yandex.ru/"&gt;Я.OAuth&lt;/a&gt; первым делом нужно создать приложение;&lt;/li&gt;
&lt;li&gt;* приложению даем права, в нашем случае — Яндекс.Коннект Directory API;&lt;/li&gt;
&lt;li&gt;* выбираем платформу «веб-сервисы» и нажимаем «подставить url для разработки»;&lt;/li&gt;
&lt;li&gt;* сохраняемся и получим ID приложения — именно оно понадобится для получения токене;&lt;/li&gt;
&lt;li&gt;* вставляем ID приложения и получаем токен:&lt;/li&gt;
&lt;/ul&gt;
&lt;pre class="e2-text-code"&gt;&lt;code class=""&gt;https://oauth.yandex.ru/authorize?response_type=token&amp;amp;client_id=&amp;lt;ID приложения&amp;gt;&lt;/code&gt;&lt;/pre&gt;&lt;ul&gt;
&lt;li&gt;* именно этот токен и будет использоваться в скрипте;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Идея сравнительно не сложная:&lt;/p&gt;
&lt;ol start="1"&gt;
&lt;li&gt;готовим файл определенного образца;&lt;/li&gt;
&lt;li&gt;добавляем переменных;&lt;/li&gt;
&lt;li&gt;читаем список из файла;&lt;/li&gt;
&lt;li&gt;в запросе в цикле добавляем переменные;&lt;/li&gt;
&lt;li&gt;в каждой итерации ждем пару секунд.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Сам скрипт выглядит следующим образом — он же на &lt;a href="https://github.com/skurudo/usefulbash/blob/main/yandex-connect-mass-user-add.sh"&gt;GitHub&lt;/a&gt;:&lt;/p&gt;
&lt;pre class="e2-text-code"&gt;&lt;code class=""&gt;#!/bin/bash
# path to users list - путь к списку пользователей
employees=&amp;#039;./usrlist&amp;#039;
# line example from users list - пример строки файла 
# usrlist: email_lastname_firstname_middlename_password_position
# for example: petrova_Петрова_Авдотья_Федоровна_eeKrutoiparol23_Менеджер

# OAuth_Token
# link to material about token - ссылка на формирование отладочного токена
# https://tech.yandex.ru/oauth/doc/dg/tasks/get-oauth-token-docpage/
# link about our apps - список ваших приложений
# https://oauth.yandex.ru/
# get token from apps id - получить токен из ID приложения
# https://oauth.yandex.ru/verification_code#access_token=435843755894374389
TOKEN=&amp;quot;token-here-and-there&amp;quot;

# read and trim user file - читаем и перебираем файл со списком пользователей
for i in $( cat $employees ); do
value=($(echo $i | tr &amp;quot;_&amp;quot; &amp;quot; &amp;quot;))

# make variables for api request from file - заводим переменные для запроса из файла
email=&amp;quot;${value[0]}&amp;quot;
lastname=&amp;quot;${value[1]}&amp;quot;
firstname=&amp;quot;${value[2]}&amp;quot;
middlename=&amp;quot;${value[3]}&amp;quot;
password=&amp;quot;${value[4]}&amp;quot;
position=&amp;quot;${value[5]}&amp;quot;

# Make user for good - создаем сотрудника ради добра
# department = 1 for default - департамент 1 умолчанию
#only http answers, not full - только http ответы, не полный лог
curl -i -X POST -H &amp;#039;Content-type: application/json&amp;#039; -d &amp;#039;{&amp;quot;department_id&amp;quot;: 1, &amp;quot;position&amp;quot;: &amp;quot;&amp;#039;$position&amp;#039;&amp;quot;, &amp;quot;password&amp;quot;: &amp;quot;&amp;#039;$password&amp;#039;&amp;quot;, &amp;quot;nickname&amp;quot;: &amp;quot;&amp;#039;$email&amp;#039;&amp;quot;, &amp;quot;name&amp;quot;: {&amp;quot;first&amp;quot;: &amp;quot;&amp;#039;$firstname&amp;#039;&amp;quot;, &amp;quot;last&amp;quot;: &amp;quot;&amp;#039;$lastname&amp;#039;&amp;quot;, &amp;quot;middle&amp;quot;: &amp;quot;&amp;#039;$middlename&amp;#039;&amp;quot;}}&amp;#039; -H &amp;quot;Authorization: OAuth $TOKEN&amp;quot; &amp;#039;https://api.directory.yandex.net/v6/users/&amp;#039; | grep HTTP
#full answers - полные ответы
#curl -i -X POST -H &amp;#039;Content-type: application/json&amp;#039; -d &amp;#039;{&amp;quot;department_id&amp;quot;: 1, &amp;quot;position&amp;quot;: &amp;quot;&amp;#039;$position&amp;#039;&amp;quot;, &amp;quot;password&amp;quot;: &amp;quot;&amp;#039;$password&amp;#039;&amp;quot;, &amp;quot;nickname&amp;quot;: &amp;quot;&amp;#039;$email&amp;#039;&amp;quot;, &amp;quot;name&amp;quot;: {&amp;quot;first&amp;quot;: &amp;quot;&amp;#039;$firstname&amp;#039;&amp;quot;, &amp;quot;last&amp;quot;: &amp;quot;&amp;#039;$lastname&amp;#039;&amp;quot;, &amp;quot;middle&amp;quot;: &amp;quot;&amp;#039;$middlename&amp;#039;&amp;quot;}}&amp;#039; -H &amp;quot;Authorization: OAuth $TOKEN&amp;quot; &amp;#039;https://api.directory.yandex.net/v6/users/&amp;#039; 
# wait for 2 sec - ждем пару секунд
wait 2
done&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;C чем удалось столкнуться при отладке и работе скрипта? Буквально несколько моментов:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;* если посылать запросы слишком часто, часть может не сработать — нужно подбирать тайминги между запросами.. пауза в 1-2 секунды работает;&lt;/li&gt;
&lt;li&gt;* обязательно нужно смотреть на входные данные — аккуратность с символами в названиях важна;&lt;/li&gt;
&lt;li&gt;* моя частая ошибка — 422 Unprocessable Entity — при разборе оказалось, что пароль был слишком простой;&lt;/li&gt;
&lt;/ul&gt;
</description>
</item>

<item>
<title>В поисках хостинга DNS</title>
<guid isPermaLink="false">199</guid>
<link>https://skurudo.ru/all/looking-for-dns-hosting/</link>
<pubDate>Wed, 27 Mar 2019 15:37:01 +0300</pubDate>
<author></author>
<comments>https://skurudo.ru/all/looking-for-dns-hosting/</comments>
<description>
&lt;p&gt;В далеком 2011 году впервые озаботился вопросом выбора DNS хостинга, чтобы был понадежнее да поудобнее. С тех пор обращался к теме поиска несколько раз, но ничего идеального так и нет. Основная претензия к такого рода услугам — она либо дорогая, либо неудобная, либо все вместе. Складывается ощущение, что те, кто занимается разработкой или руководит внедрением, не имеют у себя с десяток доменов или в DNS им нужно поменять что-то такое специфическое один раз, к одному домену и происходит это раз в сто лет и можно немного потерпеть. Не скажу, что сам меняю что-то каждый день, но некоторая частота все-таки есть. Еще один случай из клинических — переезд. Сменить одну А-запись для одного домена не долго, а вот когда там еще TXT и для доменов 3-его и 4-ого уровня? Довольно продолжительно по времени получается.&lt;/p&gt;
&lt;p&gt;Помнится, был сначала YPDNS, более всего близок по &lt;a href="https://old.skurudo.ru/oldposts/v-poiskah-hostinga-dns.html"&gt;первоначальным требованиям&lt;/a&gt;, но просуществовал недолго и закрылся. Если не изменяет память, то у создателя не оставалось времени и мотивации на продолжение ведения этого дела. Пришлось по большей части смигрировать на PDD от Яндекс, однако после миграции всего в Connect я начинаю думать, что Яндекс тоже идет по какому-то своему пути и интересы у нас немного разные.&lt;/p&gt;
&lt;p&gt;Чего бы сейчас хотелось от DNS хостинга:&lt;/p&gt;
&lt;ol start="1"&gt;
&lt;li&gt;если сервис платный, то стоимость поддержки не должна быть астрономически высокой;&lt;/li&gt;
&lt;li&gt;серверы в нескольких гео-распределенных датацентрах поближе к магистральным каналам (на данный момент не самый критичный пункт, хотя несколько лет назад для меня это было важно — достаточно чтобы физически не в одном ДЦ);&lt;/li&gt;
&lt;li&gt;«быстрый» пинг (желательно до 10 мс, в идеале 1-5 мс);&lt;/li&gt;
&lt;li&gt;оперативная синхронизация между серверами;&lt;/li&gt;
&lt;li&gt;поддержка NS, A, AAAA, CNAME, MX, TXT, PTR и SRV;&lt;/li&gt;
&lt;li&gt;возможность изменения TTL по записям;&lt;/li&gt;
&lt;li&gt;возможность изменения SOA по домену;&lt;/li&gt;
&lt;li&gt;желательна поддержка DNSSEC;&lt;/li&gt;
&lt;li&gt;поддержка Round Robin желательна;&lt;/li&gt;
&lt;li&gt;возможность использования темплейтов (наличие инструмента или шаблона для создания — т. е. мы создаем шаблон с нужными записями и применяем его к домену);&lt;/li&gt;
&lt;li&gt;возможность массовой правки записей по домену (к примеру мы выделили несколько записей и хотим из удалить или мы выделили несколько записей одного типа — А-запись к примеру и хотим поменять там значение IP)&lt;/li&gt;
&lt;li&gt;возможность массовой правки записей по нескольким доменам (похоже для записи выше, здесь по большей части нас интересуют поля А-записей, TXT, SOA);&lt;/li&gt;
&lt;li&gt;и конечно стабильная работа, высокий аптайм как всегда.&lt;/li&gt;
&lt;/ol&gt;
</description>
</item>

<item>
<title>План миграции почтового сервера</title>
<guid isPermaLink="false">165</guid>
<link>https://skurudo.ru/all/migration-plan-of-the-mail-server/</link>
<pubDate>Tue, 02 May 2017 20:15:02 +0300</pubDate>
<author></author>
<comments>https://skurudo.ru/all/migration-plan-of-the-mail-server/</comments>
<description>
&lt;p&gt;Есть ли у вас план, мистер Фикс? ... Да у меня целых три плана!&lt;/p&gt;
&lt;div class="e2-text-video"&gt;
&lt;iframe src="https://www.youtube.com/embed/e3iMYTeUGaQ?enablejsapi=1" allow="autoplay" frameborder="0" allowfullscreen&gt;&lt;/iframe&gt;
&lt;/div&gt;
&lt;ul&gt;
&lt;li&gt;Самый первый вопрос — организационный, руководство должно быть морально готово к переезду; нужно дать сроки по переезду, примерный план миграции, возможные риски, представить выгоды переезда. Если у вас нет полномочий для решения вопроса, лучше не начинайте делать что-то втихую.&lt;/li&gt;
&lt;/ul&gt;
&lt;ul&gt;
&lt;li&gt;Второй вопрос — выбираем маршрут и пассажиров: нужно определиться, кто едет, в какую очередь, когда.&lt;/li&gt;
&lt;/ul&gt;
&lt;ul&gt;
&lt;li&gt;Третий вопрос — подготовительный: структуру и будущих пользователей лучше всего завести заранее.&lt;/li&gt;
&lt;/ul&gt;
&lt;ul&gt;
&lt;li&gt;Четвертый вопрос — тестовая синхронизация, можно сделать на части пользователей. К примеру у меня была история, когда imapsync не синхронизировал вложенные папки, нужно было подбирать параметры.&lt;/li&gt;
&lt;/ul&gt;
&lt;ul&gt;
&lt;li&gt;Пятый вопрос — синхронизация данных, её можно и нужно в зависимости от объемов корреспонденции проводить не один раз, чтобы не потерять данные.&lt;/li&gt;
&lt;/ul&gt;
&lt;ul&gt;
&lt;li&gt;Шестой вопрос — переключение почтовых реквизитов у клиента, если вопрос не удалось решить в DNS.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Такой вот не хитрый план.&lt;/p&gt;
</description>
</item>

<item>
<title>Странные проблемы с Google DNS</title>
<guid isPermaLink="false">136</guid>
<link>https://skurudo.ru/all/strange-problems-with-google-dns/</link>
<pubDate>Sat, 26 Dec 2015 21:33:04 +0300</pubDate>
<author></author>
<comments>https://skurudo.ru/all/strange-problems-with-google-dns/</comments>
<description>
&lt;p&gt;Сегодня где-то в половине шестого начались странные проблемы с интернетом. По цепочке проверили все, что только можно, пока не уперлись в dns от Google. Порядка трех часов из сети Ростелекома, с М9 и из сети Билайн было не получить ответа. Фокус в том, что пинги проходили нормально (потери были, но небольшие и непостоянные), а вот ответ не отдавался или отдавался с большими потерями. Забавное в том, что началось все с основного 8.8.8.8. Резервный адрес 8.8.4.4 работал нормально, правда потом начал хандрить и он.&lt;/p&gt;
&lt;p&gt;Что это такое было не ясно, но больше всего сообщений мной было найдено из РФ. В англоязычном части интернета авария прошла незаметно (впрочем может её там и не было). Никаких официальных ответов или сведений об этом инциденте нет.&lt;/p&gt;
&lt;p&gt;Проверять можно следующим образом:&lt;/p&gt;
&lt;pre class="e2-text-code"&gt;&lt;code class=""&gt;nslookup google.com 8.8.8.8&lt;/code&gt;&lt;/pre&gt;&lt;pre class="e2-text-code"&gt;&lt;code class=""&gt;dig @8.8.8.8 google.com&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;В качестве резерва есть днс серверы от Яндекса:&lt;/p&gt;
&lt;pre class="e2-text-code"&gt;&lt;code class=""&gt;77.88.8.8
77.88.8.1&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;&lt;b&gt;UPDATE, 22:00 — подборка новостей по теме&lt;/b&gt;:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="https://sku.su/uLXUV"&gt;Тостер, 19:15&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://sku.su/d2aFo"&gt;Twitter, 19:23&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://sku.su/UKsZp"&gt;Хабрахабр, 19:51&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://sku.su/uLXUV"&gt;Тостер, 19:57&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://sku.su/yVEsg"&gt;ЖЖ m0z9s, 20:12&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://sku.su/ZCiiL"&gt;Тостер, 20:45&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://sku.su/dytrN"&gt;Roem, 21:17&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="https://sku.su/McYsT"&gt;КАЗАХТЕЛЕКОМ заблокировал DNS 8.8.8.8&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
</description>
</item>


</channel>
</rss>