从 systemd 运行 ansible_pull:git/ssh 凭据?

从 systemd 运行 ansible_pull:git/ssh 凭据?

我目前有一台家用服务器(旧笔记本电脑),我正在使用 Ansible 以经典的推送方式进行配置,即从我的个人电脑向它推送。这可行,但要求我在每次重启后都进行推送。

我想将其更改为拉取配置,其中服务器有一个 systemd 计时器/服务对,每 5 分钟从 git 运行一次 Ansible pull,并应用更改(如果有),并且在启动时无条件拉取。

我尝试从中提取的 repo 是私有的,需要 git 凭据或 SSH 密钥。 如果我在非用户模式下从 systemd 运行 Ansible,那么如何为 Ansible 设置 ssh 密钥(或 https 身份验证的用户/密码)以供从 Git 提取时使用?

答案1

事实证明,ansible-pull它有一个我在文档中没有看到的参数:

--private-key <PRIVATE_KEY_FILE>, --key-file <PRIVATE_KEY_FILE> 使用此文件来验证连接

(从ansible-pull文档

感谢 irc.libera.chat 上 #ansible 上的 Xaroth!

答案2

参数似乎在此处描述:https://gist.github.com/turboBasic/d6c6ffcb5d184b0c255b1054833b3c0f

我不知道为什么文档中没有用示例来描述这种常见的请求。浪费了多少用户时间……

#!/bin/sh

sudo ansible-pull --url ssh://[email protected]/you/your-ansible-repo.git \
        --key-file ~/.ssh/id_rsa --accept-host-key \
        --checkout develop \
        packages.yml

相关内容