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