<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0"
  xmlns:atom="http://www.w3.org/2005/Atom"
  xmlns:content="http://purl.org/rss/1.0/modules/content/"
  xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>Notes - Павел Васильев. Блог.</title>
    <link>https://pavel.su/notes/</link>
    <description>Notes</description>
    <generator>Hugo -- gohugo.io</generator>
    <language>ru-RU</language>
    <lastBuildDate>Fri, 30 Oct 2026 18:25:53 &#43;0000</lastBuildDate>
    <atom:link href="https://pavel.su/notes/index.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>Договор с ребенком на использование мобильного телефона</title>
      <link>https://pavel.su/notes/mobile-phone-agreement/</link>
      <pubDate>Thu, 27 Jul 2023 00:00:00 &#43;0000</pubDate>
      <guid>https://pavel.su/notes/mobile-phone-agreement/</guid>
      <description>Когда папа - связист и знает как работает Интернет, что такое СОРМ и что неплохо бы учесть в отношении безопасности. Шаблон самого договор, какие цели преследует и как его подписать.
Договор с ребенком на мобильный телефон - уже широко распространённая история. Все, вроде бы, понимают, что просто так подарить телефон это как-то мало. Это сложное средство связи и неплохо бы закрепить основные понятия его использования.
Но почему-то пока ещё мало кто вспоминает про безопасность коммуникаций, про особенности работы самого Интернета, про негодяев в сети - и разговор про это заходит только когда родители случайно что-то находят в телефоне у ребенка.
</description>
      <content:encoded><![CDATA[<p>Когда папа - связист и знает как работает Интернет, что такое СОРМ и что неплохо бы учесть в отношении безопасности. Шаблон самого договор, какие цели преследует и как его подписать.</p>
<p>Договор с ребенком на мобильный телефон - уже широко распространённая история. Все, вроде бы, понимают, что просто так подарить телефон это как-то мало. Это сложное средство связи и неплохо бы закрепить основные понятия его использования.</p>
<p>Но почему-то пока ещё мало кто вспоминает про безопасность коммуникаций, про особенности работы самого Интернета, про негодяев в сети - и разговор про это заходит только когда родители случайно что-то находят в телефоне у ребенка.</p>
<h2 id="про-ответственность-родителей">Про ответственность родителей</h2>
<p>Видимо, для нас, для родителей, процесс постепенного обучения базовым принципам работы в сети был прост, как раз из-за постепенности. Мы учились пользоваться связью много лет, вместе с развитием технологий.</p>
<p>И при этом ВАЖНО, что Договор - это всегда обязательства ДВУХ сторон. В нашем случае - и ребенка, и родителей.</p>
<p>И важно дать ребенку понимание, что у родителей тоже есть ответственнсть:</p>
<ol>
<li>
<p>Уважать детские секреты и тайны и предельно бережно с ними обращаться</p>
</li>
<li>
<p>Обязанность в любой момент придти на помощь ребенку во избежание неприятностей</p>
</li>
<li>
<p>Обучить ребенка принципам работы (ну, пока он не начнёт уже учить вас)</p>
</li>
<li>
<p>Защищать ребенка - как в Сети, так и в реальной жизни (пункт &ldquo;никто не может получить доступ к твоему телефону; если хочет - пусть спросит у родителей&rdquo;)</p>
</li>
<li>
<p>Объяснять ребенку что он сейчас делает и к каким последствиям это может привести</p>
</li>
</ol>
<h2 id="цели-договора">Цели договора</h2>
<p>Две цели:</p>
<ol>
<li>
<p>закрепить договорённости об использовании телефона</p>
</li>
<li>
<p>научить работать с Договрами</p>
</li>
</ol>
<p>Возможно, в жизни ребенка - это первый договор, который ему надо подписать. Причем подписать, внимательно прочитав и согласившись со всеми пунктами. А, возможно, что-то добавить или убавить.</p>
<p>Это прекрасный повод вообще показать как именно должны работать договорные отношения в жизни. Что это не формальная бумажка, а закрепленные договорённости, на которые можно опереться.</p>
<p>Возможно, неплохо бы показать как это работает - пару раз сознательно нарушить договор и подтолкнуть ребенка (аккуратно!) к отстаиванию своих прав.</p>
<h2 id="как-заключить-важно-опыт">Как заключить (важно, опыт)</h2>
<p>Подарить телефон на день рождения вместе с договором - плохая идея. Получив в руки телефон, ребенок уже подпишет вообще всё что угодно, надо это понимать. И эффекта тогда не будет.</p>
<p>Чего греха таить, у нас тоже была идея с подарком, но мы понимали проблему. В итоге, получилось по-другому и <strong>очень хорошо</strong>.</p>
<p><strong>Примерно за месяц</strong> до факта подарка мы зашли с &ldquo;разговором издалека&rdquo;, что &ldquo;каждому человеку нужна подпись - например, чтобы договоры подписывать&rdquo;. Показали какие бывают подписи, как можно её придумать, из чего она должна состоять. Фактически - первый шаг.</p>
<p>Ребенку было интересно придумывать себе подпись. Не скажу, что прям супер получилось, но довольно оригинально, и самое главное - одинаково от раза к разу.</p>
<p>Потом, примерно <strong>за пару недель</strong> до того, мы с женой между собой согласовали текст договора - как раз чтобы оба понимали свою ответственность, добавили важные пункты и тд.</p>
<p><strong>А за неделю</strong> до подарка говорили с ребенком о том, что когдаааааа-нибудь, потоооооооом, пока не знаем когда - но всё таки подарим телефон. Поэтому надо <strong>заранее</strong> (!) подписать договор.</p>
<p>Договор <strong>БУДУЩЕГО</strong> использования телефона, на случай когда его уже наконец-то подарят. Пока неизвестно когда.</p>
<p>Ребенок не знал, что телефон уже куплен и ждёт. Не знал даты, к которой надо было подписать. То есть был полностью свободен во времени. Мы терпеливо ждали.</p>
<p>Всё это дало возможность ребенку спокойно и вдумчиво, за несколько заходов прочитать, осознать, подумать и кое-чего исправить, немного поторговавшись.</p>
<p>Кроме того, мы вместе проговорили все пункты (без исключения, по очереди), обсудили одинаково ли мы их понимаем, что именно имеется ввиду в каждом случае.</p>
<p>И дальше&hellip; когда ребенок сказал &ldquo;готов&rdquo;, настал ответственный, торжественный момент подписания.</p>
<p>Тоже процесс не быстрый, я бы сказал. Детская подпись - штука долгая, наберитесь терпения. А потом ещё и каждый лист - мама и папа. С каменными, серьёзными лицами. Весь процесс - около часа.</p>
<p>Зато сразу после последней подписи <strong>всех</strong> участников&hellip;.</p>
<p><strong>&quot;&hellip;Мы понимаем серьёзность и осознанность твоего подхода и считаем тебя уже взрослым, ответственным человеком и думаем, что тебе уже пора подарить твой первый телефон&hellip;&quot;</strong></p>
<p>Эмоций - не передать!&hellip; ))</p>
<p>На самом деле, я думаю, вы удивитесь, насколько ваш ребенок может быть серьёзным и ответственным. Важно - чтобы не было ограничений по времени, и понимания, что &ldquo;вот-вот дадут, давайте быстрее, где поставить подпись?&rdquo;.</p>
<p>Всё таки, это серьезный документ. И серьёзный вопрос.</p>
<h2 id="скачать-шаблон-договора">Скачать шаблон договора</h2>
<p>Скачать шаблон договора на использования мобильного телефона бесплатно, без смс и регистраций в формате Word тут: <a href="https://pavel.su/wp-content/uploads/2023/07/mobile.agreement.docx">mobile.agreement.docx</a> )</p>
<p>Буду признателен за отзывы, добавки, исправления и комментарии. Пользуйтесь <strong>вдумчиво</strong>. Это важно.</p>
]]></content:encoded>
    </item>
    <item>
      <title>Как отсортировать записи внутри категории Wordpress</title>
      <link>https://pavel.su/notes/how-to-sort-posts-in-separate-category/</link>
      <pubDate>Sat, 25 Mar 2023 00:00:00 &#43;0000</pubDate>
      <guid>https://pavel.su/notes/how-to-sort-posts-in-separate-category/</guid>
      <description>Задача: задать ручную сортировку записей в Wordpress при отображении заданной категории, но при этом оставить стандартную сортировку для общего списка записей на главной странице или в других категориях.
Задача Пример: хочу на своём сайте отсортировать категорию &amp;ldquo;СОРМ&amp;rdquo; вручную - чтобы при открытии списка постов этой категории был определенный порядок.
Возможные решения: существует целый набор разных плагинов для Wordpress, которые позволяют изменять общую сортировку записей (не подходит - надо именно внутри одной категории), или сортировку заданной категории, но ни одного реально работающего &amp;ldquo;из коробки&amp;rdquo; я не нашёл.
</description>
      <content:encoded><![CDATA[<p>Задача: задать ручную сортировку записей в Wordpress при отображении заданной категории, но при этом оставить стандартную сортировку для общего списка записей на главной странице или в других категориях.</p>
<h2 id="задача">Задача</h2>
<p>Пример: хочу на своём сайте отсортировать категорию &ldquo;СОРМ&rdquo; вручную - чтобы при открытии списка постов этой категории был определенный порядок.</p>
<p>Возможные решения: существует целый набор разных плагинов для Wordpress, которые позволяют изменять общую сортировку записей (не подходит - надо именно внутри одной категории), или сортировку заданной категории, но ни одного реально работающего &ldquo;из коробки&rdquo; я не нашёл.</p>
<p>Решение:</p>
<ol>
<li>
<p>Плагин <a href="https://ru.wordpress.org/plugins/category-custom-post-order/">Order Posts</a> с сортировкой по заданному полю</p>
</li>
<li>
<p>Плагин <a href="https://ru.wordpress.org/plugins/advanced-custom-fields/">Advanced Custom Fields</a> для создания отдельного поля для сортировки</p>
</li>
<li>
<p>Правка файла functions.php для отображения колонки с номерами сортировки</p>
</li>
</ol>
<h2 id="подробнее-по-шагам">Подробнее, по шагам</h2>
<h3 id="1-создаём-поле-для-сортировки">1. Создаём поле для сортировки</h3>
<p>Устанавливаем и активируем плагин <a href="https://ru.wordpress.org/plugins/advanced-custom-fields/">ACF - Advanced Custom Fields</a></p>
<p>В боковом меню появляется раздел ACF</p>
<p><figure class="article-image">
    <a class="article-image__link" href="/notes/how-to-sort-posts-in-separate-category/images/%D0%A1%D0%BD%D0%B8%D0%BC%D0%BE%D0%BA-%D1%8D%D0%BA%D1%80%D0%B0%D0%BD%D0%B0-2023-07-25-%D0%B2-22.01.09.png" data-lightbox-image>
        <img
            src="/notes/how-to-sort-posts-in-separate-category/images/%D0%A1%D0%BD%D0%B8%D0%BC%D0%BE%D0%BA-%D1%8D%D0%BA%D1%80%D0%B0%D0%BD%D0%B0-2023-07-25-%D0%B2-22.01.09.png"
            alt=""
            loading="lazy"
            decoding="async"
            
            
            width="406"
            height="118"
            
        >
    </a>
    
</figure>
</p>
<p>Добавляем новую группу полей</p>
<p><figure class="article-image">
    <a class="article-image__link" href="images/%d0%a1%d0%bd%d0%b8%d0%bc%d0%be%d0%ba-%d1%8d%d0%ba%d1%80%d0%b0%d0%bd%d0%b0-2023-07-25-%d0%b2-22.02.06-1024x369.png" data-lightbox-image>
        <img
            src="images/%d0%a1%d0%bd%d0%b8%d0%bc%d0%be%d0%ba-%d1%8d%d0%ba%d1%80%d0%b0%d0%bd%d0%b0-2023-07-25-%d0%b2-22.02.06-1024x369.png"
            alt=""
            loading="lazy"
            decoding="async"
            
            
            
            
            
        >
    </a>
    
</figure>
</p>
<p>и задаём минимальные параметры</p>
<p><figure class="article-image">
    <a class="article-image__link" href="images/%d0%a1%d0%bd%d0%b8%d0%bc%d0%be%d0%ba-%d1%8d%d0%ba%d1%80%d0%b0%d0%bd%d0%b0-2023-07-25-%d0%b2-22.03.04-1024x579.png" data-lightbox-image>
        <img
            src="images/%d0%a1%d0%bd%d0%b8%d0%bc%d0%be%d0%ba-%d1%8d%d0%ba%d1%80%d0%b0%d0%bd%d0%b0-2023-07-25-%d0%b2-22.03.04-1024x579.png"
            alt=""
            loading="lazy"
            decoding="async"
            
            
            
            
            
        >
    </a>
    
</figure>
</p>
<p>и говорим где это отображать</p>
<p><figure class="article-image">
    <a class="article-image__link" href="images/%d0%a1%d0%bd%d0%b8%d0%bc%d0%be%d0%ba-%d1%8d%d0%ba%d1%80%d0%b0%d0%bd%d0%b0-2023-07-25-%d0%b2-22.04.22-1024x425.png" data-lightbox-image>
        <img
            src="images/%d0%a1%d0%bd%d0%b8%d0%bc%d0%be%d0%ba-%d1%8d%d0%ba%d1%80%d0%b0%d0%bd%d0%b0-2023-07-25-%d0%b2-22.04.22-1024x425.png"
            alt=""
            loading="lazy"
            decoding="async"
            
            
            
            
            
        >
    </a>
    
</figure>
</p>
<p>После этого в редакторе конкретной записи под текстом появится дополнительное поле</p>
<p><figure class="article-image">
    <a class="article-image__link" href="/notes/how-to-sort-posts-in-separate-category/images/%D0%A1%D0%BD%D0%B8%D0%BC%D0%BE%D0%BA-%D1%8D%D0%BA%D1%80%D0%B0%D0%BD%D0%B0-2023-07-25-%D0%B2-22.06.26.png" data-lightbox-image>
        <img
            src="/notes/how-to-sort-posts-in-separate-category/images/%D0%A1%D0%BD%D0%B8%D0%BC%D0%BE%D0%BA-%D1%8D%D0%BA%D1%80%D0%B0%D0%BD%D0%B0-2023-07-25-%D0%B2-22.06.26.png"
            alt=""
            loading="lazy"
            decoding="async"
            
            
            width="246"
            height="141"
            
        >
    </a>
    
</figure>
</p>
<p>Куда будем добавлять число, определяющее порядок записи при отображении категории</p>
<h3 id="2-задаём-сортировку-категории">2. Задаём сортировку категории</h3>
<p>Устанавливаем и активируем плагин <a href="https://ru.wordpress.org/plugins/category-custom-post-order/">Post Order</a>, который в списке плагинов отображается как &ldquo;Order Posts per Taxonomy&rdquo;.</p>
<p><em>По идее одного этого плагина должно было быть <strong>достаточно</strong>, чтобы получить инструмент ручной сортировки с помощью перестаскивания блоков, но у меня такое так и не заработало. Либо не смог найти - на странице плагина всего один скриншот, который ни черта не объясняет.</em></p>
<p><figure class="article-image">
    <a class="article-image__link" href="/notes/how-to-sort-posts-in-separate-category/images/%D0%A1%D0%BD%D0%B8%D0%BC%D0%BE%D0%BA-%D1%8D%D0%BA%D1%80%D0%B0%D0%BD%D0%B0-2023-07-25-%D0%B2-22.11.04.png" data-lightbox-image>
        <img
            src="/notes/how-to-sort-posts-in-separate-category/images/%D0%A1%D0%BD%D0%B8%D0%BC%D0%BE%D0%BA-%D1%8D%D0%BA%D1%80%D0%B0%D0%BD%D0%B0-2023-07-25-%D0%B2-22.11.04_hu_b50966fa1b8d4e50.webp"
            alt=""
            loading="lazy"
            decoding="async"
            srcset="/notes/how-to-sort-posts-in-separate-category/images/%D0%A1%D0%BD%D0%B8%D0%BC%D0%BE%D0%BA-%D1%8D%D0%BA%D1%80%D0%B0%D0%BD%D0%B0-2023-07-25-%D0%B2-22.11.04_hu_b50966fa1b8d4e50.webp 640w"
            sizes="100vw"
            width="688"
            height="198"
            
        >
    </a>
    
</figure>
</p>
<p>Идём в раздел Записи - Рубрики, выбираем конкретную рубрику (у меня - СОРМ), заходим в неё.</p>
<p>На странице редактирования рубрики должно появиться новое поле</p>
<p><figure class="article-image">
    <a class="article-image__link" href="images/%d0%a1%d0%bd%d0%b8%d0%bc%d0%be%d0%ba-%d1%8d%d0%ba%d1%80%d0%b0%d0%bd%d0%b0-2023-07-25-%d0%b2-22.13.03-1024x199.png" data-lightbox-image>
        <img
            src="images/%d0%a1%d0%bd%d0%b8%d0%bc%d0%be%d0%ba-%d1%8d%d0%ba%d1%80%d0%b0%d0%bd%d0%b0-2023-07-25-%d0%b2-22.13.03-1024x199.png"
            alt=""
            loading="lazy"
            decoding="async"
            
            
            
            
            
        >
    </a>
    
</figure>
</p>
<p>По большому счёту - готово. Включается сортировка по числовому полю порядка записей.</p>
<h3 id="3-добавляем-колонку-порядка-в-общий-список-записей">3. Добавляем колонку порядка в общий список записей</h3>
<p>Вручную ходить в каждую страницу и держать в голове общий порядок записей - то ещё занятие. Хочу сразу в общем списке смотреть что именно хранится в этом поле в каждой записи.</p>
<p>Для этого будем редактировать файл functinos.php.</p>
<p><strong>Варианты редактирования:</strong></p>
<ol>
<li>
<p>Админка - Внешний вид - Редактор тем, файл functions.php (Theme Functions)</p>
</li>
<li>
<p>Скачать файл на локальный комп (например ftp), отредактировать и залить обратно</p>
</li>
<li>
<p>Отредактировать прямо на сервере (дада, прямо на проде, чего мелочиться?))) )</p>
</li>
</ol>
<p>Редактирование подсмотрел у <a href="https://misha.agency/wordpress/add-or-remove-table-columns.html#column-for-posts-table">misha.agency</a>. Ну, как подсмотрел - тупо скопировал код и минимально отредактировал.</p>
<p>Код вставляется в конец файла functions.php.</p>
<p>Код:</p>
<div class="highlight"><pre tabindex="0" class="chroma"><code class="language-fallback" data-lang="fallback"><span class="line"><span class="cl">// add_filter( &#39;manage_edit-{ТИП ПОСТА}_columns&#39;, &#39;true_add_post_columns&#39;, 25 );
</span></span><span class="line"><span class="cl">add_filter( &#39;manage_edit-post_columns&#39;, &#39;true_add_post_columns&#39;, 25 ); // для обычных записей
</span></span><span class="line"><span class="cl">
</span></span><span class="line"><span class="cl">function true_add_post_columns( $my_columns ){
</span></span><span class="line"><span class="cl">
</span></span><span class="line"><span class="cl">	$my_columns[ &#39;views&#39; ] = &#39;ACF Order&#39;;
</span></span><span class="line"><span class="cl">	return $my_columns;
</span></span><span class="line"><span class="cl">
</span></span><span class="line"><span class="cl">}
</span></span><span class="line"><span class="cl">
</span></span><span class="line"><span class="cl">// а вот этот хук один общий для всех типов постов!
</span></span><span class="line"><span class="cl">add_action( &#39;manage_posts_custom_column&#39;, &#39;true_fill_post_columns&#39;, 25 );
</span></span><span class="line"><span class="cl">
</span></span><span class="line"><span class="cl">function true_fill_post_columns( $column ) {
</span></span><span class="line"><span class="cl">
</span></span><span class="line"><span class="cl">	switch ( $column ) {
</span></span><span class="line"><span class="cl">		case &#39;views&#39;: {
</span></span><span class="line"><span class="cl">			//$views = get_post_meta( get_the_ID(), &#39;views&#39;, true );
</span></span><span class="line"><span class="cl">			$views = get_post_meta( get_the_ID(), &#39;acf_order&#39;, true );
</span></span><span class="line"><span class="cl">			//echo $views ? $views : 0; // выводим 0, если просмотров нет
</span></span><span class="line"><span class="cl">			echo $views ? $views : &#39;-&#39;; // выводим 0, если просмотров нет
</span></span><span class="line"><span class="cl">			//echo $views;
</span></span><span class="line"><span class="cl">
</span></span><span class="line"><span class="cl">			break;
</span></span><span class="line"><span class="cl">		}
</span></span><span class="line"><span class="cl">	}
</span></span><span class="line"><span class="cl">
</span></span><span class="line"><span class="cl">}
</span></span></code></pre></div><p>Поправил три строки (выделено жирным).</p>
<p>Всё, получаем колонку в общем списке записей</p>
<p><figure class="article-image">
    <a class="article-image__link" href="images/%d0%a1%d0%bd%d0%b8%d0%bc%d0%be%d0%ba-%d1%8d%d0%ba%d1%80%d0%b0%d0%bd%d0%b0-2023-07-25-%d0%b2-22.26.07.png" data-lightbox-image>
        <img
            src="images/%d0%a1%d0%bd%d0%b8%d0%bc%d0%be%d0%ba-%d1%8d%d0%ba%d1%80%d0%b0%d0%bd%d0%b0-2023-07-25-%d0%b2-22.26.07.png"
            alt=""
            loading="lazy"
            decoding="async"
            
            
            
            
            
        >
    </a>
    
</figure>
</p>
<p>Если выбрать конкретную рубрику</p>
<p><figure class="article-image">
    <a class="article-image__link" href="images/%d0%a1%d0%bd%d0%b8%d0%bc%d0%be%d0%ba-%d1%8d%d0%ba%d1%80%d0%b0%d0%bd%d0%b0-2023-07-25-%d0%b2-22.27.04.png" data-lightbox-image>
        <img
            src="images/%d0%a1%d0%bd%d0%b8%d0%bc%d0%be%d0%ba-%d1%8d%d0%ba%d1%80%d0%b0%d0%bd%d0%b0-2023-07-25-%d0%b2-22.27.04.png"
            alt=""
            loading="lazy"
            decoding="async"
            
            
            
            
            
        >
    </a>
    
</figure>
</p>
<p>то получаем порядок сортировки именно в этой категории</p>
<p><figure class="article-image">
    <a class="article-image__link" href="/notes/how-to-sort-posts-in-separate-category/images/%D0%A1%D0%BD%D0%B8%D0%BC%D0%BE%D0%BA-%D1%8D%D0%BA%D1%80%D0%B0%D0%BD%D0%B0-2023-07-25-%D0%B2-22.28.27.png" data-lightbox-image>
        <img
            src="/notes/how-to-sort-posts-in-separate-category/images/%D0%A1%D0%BD%D0%B8%D0%BC%D0%BE%D0%BA-%D1%8D%D0%BA%D1%80%D0%B0%D0%BD%D0%B0-2023-07-25-%D0%B2-22.28.27.png"
            alt=""
            loading="lazy"
            decoding="async"
            
            
            width="380"
            height="448"
            
        >
    </a>
    
</figure>
</p>
<p>Профит.</p>
]]></content:encoded>
    </item>
    <item>
      <title>Смена имени хоста / ноды RabbitMQ</title>
      <link>https://pavel.su/notes/rabbitmq-change-node-name/</link>
      <pubDate>Tue, 14 Mar 2023 00:00:00 &#43;0000</pubDate>
      <guid>https://pavel.su/notes/rabbitmq-change-node-name/</guid>
      <description>Проблема: при начальной установке *nix операционной системе присваивается дефолтное имя localhost.localnet. Но при этом ноды с rabbitmq должны иметь уникальные имена для объединения в один кластер.
Решение.
Имя ноды кластера имеет вид rabbit1@nodename, где
nodename - имя хоста
rabbit1 - имя самого экземпляра КabbitMQ (если будет несколько кроликов на одной машине, то можно сделать уникальные имена вида rabbit1@nodename, rabbit2@nodename,&amp;hellip;)
Смена имени хоста.
Смена имени самого хоста - либо ручное редактирование файла /etc/hostname и затем перегрузка.
</description>
      <content:encoded><![CDATA[<p><strong>Проблема</strong>: при начальной установке *nix операционной системе присваивается дефолтное имя localhost.localnet. Но при этом ноды с rabbitmq должны иметь уникальные имена для объединения в один кластер.</p>
<p><strong>Решение</strong>.</p>
<p>Имя ноды кластера имеет вид rabbit1@nodename, где<br>
<em>nodename</em> - имя хоста<br>
<em>rabbit1</em> - имя самого экземпляра КabbitMQ (если будет несколько кроликов на одной машине, то можно сделать уникальные имена вида rabbit1@nodename, rabbit2@nodename,&hellip;)</p>
<p><strong>Смена имени хоста.</strong></p>
<p>Смена имени самого хоста - либо ручное редактирование файла /etc/hostname и затем перегрузка.</p>
<p>Либо:</p>
<div class="highlight"><pre tabindex="0" class="chroma"><code class="language-fallback" data-lang="fallback"><span class="line"><span class="cl">$ hostnamectl set-hostname HWSERVER 
</span></span><span class="line"><span class="cl">$ hostname 
</span></span><span class="line"><span class="cl">HWSERVER
</span></span></code></pre></div><p>далее - перезапуск самого кролика:</p>
<div class="highlight"><pre tabindex="0" class="chroma"><code class="language-fallback" data-lang="fallback"><span class="line"><span class="cl">$ sudo systemctl restart rabbitmq-server
</span></span></code></pre></div><p>При перезапуске RabbitMQ перезаписывает файлы в /var/lib/rabbitmq:</p>
<p>Было (до смены имени):</p>
<div class="highlight"><pre tabindex="0" class="chroma"><code class="language-fallback" data-lang="fallback"><span class="line"><span class="cl">[root@WRD1 _mnesia]# ls -al
</span></span><span class="line"><span class="cl">итого 16
</span></span><span class="line"><span class="cl">drwxr-x---. 6 rabbitmq rabbitmq 193 мар 14 11:04 .
</span></span><span class="line"><span class="cl">drwxr-x---. 5 rabbitmq rabbitmq 130 мар 14 11:11 ..
</span></span><span class="line"><span class="cl">drwxr-x---. 5 rabbitmq rabbitmq 4096 мар 14 10:46 rabbit@localhost
</span></span><span class="line"><span class="cl">-rw-r-----. 1 rabbitmq rabbitmq 310 мар 12 08:29 rabbit@localhost-feature_flags
</span></span><span class="line"><span class="cl">drwxr-x---. 2 rabbitmq rabbitmq 6 мар 14 10:46 rabbit@localhost-plugins-expand
</span></span></code></pre></div><p>Стало:</p>
<div class="highlight"><pre tabindex="0" class="chroma"><code class="language-fallback" data-lang="fallback"><span class="line"><span class="cl">[root@WRD1 _mnesia]# ls -al
</span></span><span class="line"><span class="cl">итого 16
</span></span><span class="line"><span class="cl">drwxr-x---. 6 rabbitmq rabbitmq  193 мар 14 11:04 .
</span></span><span class="line"><span class="cl">drwxr-x---. 5 rabbitmq rabbitmq  130 мар 14 11:11 ..
</span></span><span class="line"><span class="cl">drwxr-x---. 5 rabbitmq rabbitmq 4096 мар 14 10:46 rabbit@localhost
</span></span><span class="line"><span class="cl">-rw-r-----. 1 rabbitmq rabbitmq  310 мар 12 08:29 rabbit@localhost-feature_flags
</span></span><span class="line"><span class="cl">drwxr-x---. 2 rabbitmq rabbitmq    6 мар 14 10:46 rabbit@localhost-plugins-expand
</span></span><span class="line"><span class="cl">drwxr-x---. 5 rabbitmq rabbitmq 4096 мар 14 11:00 rabbit@HWSERVER
</span></span><span class="line"><span class="cl">-rw-r-----. 1 rabbitmq rabbitmq  358 мар 14 08:31 rabbit@HWSERVER-feature_flags
</span></span><span class="line"><span class="cl">drwxr-x---. 2 rabbitmq rabbitmq    6 мар 14 11:00 rabbit@HWSERVER1-plugins-expand
</span></span></code></pre></div><p><strong>ВАЖНО</strong>: после перезапуска RаbbitMQ забывает все настройки. Вы получаете абсолютно чистого зайца. Авторизоваться через веб-интерфейс также НЕ получится со старыми данными.</p>
<p>Причем, если у вас был уже открыт веб-интерфейс, то он тут же вывалится в состояние &ldquo;Not Authorized&rdquo;</p>
<p><figure class="article-image">
    <a class="article-image__link" href="/notes/rabbitmq-change-node-name/images/not-authorized-1024x545.jpg" data-lightbox-image>
        <img
            src="/notes/rabbitmq-change-node-name/images/not-authorized-1024x545_hu_e480e0ce183bcb1b.webp"
            alt=""
            loading="lazy"
            decoding="async"
            srcset="/notes/rabbitmq-change-node-name/images/not-authorized-1024x545_hu_6418d0b3ff3289b2.webp 640w, /notes/rabbitmq-change-node-name/images/not-authorized-1024x545_hu_e480e0ce183bcb1b.webp 960w"
            sizes="100vw"
            width="1024"
            height="545"
            
        >
    </a>
    
</figure>
</p>
<p>Создать нового пользователя:</p>
<div class="highlight"><pre tabindex="0" class="chroma"><code class="language-fallback" data-lang="fallback"><span class="line"><span class="cl">rabbitmqctl add_user username password
</span></span></code></pre></div><p>Добавить таг администратора</p>
<div class="highlight"><pre tabindex="0" class="chroma"><code class="language-fallback" data-lang="fallback"><span class="line"><span class="cl">rabbitmqctl set_user_tags username administrator
</span></span></code></pre></div><p>Дать полные права:</p>
<div class="highlight"><pre tabindex="0" class="chroma"><code class="language-fallback" data-lang="fallback"><span class="line"><span class="cl">rabbitmqctl set_permissions -p / username &#34;.*&#34; &#34;.*&#34; &#34;.*&#34;
</span></span></code></pre></div><p>После этого получится авторизоваться с вновь заданными username / password.</p>
<p>Доп. материалы про миграцию RabbitMQ здесь: &ldquo;<a href="https://dev.to/claudiajkang/the-best-way-to-migrate-a-rabbitmq-server-466o">The Best Way To Migrate a RabbitMQ Server</a>&rdquo;</p>
]]></content:encoded>
    </item>
  </channel>
</rss>
