<?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/"><channel><title>Devops on Мини-блог об IT, Linux, Open Source, Tech</title><link>https://coyotle.ru/tags/devops/</link><description>Recent content in Devops on Мини-блог об IT, Linux, Open Source, Tech</description><generator>Hugo -- 0.155.2</generator><language>ru-RU</language><lastBuildDate>Fri, 05 Apr 2024 22:48:54 +0300</lastBuildDate><atom:link href="https://coyotle.ru/tags/devops/index.xml" rel="self" type="application/rss+xml"/><item><title>Forgejo Actions в Podman и Quadlet</title><link>https://coyotle.ru/posts/podman-runner/</link><pubDate>Fri, 05 Apr 2024 22:48:54 +0300</pubDate><guid>https://coyotle.ru/posts/podman-runner/</guid><description>&lt;p&gt;Только обнаружил, что уже год Forgejo поддерживает экшены на подобии Github Actions для автоматического запуска ci/cd пайплайнов.
Пайплайны по синтаксису совместимы с Github и поддерживают готовые Github экшены &lt;a href="https://github.com/marketplace?type=actions"&gt;https://github.com/marketplace?type=actions&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;У меня изначально ci/cd был реализован на Forgejo + Drone, потом Drone был заменен на Woodpecker (форк Drone),
ну а затем собственно увидел, что появился встроенный механизм и перешел на него.&lt;/p&gt;
&lt;p&gt;Для работы экшен модуль должен быть включен в конфиге Forgejo:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-ini" data-lang="ini"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="k"&gt;[actions]&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="na"&gt;ENABLED&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="s"&gt;true&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="na"&gt;DEFAULT_ACTIONS_URL&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="s"&gt;github&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="na"&gt;ZOMBIE_TASK_TIMEOUT&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="s"&gt;10m&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="na"&gt;ENDLESS_TASK_TIMEOUT&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="s"&gt;3h&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="na"&gt;ABANDONED_JOB_TIMEOUT&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="s"&gt;24h&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="na"&gt;SKIP_WORKFLOW_STRINGS&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="s"&gt;[skip ci],[ci skip],[no ci],[skip actions],[actions skip]&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Так же как в Github за работу экшен отвечают ранеры, которые могут быть запущены как обычные приложения, либо в Docker-контейнере.
&lt;img loading="lazy" src="https://coyotle.ru/posts/podman-runner/runner.webp"&gt;
Во втором случае в контейнер монтируют docker.sock хоста для запуска ранером контейнеров с задачами.
Всё это прекрасно работало пока не решил отказаться от Docker и перейти на Podman.&lt;/p&gt;</description></item><item><title>Автоматизация сборки и публикации блога Hugo</title><link>https://coyotle.ru/posts/deploy-hugo-blog/</link><pubDate>Thu, 02 Feb 2023 11:52:31 +0300</pubDate><guid>https://coyotle.ru/posts/deploy-hugo-blog/</guid><description>&lt;p&gt;В предыдущей заметке мы установили &lt;a href="https://coyotle.ru/posts/cicd-at-home/"&gt;Drone CI&lt;/a&gt;, в этой настроим автоматическую сборку и публикацию блога при пуше в git-репозиторий.&lt;/p&gt;
&lt;p&gt;После настройки Drone и авторизации в нем вы должны увидеть доступные вам репозитории. Для того чтобы Drone начал обрабатывать пайплайны необходимо активировать репозиторий. Для это в секции &lt;code&gt;Repositories&lt;/code&gt; заходим в нужный репозиторий и нажамаем &lt;code&gt;Activate repository&lt;/code&gt;. На странице настроек можно отключить вебхуки которые будут отслеживаться, настроить режим приватности, максимальное время выполнения пайплайна и название файла в котором Drone будет искать описание пайплайна (по умолчанию .drone.yml). Нажимаем &lt;code&gt;Save changes&lt;/code&gt;.&lt;/p&gt;</description></item><item><title>Drone CI</title><link>https://coyotle.ru/posts/cicd-at-home/</link><pubDate>Fri, 27 Jan 2023 03:48:54 +0300</pubDate><guid>https://coyotle.ru/posts/cicd-at-home/</guid><description>&lt;p&gt;В продолжение заметки &amp;ldquo;&lt;a href="https://coyotle.ru/posts/github-at-home"&gt;У нас есть github дома&lt;/a&gt;&amp;rdquo; добавим к нашему окружению систему автоматического тестирования и доставки ПО &lt;a href="https://www.drone.io/"&gt;Drone CI&lt;/a&gt;.
Документацию можно почитать тут &lt;a href="https://docs.drone.io/"&gt;https://docs.drone.io/&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Из плюсов Drone по сравнению с Jenkins: простота установки, настройки и сопровождения, не надо изучать groovy, всё пишется на yaml.&lt;/p&gt;
&lt;p&gt;Drone CI состоит из двух сервисов: собственно Drone и ранеров которые будут выполнять необходимые задачи, в даном случае ранеры используют докер хост системы для запуска задач.&lt;/p&gt;
&lt;p&gt;Сам drone не имеет базы пользователей и использует OAuth внешней системы для авторизации пользователей.
Для настройки OAuth перейдите в раздел &lt;code&gt;user/settings/applications&lt;/code&gt; на вашем экземпляре forgejo/gitea и в подразделе &lt;code&gt;Authorized OAuth2 Applications&lt;/code&gt; создайте новое приложение. В поле Redirect URI укажите адрес вашего drone сервера, например &lt;code&gt;https://drone.example.ru/login&lt;/code&gt;. После создания приложения скопируйте client id и secret, они понадобятся ниже.&lt;/p&gt;</description></item><item><title>У нас есть github дома</title><link>https://coyotle.ru/posts/github-at-home/</link><pubDate>Tue, 10 Jan 2023 10:22:24 +0300</pubDate><guid>https://coyotle.ru/posts/github-at-home/</guid><description>&lt;p&gt;В этой заметке не буду обсуждать вопрос зачем поднимать свой git-сервер, а не использовать github/gitlab/codeberg или даже sourceforge.&lt;/p&gt;
&lt;h2 id="как-развернуть-свой-легкий-git-сервер"&gt;Как развернуть свой легкий git сервер&lt;/h2&gt;
&lt;p&gt;Начнем с того, что самый простой способ - это создать &lt;code&gt;git --bare init&lt;/code&gt; репозиторий на вашем сервере и написать обычные скрипты для выполнения автоматических задач. Собственно этот блог собирался скриптом который запускался в cron, делал git pull репозитория с кодом блога, а потом собирал и публиковал результат.&lt;/p&gt;</description></item></channel></rss>