nad*_*rmx 43 ansible ansible-playbook
我正在尝试使用Ansible来运行以下两个命令:
sudo apt-get update && sudo apt-get upgrade -y
我知道你可以使用ansible:
ansible all -m shell -u user -K -a "uptime"
会运行以下命令吗?或者我必须使用某种raw命令
ansible all -m shell -u user -K -a "sudo apt-get update && sudo apt-get upgrade -y"
Tom*_*eld 97
我不建议使用shell,因为Ansible有专门为此目的设计的apt模块.我在下面详细使用了apt.
在剧本中,您可以像这样更新和升级:
- name: Update and upgrade apt packages
become: true
apt:
upgrade: yes
update_cache: yes
cache_valid_time: 86400 #One day
Run Code Online (Sandbox Code Playgroud)
该cache_valid_time值可以省略.其目的来自文档:
如果apt缓存早于cache_valid_time,则更新apt缓存.此选项在几秒钟内设置.
因此,如果您不想在最近刚更新时更新缓存,那么最好包括在内.
要以ad-hoc命令执行此操作,您可以运行:
--become
ad-hoc命令在此处详细描述
请注意,我正在使用become: true和-u user.这是通过Ansible进行典型权限提升的示例.您使用-K和cache_valid_time(请求权限提升密码).使用适用于您的任何一种,这只是为了向您展示最常见的形式.
ewa*_*lel 10
只是为了给答案增添一点味道。这是清单文件中指定的所有主机中的可执行剧本。
- hosts: all
become: true
tasks:
- name: Update and upgrade apt packages
apt:
upgrade: yes
update_cache: yes
cache_valid_time: 86400
Run Code Online (Sandbox Code Playgroud)
使用Ubuntu 16.04,我做了一些调整:
- name: Update and upgrade apt packages
become: true
apt:
update_cache: yes
upgrade: 'yes'
Run Code Online (Sandbox Code Playgroud)
我只是将升级放在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.
Run Code Online (Sandbox Code Playgroud)
2020年,我只想评论原来的答案,但当时没有足够的声誉......
参考: 字符串字段中的值 True(布尔类型)已转换为 u'True'(字符串类型)
| 归档时间: |
|
| 查看次数: |
60695 次 |
| 最近记录: |