- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我正在尝试使用 python 脚本执行以下剧本。
playbook = dict(
name = "Enable Site",
hosts = [host],
gather_facts = 'no',
tasks = [
dict(action=dict(
module='find', args=dict(paths="/etc/apache2/sites-enabled")), register='files_found'),
dict(action=dict(
module='shell', args="cd /etc/apache2/sites-enabled && a2dissite *"), register='shell_out', when='files_found.matched > 0'),
dict(action=dict(module='shell', args="a2ensite " + site_name), register='shell_out'),
dict(action=dict(module='service', args="name='apache2' state='reloaded'"), register='shell_out'),
]
)
此剧本主要检查是否启用了任何 apache 站点,如果是,则通过从/etc/apache2/sites-enabled 中删除所有文件来禁用它们。
第二个任务应该在目录 /etc/apache2/sites-enabled
为空时执行。但“何时”条件始终被评估为真。即使我写 when="False"
。还尝试了 when="eval(False)"
最佳答案
如果我将您的 playbook
字典转换为常规 Ansible playbook,如下所示:
- name: Enable Site
hosts:
- localhost
gather_facts: no
tasks:
- action:
module: find
args:
paths: /etc/apache2/sites-enabled
register: files_found
- action:
module: shell
args: cd /etc/apache2/sites-enabled && a2dissite *
register: shell_out
when: files_found.matched > 0
- action:
module: shell
args: a2ensite 100-mysite.conf
register: shell_out
- action:
module: service
args: name='apache2' state='reloaded'
register: shell_out
它似乎按预期运行。也就是说,如果我从一个空的 /etc/apache2/sites-enabled
目录开始,我会看到:
PLAY [Enable Site] *******************************************************************
TASK [find] **************************************************************************
ok: [localhost]
TASK [shell] *************************************************************************
skipping: [localhost]
TASK [shell] *************************************************************************
changed: [localhost]
您可以看到它正在跳过第二个 shell 任务。但是,请考虑一下您的剧本的用途:
这意味着每次您运行此剧本时,它都会清空/etc/apache2/sites-enabled
,然后重新启用您的site_name
变量。
关于python - 使用 Python 字典编写 Ansible playbook,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59910992/
我有一个包含 3 个剧本的 ansible 剧本 YAML 文件。 第一个播放和第三个播放在本地主机上运行,但第二个播放在远程计算机上运行,如下例所示: - name: Play1 hos
我有一本蓝绿色的部署手册。它依赖于某些变量来确定应用底层角色的主机。以下是示例角色之一: - name: Remove current server from load balancer host
关闭。这个问题是off-topic .它目前不接受答案。 想改善这个问题吗? Update the question所以它是 on-topic对于堆栈溢出。 9年前关闭。 Improve this q
我正在尝试使用 USB 电缆和终端线路命令 blackberry-deploy -installApp... 我收到一个错误,指的是应用程序和调试 token 之间的作者不匹配 result::fai
我正在尝试使用 ansible-pull 方法在 playbook 的运行时运行带有额外变量的 playbook。 这是我需要如何使用 vars 运行我的剧本。 ansible-playbook de
我在我看不到的远程机器(客户端)上使用 ansible-pull 运行一个 ansible 脚本。 我想确保: ansible playbook 执行成功然后应该发送摘要 ansible playbo
在我的剧本中,我有一个条件包含语句来包含一个任务: tasks: # Install Java if not present - name: Execute Java shel
我一直在尝试按照 BlackBerry 文档在命令行上签署 WebWorks SDK 应用程序并上传到 App World。 这是一个chart showing the high level pict
我们使用 ansible-playbook 来创建/更新 cloudformation 堆栈。如果我们使用 create_changeset=yes 运行 playbook,那么 ansible 会创
有没有人提出使用 eclipse 插件和命令行脚本在运行 Playbook OS 2.0 的 Blackberry Playbook 上快速调试和运行 android 应用程序的策略? 最佳答案 当然
我正在使用以下剧本来检查从目标主机 192.168.153.31 到 8.8.8.8 的连接 --- - hosts: 192.168.153.31 gather_facts: no task
我是 ansible 的新手。我想用 ansible 简化我的网络任务。我想做的一件事是登录到所有网络 (Cisco) 交换机并显示带有包含某个字符串的描述的接口(interface)。我打算使用 c
如果系统安装了 Oracle Linux,我如何检查已安装的操作系统并继续下载文件。 这就是我要做的 - hosts: all become: true gather_facts: true
我不明白或看到我做错了什么,但似乎我无法让我的 ansible playbook 在 ubuntu 服务器上启动 rng-tools 服务。 environment: remote serve
我想一个接一个地在 4 个服务器上运行一些 ansible 任务,即以串行方式。但中间会有停顿。所以,我最后在剧本中添加了暂停,但我希望在最后一个服务器上跳过它。否则它会无缘无故地等待。请让我知道如何
我正在尝试运行 ansible-plabook,但它在设置时挂起。我的剧本做了很多工作,比如调用不同的角色和模块,它还收集事实。它以前工作正常,但现在我不确定出了什么问题,感谢任何帮助 主机操作系统为
这是我目前正在使用的 Ansible playbook 的一个示例: --- - hosts: all collections: - mynamespace.my_collection
我需要知道是否可以从目标机器调用/执行 ansible 剧本。我想我看到供应商这样做或至少类似的事情。他们下载了一个脚本,它确实运行了剧本。 如果可能的话,如何实现? 我的目标是在 aws 中将 an
我已在安全中心创建了一个 Playbook,并且可以通过转到安全警报并单击 Playbook 上的“运行”来手动触发该 Playbook。 现在,我希望每当出现新的安全警报时自动触发此 Playboo
已关闭。这个问题是 not reproducible or was caused by typos 。目前不接受答案。 这个问题是由拼写错误或无法再重现的问题引起的。虽然类似的问题可能是 on-top
我是一名优秀的程序员,十分优秀!