小编Mig*_*tiz的帖子

无法在 Ansible 中使用 deb 模块卸载软件包

今天我在使用 ansible 并尝试卸载 debian 软件包时遇到问题。该包不是来自存储库,而是直接来自 .deb 文件,因此,在 Ansible 中我定义了安装任务:

- name: install nomachine
  apt:
    deb: /root/{{ nomachine_package }}
Run Code Online (Sandbox Code Playgroud)

这实际上有效,软件包被安装在 SO 中

但是,当需要删除它时:

- name: uninstall nomachine
  apt:
    deb: nomachine-enterprise-terminal-server
    state: absent
Run Code Online (Sandbox Code Playgroud)

惊恐的事件:

fatal: [SERVER]: FAILED! => {"changed": false, "failed": true, "msg": "deb only supports state=present"}
Run Code Online (Sandbox Code Playgroud)

我不是开发人员,但看了一下apt.py,卸载过程似乎仅适用于通过存储库安装的软件包?(它似乎针对 apt 的缓存进行验证)。

因此,作为此卸载过程的解决方法,我正在执行以下操作:

- name: uninstall nomachine
  shell: dpkg -r nomachine-enterprise-terminal-server
Run Code Online (Sandbox Code Playgroud)

我正在使用 ansible 2.3.0.0

也许我没有正确使用该工具或者该功能不可用。

感谢您对此提供的任何帮助。

H。

编辑:我认为我做得很好,因为遵循ansible 的示例

- name: Remove "foo" package
  apt:
    name: foo
    state: absent
Run Code Online (Sandbox Code Playgroud)

对于那些想知道为什么没有定义“-name”的人来说,这是因为该任务是一个处理程序。

package uninstallation deb ansible

3
推荐指数
1
解决办法
3834
查看次数

1
推荐指数
1
解决办法
1万
查看次数

Bash 脚本在执行测试之前检查 HTTP 状态

您好,我尝试仅在应用程序启动并运行时执行特定测试(我正在使用 docker),我尝试在 bash 脚本的帮助下实现这一目标。我期望的是我需要运行一个循环,直到我从应用程序收到 200 状态,一旦我收到 200 脚本应该继续并执行测试。我正在尝试 bash 脚本,如下所示

#!/bin/bash
urlstatus=0
until [ $urlstatus -ne 200 ]; do
urlstatus=$(curl -o /dev/null --silent --head --write-out '%{http_code}' "http://localhost:8000/animals")
echo $urlstatus
done
Run Code Online (Sandbox Code Playgroud)

如果应用程序已启动并正在运行,则执行测试

请让我知道脚本中缺少什么。

谢谢

bash shell

0
推荐指数
1
解决办法
2701
查看次数

标签 统计

ansible ×1

bash ×1

deb ×1

package ×1

python-3.4 ×1

python-jira ×1

shell ×1

uninstallation ×1