要解决Ansible的cron job不转义百分号%
的问题,你可以使用raw
模块在目标主机上直接运行cron命令。下面是一个示例代码:
- name: 创建cron job
hosts: your_target_host
tasks:
- name: 运行cron命令
raw: "echo '*/5 * * * * /usr/bin/command_with_%' > /etc/cron.d/your_cron_job"
在上面的示例中,使用了raw
模块来运行原始的cron命令,而不是使用Ansible的cron模块。这样可以避免Ansible对百分号进行转义。
这里的your_target_host
是你要在其上创建cron job的目标主机的名称或IP地址。your_cron_job
是要创建的cron job的名称,可以根据你的需求进行修改。
在raw
模块的命令参数中,使用单引号将整个cron命令括起来,以防止Ansible对其中的特殊字符进行解析或转义。在这个示例中,/usr/bin/command_with_%
是你要在cron job中运行的命令,其中的%
不会被转义。
运行以上的Ansible playbook,将会在目标主机上创建一个名为your_cron_job
的cron job,该cron job将在每个小时的每5分钟执行一次/usr/bin/command_with_%
命令。