gpt4 book ai didi

linux - 使用 Ansible 在特定时间安排命令

转载 作者:塔克拉玛干 更新时间:2023-11-03 00:42:00 24 4
gpt4 key购买 nike

所以我现在通过手动登录和使用每周升级我的服务器有一段时间了

sudo at 2:30

此命令提示我要在夜间 2:30 执行的命令。命令是:

apt-get update
apt-get dist-upgrade -y -qq
reboot

如何将其移动到 Ansible 剧本中?我已经查看了他们的“at”模块,但它只允许我安排相对于当前时间(现在+时间)而不是特定时间的命令。 ( source )

另一种选择是只在剧本中创建一个原始任务,但我将如何处理 at 命令是交互式的这一事实?

附言我想手动完成此过程而不是将其委派给 cronjob 的原因是因为我想事先查看将升级的包及其更改日志。这成了我周五的例行公事。

最佳答案

有很多方法可以实现。

这里有几个:

  1. 制作一个包含要执行的命令的脚本。
    使用copy模块上传。
    使用command模块执行at -f myscript 2:30
    这会将您的命令添加到目标主机的队列中。

  2. 使用 apt 模块代替您的 shell 命令制作 Ansible playbook。
    在单个服务器上测试它。
    使用 at 2:30 在本地计算机(Ansible 控制主机)上安排它,
    提供 ansible-playbook -i allservers upgrade-servers.yml 作为工作。
    这将在 2:30 从您的本地计算机在所有服务器上执行您的剧本。

  3. 修改at模块支持与 count/unit 相同的 exact_time 参数。
    将其保存为 ./library/at.py 靠近您的剧本。
    应用它在远程服务器上准确地安排作业。

关于linux - 使用 Ansible 在特定时间安排命令,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41760349/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com