我使用ansible playbook来安装git:
---
- hosts: "www"
tasks:
- name: Update apt repo
apt: update_cache=yes
- name: Install dependencies
apt: name={{item}} state=installed
with_items:
- git
我检查了已安装的版本:
$ git --version
git version 1.9.1
但是将这些添加到ansible剧本中:
apt: name=git=1.9.1 state=installed
并重新运行导致以下错误:
致命:[46.101.94.110]:失败了! => {“cache_update_time”:0,“cache_updated”:false,“changed”:false,“failed”:true,“msg”:“'/ usr / bin / apt-get -y -o \”Dpkg :: Options: := - force-confdef \“ - o \”Dpkg :: Options :: = - force-confold \“install'git = 1.9.1''失败:E:版本'1.9.1'代表'git'找不到\ n“,”stderr“:”E:未找到'git'的版本'1.9.1'\ n“,”stdout“:”读取包列表...... \ n构建依赖关系树...... \ n读取状态信息...... \ n“,”stdout_lines“:[”读取包列表......“,”构建依赖关系树......“,”读取状态信息......“}
答案 0 :(得分:16)
具有该特定版本的Git包如下:
git=1:1.9.1-1ubuntu0.2
你的任务应该是:
apt: name=git=1:1.9.1-1ubuntu0.2 state=installed
此致
答案 1 :(得分:2)
您不需要两项任务来更新缓存和安装。你的剧本应该是这样的:
---
- hosts: "www"
tasks:
- name: Install dependencies
apt: name={{item}} state=installed update_cache=yes
with_items:
- git=1:1.9.1-1ubuntu0.2
请注意Ansible支持通配符,因此您不一定需要完整版本字符串