我正在使用带有ansible playbook的vagrant在ubuntu映像上自动安装一堆程序.一个程序无法在vagrant VM上安装.在Vagrant
我的文件中
config.vm.provision :ansible do |ansible|
ansible.verbose = "vvv"
ansible.playbook = "provisioning/playbook.yml"
end
Run Code Online (Sandbox Code Playgroud)
但是详细输出不包括apt-get
输出.我的playbook.yml看起来像
---
- hosts: all
sudo: true
tasks:
- name: get vi
apt: state=latest name=vim
Run Code Online (Sandbox Code Playgroud)
如何apt-get install
在VM上查看单个(或所有)的控制台输出,因为ansible会以格式输出每个安装
TASK: [Install vim] ***********************************************************
failed: [default] => {"failed": true}
...
Run Code Online (Sandbox Code Playgroud)
您可以将 apt 模块执行的输出注册到变量,然后打印它。
- hosts: localhost
sudo: true
tasks:
- name: get vi
apt: state=latest name=vim
register: aptout
# show the content of aptout var
- debug: var=aptout
Run Code Online (Sandbox Code Playgroud)
stdout
的apt
下面是如何再现stdout
的apt
...
---
- name: 'apt: update & upgrade'
apt:
update_cache: yes
cache_valid_time: 3600
upgrade: safe
register: apt
- debug: msg={{ apt.stdout.split('\n')[:-1] }}
Run Code Online (Sandbox Code Playgroud)
…有了不错的换行符,这要归功于.split('\n')
,并且省略了最后一个空字符串[:-1]
,所有这些当然都是Python字符串操作。
"msg": [
"Reading package lists...",
"Building dependency tree...",
"Reading state information...",
"Reading extended state information...",
"Initializing package states...",
"Building tag database...",
"No packages will be installed, upgraded, or removed.",
"0 packages upgraded, 0 newly installed, 0 to remove and 0 not upgraded.",
"Need to get 0 B of archives. After unpacking 0 B will be used.",
"Reading package lists...",
"Building dependency tree...",
"Reading state information...",
"Reading extended state information...",
"Initializing package states...",
"Building tag database..."
]
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
2699 次 |
最近记录: |