这里我们尝试通过 Ansible playbook 在 Ubuntu 中启动自动更新软件包。
dpkg-重新配置-犁无人值守升级
当我们手动运行此命令时,它会显示以下提示,并开始更新软件包:-
Configuring unattended-upgrades
Run Code Online (Sandbox Code Playgroud)
频繁应用更新是确保
系统安全的重要组成部分。默认情况下,需要使用包管理工具手动应用更新
。
或者,您可以选择让该系统自动下载并安装重要更新。
自动下载并安装稳定更新?
<Yes> <No>
Run Code Online (Sandbox Code Playgroud)
但是使用 Ansible 运行此命令时会停在这一步,我们如何在使用 Ansible playbook 运行此命令时跳过此提示。
Playbook 代码如下:-
用于更新 Ubuntu 软件包的 ansible-code
我正在使用 ansible 来监控我的家庭计算网络,它由几台 Linux 机器(x64 和树莓派)组成。如何避免来自每个 Raspberry 客户端的警告?
[警告]:主机 raspi6.local 上的平台 linux 正在使用在 /usr/bin/python 中发现的 Python 解释器,但未来安装另一个 Python 解释器可能会改变这一点。有关 更多信息,请参阅 https://docs.ansible.com/ansible/2.9/reference_appendices/interpreter_discovery.html。raspi6.local | 改变 | rc=0 >> 16:11:44 up 21:02, 3 个用户,平均负载:4,04, 4,01, 4,00
我正在尝试用于在库存文件中sed查找和加密ansible_password字段并使用ansible-vault命令对其进行加密。但是ansible-command没有抛出sed错误,因为简单的回声工作正常。
sed -n "s/\( *\)\(ansible_password\: *\)\"\(.*\)\"/$(echo \\3)/p" sample.yml
Run Code Online (Sandbox Code Playgroud)
输出没有双引号的属性值。
该ansible-vault命令:
sed -n "s/\( *\)\(ansible_password\: *\)\"\(.*\)\"/$(ansible-vault encrypt_string --vault-password-file ~/password.txt --name 'ansible_password' '\\3')/p" sample.yml
Run Code Online (Sandbox Code Playgroud)
正在抛出错误消息: sed: -e expression #1, char 67: unterminated ``s' command
这是发生替换的行:
ansible_password: "somepassword"
Run Code Online (Sandbox Code Playgroud) 如果我使用文本重定向器>并且>>它们输出到一个文本文件,这对于长期日志记录来说很好,但是,我还需要它们以传统的标准输入、标准输出格式出现在屏幕上,因为我通过Ansible 中的 shell (bash) 函数。
使用>>会让 Ansible 相信它是一次成功的操作,即使它失败了,这是不可取的。对于如何实现鱼与熊掌兼得的场景有什么帮助吗?