我如何在 CoreOS 上对 systemd 单元使用“when”或“if”条件语句?
例如:我只想在变量设置为 True 时挂载目录(比如 A == "True"
)
就像:
- name: var-lib-docker.mount
contents: |
[Unit]
Description=Mount ephemeral to /var/lib/docker
[Mount]
if (A == "true") # This part I'm not sure where and how to put.
What=/dev/xvd1
Where=/var/lib/docker
Type=ext4
最佳答案
仅仅创建一个单元并没有描述该单元何时以及在什么情况下被激活;激活是你在这里关心的——所以一个解决方案可以很简单,只要让其他代码告诉 systemd 启动手头的挂载单元,如果你想让它启动。
但是,如果您希望该单元在启动时执行自己的条件评估,请参阅 man systemd.unit
以各种旗帜为目的。例如:
[Unit]
ConditionPathExists=/etc/mount-docker
将导致文件系统仅在 /etc/mount-docker
存在时才被挂载。同样,您可以根据在该层运行的逻辑来决定是否从 Ansible 为挂载点启用单元。
关于linux - 如何在 Systemd Unit 配置中使用 'when' 条件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42655361/