如何通过Ansible shell运行apt更新和升级
我尝试使用Ansible运行以下两个命令:如何通过Ansible shell运行apt更新和升级,ansible,ansible-playbook,Ansible,Ansible Playbook,我尝试使用Ansible运行以下两个命令: sudo-apt-get-update&&sudo-apt-get-upgrade-y 我知道使用ansible,您可以使用: ansible all-mshell-u user-K-a“正常运行时间” 运行下面的命令可以吗?或者我必须使用某种raw命令吗 ansible all-mshell-u user-K-a“sudo-apt-get-update&&sudo-apt-get-upgrade-y”我不建议为此使用shell,因为ansible的a
sudo-apt-get-update&&sudo-apt-get-upgrade-y
我知道使用ansible,您可以使用:
ansible all-mshell-u user-K-a“正常运行时间”
运行下面的命令可以吗?或者我必须使用某种raw
命令吗
ansible all-mshell-u user-K-a“sudo-apt-get-update&&sudo-apt-get-upgrade-y”
我不建议为此使用shell,因为ansible的apt模块正是为此而设计的。我已经在下面详细介绍了如何使用apt
在剧本中,您可以像这样进行更新和升级:
- name: Update and upgrade apt packages
become: true
apt:
upgrade: yes
update_cache: yes
cache_valid_time: 86400 #One day
cache\u valid\u time
值可以忽略。其目的是:
如果apt缓存早于缓存有效时间,则更新该缓存。这
选项以秒为单位设置
因此,如果您不想在缓存最近才更新时更新缓存,那么最好将其包括在内
要作为特别命令执行此操作,可以运行:
$ansible all-m apt-a“升级=是更新\u缓存=是缓存\u有效\u时间=86400”-成为
详细描述了特别命令
请注意,我使用的是
--been
和been:true
。这是通过Ansible进行典型权限升级的示例。您使用-u user
和-K
(请求权限提升密码)。使用任何适合您的格式,这只是为了向您展示最常见的格式。使用Ubuntu 16.04,我做了一些调整:
- name: Update and upgrade apt packages
become: true
apt:
update_cache: yes
upgrade: 'yes'
我只是将升级yes
放在撇号之间,以避免出现不令人讨厌的警告:
[WARNING]: The value True (type bool) in a string field was converted to u'True' (type string). If this does
not look like what you expect, quote the entire value to ensure it does not change.
我只想对原始答案发表评论,但没有得到允许,目前
参考:
只是想在答案上添加一点味道。这是清单文件中指定的所有主机中的可执行剧本
- hosts: all
become: yes
tasks:
- name: Update and upgrade apt packages
apt:
upgrade: yes
update_cache: yes
cache_valid_time: 86400
你试过了吗?与内置的
apt
模块相比,您为什么更喜欢此模块?我是ansible的新手,只是想了解一下,我会优先选择apt模块,但不确定它是否也会升级?谢谢。如果在公司代理之后使用environment:http\u proxy:“http://{{proxy\u user}}:{{vault\u proxy\u password}}}}}{{proxy\u host}}:{{{proxy\u port}”https\u proxy:“http://{proxy\u user}:{vault\u proxy\u password}}}}}}{{proxy\u host}}:{{proxy\u port}}无代理:{
这与OP的问题有什么关系?它看起来更像是基于另一个答案的切线答案。另外,警告和错误不一样。你读过我写的吗?我只想对最初的答案发表评论,但没有得到允许。谢谢,我把“错误”改为“警告”。