使用ansible安装特定的apt版本

时间:2016-03-22 09:17:36

标签: ansible

我使用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“:[”读取包列表......“,”构建依赖关系树......“,”读取状态信息......“}

2 个答案:

答案 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支持通配符,因此您不一定需要完整版本字符串