<?xml version="1.0" encoding="UTF-8"?>
<!-- generator="FeedCreator 1.8" -->
<?xml-stylesheet href="https://wiki.rtzra.ru/lib/exe/css.php?s=feed" type="text/css"?>
<rss version="2.0">
    <channel xmlns:g="http://base.google.com/ns/1.0">
        <title>RTzRa&#039;s hive - devops:gitlab</title>
        <description>Все работает</description>
        <link>https://wiki.rtzra.ru/</link>
        <lastBuildDate>Sun, 19 Jul 2026 18:18:57 +0000</lastBuildDate>
        <generator>FeedCreator 1.8</generator>
        <image>
            <url>https://wiki.rtzra.ru/_media/wiki/logo.png</url>
            <title>RTzRa&#039;s hive</title>
            <link>https://wiki.rtzra.ru/</link>
        </image>
        <item>
            <title>Gitlab: Блокировка неактивных пользователей</title>
            <link>https://wiki.rtzra.ru/devops/gitlab/gitlab-block-users</link>
            <description>
&lt;h1 class=&quot;sectionedit1&quot; id=&quot;gitlabblokirovka_neaktivnyx_polzovatelej&quot;&gt;Gitlab: Блокировка неактивных пользователей&lt;/h1&gt;
&lt;div class=&quot;level1&quot;&gt;

&lt;p&gt;
Чем больше организация - тем больше нужно автоматизации для управления пользователями, они приходят и увольняются порой так неожиданно. К тому же неактивные пользователи могут потреблять лицензии, а они денег стоят.
&lt;/p&gt;

&lt;p&gt;
Небольшой скрипт для блокировки неактивных пользователей: &lt;a href=&quot;https://github.com/rtzra/gitlab_block_inactive_users&quot; class=&quot;urlextern&quot; title=&quot;https://github.com/rtzra/gitlab_block_inactive_users&quot; rel=&quot;ugc nofollow&quot;&gt;https://github.com/rtzra/gitlab_block_inactive_users&lt;/a&gt;
&lt;/p&gt;
&lt;div class=&quot;tags&quot;&gt;&lt;span&gt;
	&lt;a href=&quot;https://wiki.rtzra.ru/tag/gitlab?do=showtag&amp;amp;tag=gitlab&quot; class=&quot;wikilink1 tag label label-default mx-1&quot; title=&quot;tag:gitlab&quot; rel=&quot;tag&quot;&gt;&lt;span class=&quot;iconify&quot;  data-icon=&quot;mdi:tag-text-outline&quot;&gt;&lt;/span&gt; gitlab&lt;/a&gt;,
	&lt;a href=&quot;https://wiki.rtzra.ru/tag/block_users?do=showtag&amp;amp;tag=block_users&quot; class=&quot;wikilink1 tag label label-default mx-1&quot; title=&quot;tag:block_users&quot; rel=&quot;tag&quot;&gt;&lt;span class=&quot;iconify&quot;  data-icon=&quot;mdi:tag-text-outline&quot;&gt;&lt;/span&gt; block users&lt;/a&gt;,
	&lt;a href=&quot;https://wiki.rtzra.ru/tag/blokirovka_polzovatelej?do=showtag&amp;amp;tag=%D0%B1%D0%BB%D0%BE%D0%BA%D0%B8%D1%80%D0%BE%D0%B2%D0%BA%D0%B0_%D0%BF%D0%BE%D0%BB%D1%8C%D0%B7%D0%BE%D0%B2%D0%B0%D1%82%D0%B5%D0%BB%D0%B5%D0%B9&quot; class=&quot;wikilink1 tag label label-default mx-1&quot; title=&quot;tag:blokirovka_polzovatelej&quot; rel=&quot;tag&quot;&gt;&lt;span class=&quot;iconify&quot;  data-icon=&quot;mdi:tag-text-outline&quot;&gt;&lt;/span&gt; блокировка пользователей&lt;/a&gt;,
	&lt;a href=&quot;https://wiki.rtzra.ru/tag/blokirovka_neaktivnyx_polzovatelej?do=showtag&amp;amp;tag=%D0%B1%D0%BB%D0%BE%D0%BA%D0%B8%D1%80%D0%BE%D0%B2%D0%BA%D0%B0_%D0%BD%D0%B5%D0%B0%D0%BA%D1%82%D0%B8%D0%B2%D0%BD%D1%8B%D1%85_%D0%BF%D0%BE%D0%BB%D1%8C%D0%B7%D0%BE%D0%B2%D0%B0%D1%82%D0%B5%D0%BB%D0%B5%D0%B9&quot; class=&quot;wikilink1 tag label label-default mx-1&quot; title=&quot;tag:blokirovka_neaktivnyx_polzovatelej&quot; rel=&quot;tag&quot;&gt;&lt;span class=&quot;iconify&quot;  data-icon=&quot;mdi:tag-text-outline&quot;&gt;&lt;/span&gt; блокировка неактивных пользователей&lt;/a&gt;
&lt;/span&gt;&lt;/div&gt;

&lt;/div&gt;
</description>
            <author>anonymous@undisclosed.example.com (Anonymous)</author>
            <pubDate>Mon, 02 Aug 2021 15:03:12 +0000</pubDate>
        </item>
        <item>
            <title>Gitlab: Разблокировать пользователя</title>
            <link>https://wiki.rtzra.ru/devops/gitlab/gitlab-unblock-users</link>
            <description>
&lt;h1 class=&quot;sectionedit1&quot; id=&quot;gitlabrazblokirovat_polzovatelja&quot;&gt;Gitlab: Разблокировать пользователя&lt;/h1&gt;
&lt;div class=&quot;level1&quot;&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;Gitlab: \u0420\u0430\u0437\u0431\u043b\u043e\u043a\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;gitlabrazblokirovat_polzovatelja&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:1,&amp;quot;range&amp;quot;:&amp;quot;1-77&amp;quot;} --&gt;
&lt;h2 class=&quot;sectionedit2&quot; id=&quot;pri_pomoschi_gui&quot;&gt;При помощи GUI&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;

&lt;p&gt;
Admin Area → Users. Ищем пользователя (если он заблокирован то лучше начинать поиски в Disabled или Blocked), открываем карточку пользователя и нажимаем «Unblock user».
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;\u041f\u0440\u0438 \u043f\u043e\u043c\u043e\u0449\u0438 GUI&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;pri_pomoschi_gui&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:2,&amp;quot;range&amp;quot;:&amp;quot;78-383&amp;quot;} --&gt;
&lt;h2 class=&quot;sectionedit3&quot; id=&quot;pri_pomoschi_cli&quot;&gt;При помощи CLI&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;

&lt;p&gt;
В некоторых случаях (например когда пользователи берутся из LDAP), разблокировать пользователя из &lt;abbr title=&quot;Graphical User Interface&quot;&gt;GUI&lt;/abbr&gt; не удается: получаем сообщение «This user cannot be unlocked manually from GitLab». В таких случаях можно разблокировать через консоль.
&lt;/p&gt;

&lt;p&gt;
Подключаемся к серверу по SSH, запускаем консоль:
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;gitlab-rails console&lt;/pre&gt;

&lt;p&gt;
и выполняем команды:
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;user = User.find_by_email(&amp;quot;&amp;lt;$USER_EMAIL&amp;gt;&amp;quot;)
user.state = &amp;quot;active&amp;quot;
user.save&lt;/pre&gt;

&lt;p&gt;
В случае если необходимо разблокировать несколько учеток (например после вылета LDAP), можно использовать следующие команды:
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;inactive_users = User.blocked.where(&amp;quot;last_activity_on &amp;gt;= ?&amp;quot;, 4.days.ago)  # Выбираем всех заблокированных за 4 последние дня пользователей
inactive_users.count  # Смотрим количество полученных записей
inactive_users.each do |user|; puts &amp;quot;user &amp;#039;#{user.username}&amp;#039;: #{user.state}&amp;quot;; end  # Смотрим статус учетных записей - все ли верные
inactive_users.each do |user|; user.state=&amp;quot;active&amp;quot;; user.save; end  # Включаем учетные записи&lt;/pre&gt;
&lt;div class=&quot;tags&quot;&gt;&lt;span&gt;
	&lt;a href=&quot;https://wiki.rtzra.ru/tag/gitlab?do=showtag&amp;amp;tag=gitlab&quot; class=&quot;wikilink1 tag label label-default mx-1&quot; title=&quot;tag:gitlab&quot; rel=&quot;tag&quot;&gt;&lt;span class=&quot;iconify&quot;  data-icon=&quot;mdi:tag-text-outline&quot;&gt;&lt;/span&gt; gitlab&lt;/a&gt;,
	&lt;a href=&quot;https://wiki.rtzra.ru/tag/rails?do=showtag&amp;amp;tag=rails&quot; class=&quot;wikilink1 tag label label-default mx-1&quot; title=&quot;tag:rails&quot; rel=&quot;tag&quot;&gt;&lt;span class=&quot;iconify&quot;  data-icon=&quot;mdi:tag-text-outline&quot;&gt;&lt;/span&gt; rails&lt;/a&gt;,
	&lt;a href=&quot;https://wiki.rtzra.ru/tag/unblock_user?do=showtag&amp;amp;tag=unblock_user&quot; class=&quot;wikilink1 tag label label-default mx-1&quot; title=&quot;tag:unblock_user&quot; rel=&quot;tag&quot;&gt;&lt;span class=&quot;iconify&quot;  data-icon=&quot;mdi:tag-text-outline&quot;&gt;&lt;/span&gt; unblock user&lt;/a&gt;,
	&lt;a href=&quot;https://wiki.rtzra.ru/tag/razblokirovat_polzovatelja?do=showtag&amp;amp;tag=%D1%80%D0%B0%D0%B7%D0%B1%D0%BB%D0%BE%D0%BA%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D1%82%D1%8C_%D0%BF%D0%BE%D0%BB%D1%8C%D0%B7%D0%BE%D0%B2%D0%B0%D1%82%D0%B5%D0%BB%D1%8F&quot; class=&quot;wikilink1 tag label label-default mx-1&quot; title=&quot;tag:razblokirovat_polzovatelja&quot; rel=&quot;tag&quot;&gt;&lt;span class=&quot;iconify&quot;  data-icon=&quot;mdi:tag-text-outline&quot;&gt;&lt;/span&gt; разблокировать пользователя&lt;/a&gt;
&lt;/span&gt;&lt;/div&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;\u041f\u0440\u0438 \u043f\u043e\u043c\u043e\u0449\u0438 CLI&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;pri_pomoschi_cli&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:3,&amp;quot;range&amp;quot;:&amp;quot;384-&amp;quot;} --&gt;</description>
            <author>anonymous@undisclosed.example.com (Anonymous)</author>
            <pubDate>Mon, 02 Aug 2021 14:59:25 +0000</pubDate>
        </item>
        <item>
            <title>Gitlab: План обновления</title>
            <link>https://wiki.rtzra.ru/devops/gitlab/gitlab-upgrade-path</link>
            <description>
&lt;h1 class=&quot;sectionedit1&quot; id=&quot;gitlabplan_obnovlenija&quot;&gt;Gitlab: План обновления&lt;/h1&gt;
&lt;div class=&quot;level1&quot;&gt;

&lt;p&gt;
Gitlab довольно легко обновлять, но если инсталляция большая и нагруженная то процесс обновления, скажем так, не очень быстр. А еще крайне желательно делать бэкапы, что тоже сильно замедляет процесс. Поэтому всегда возникает соблазн обновиться сразу через несколько версий. Это, прямо скажем, довольно рискованное мероприятие, ибо тише едешь - дальше будешь.
&lt;/p&gt;

&lt;p&gt;
Чтобы правильно обновиться нужно составить план миграции. Раньше это приходилось делать руками, но в один прекрасный момент я наткнулся на шикарный ресурс, который прямо расписывает порядок обновления: &lt;a href=&quot;https://gitlab-com.gitlab.io/support/toolbox/upgrade-path/&quot; class=&quot;urlextern&quot; title=&quot;https://gitlab-com.gitlab.io/support/toolbox/upgrade-path/&quot; rel=&quot;ugc nofollow&quot;&gt;https://gitlab-com.gitlab.io/support/toolbox/upgrade-path/&lt;/a&gt;
&lt;/p&gt;

&lt;p&gt;
Все максимально просто:
&lt;/p&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Выбираем текущую версию и версию на которую необходимо обновиться&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Выбираем дистрибутив (Ubuntu/Centos/Docker)&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1 node&quot;&gt;&lt;div class=&quot;li&quot;&gt; Выбираем галочки с умом и учетом ситуации:&lt;/div&gt;
&lt;ul&gt;
&lt;li class=&quot;level2&quot;&gt;&lt;div class=&quot;li&quot;&gt; Auto Install - в команду добавится флаг &amp;#039;-a&amp;#039;, т.е. обновление будет устанавливаться без дополнительных подтверждений&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level2&quot;&gt;&lt;div class=&quot;li&quot;&gt; Zero downtime - обновление через все минорные версии, что позволяет максимально просто обновиться, но увеличивается количество шагов и, соответственно, времени на обновление&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level2&quot;&gt;&lt;div class=&quot;li&quot;&gt; N-1 - обновляется не до самой последней версии, т.к. неоднократно были случаи быстрого выпуска обновлений которые были, мягко говоря, весьма кривыми&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;
Далее получаем список команд и можно начинать обновление.
&lt;/p&gt;

&lt;p&gt;
P.S. Не забывайте делать бэкапы!
&lt;/p&gt;
&lt;div class=&quot;tags&quot;&gt;&lt;span&gt;
	&lt;a href=&quot;https://wiki.rtzra.ru/tag/gitlab?do=showtag&amp;amp;tag=gitlab&quot; class=&quot;wikilink1 tag label label-default mx-1&quot; title=&quot;tag:gitlab&quot; rel=&quot;tag&quot;&gt;&lt;span class=&quot;iconify&quot;  data-icon=&quot;mdi:tag-text-outline&quot;&gt;&lt;/span&gt; gitlab&lt;/a&gt;,
	&lt;a href=&quot;https://wiki.rtzra.ru/tag/selfhosted?do=showtag&amp;amp;tag=selfhosted&quot; class=&quot;wikilink1 tag label label-default mx-1&quot; title=&quot;tag:selfhosted&quot; rel=&quot;tag&quot;&gt;&lt;span class=&quot;iconify&quot;  data-icon=&quot;mdi:tag-text-outline&quot;&gt;&lt;/span&gt; selfhosted&lt;/a&gt;,
	&lt;a href=&quot;https://wiki.rtzra.ru/tag/update?do=showtag&amp;amp;tag=update&quot; class=&quot;wikilink1 tag label label-default mx-1&quot; title=&quot;tag:update&quot; rel=&quot;tag&quot;&gt;&lt;span class=&quot;iconify&quot;  data-icon=&quot;mdi:tag-text-outline&quot;&gt;&lt;/span&gt; update&lt;/a&gt;,
	&lt;a href=&quot;https://wiki.rtzra.ru/tag/obnovlenie?do=showtag&amp;amp;tag=%D0%BE%D0%B1%D0%BD%D0%BE%D0%B2%D0%BB%D0%B5%D0%BD%D0%B8%D0%B5&quot; class=&quot;wikilink1 tag label label-default mx-1&quot; title=&quot;tag:obnovlenie&quot; rel=&quot;tag&quot;&gt;&lt;span class=&quot;iconify&quot;  data-icon=&quot;mdi:tag-text-outline&quot;&gt;&lt;/span&gt; обновление&lt;/a&gt;
&lt;/span&gt;&lt;/div&gt;

&lt;/div&gt;
</description>
            <author>anonymous@undisclosed.example.com (Anonymous)</author>
            <pubDate>Sat, 16 Sep 2023 10:31:07 +0000</pubDate>
        </item>
    </channel>
</rss>
