20
votes

I used an ansible playbook to install git:

---
- hosts: "www"
  tasks:
  - name: Update apt repo
    apt: update_cache=yes
  - name: Install dependencies
    apt: name={{item}} state=installed
    with_items:
      - git

I checked the installed versions:

$ git --version
git version 1.9.1

But adding these to the ansible playbook: apt: name=git=1.9.1 state=installed

and rerunning results in the following error:

fatal: [46.101.94.110]: FAILED! => {"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'' failed: E: Version '1.9.1' for 'git' was not found\n", "stderr": "E: Version '1.9.1' for 'git' was not found\n", "stdout": "Reading package lists...\nBuilding dependency tree...\nReading state information...\n", "stdout_lines": ["Reading package lists...", "Building dependency tree...", "Reading state information..."]}

2

2 Answers

28
votes

Git package with that specific version is as follows:

git=1:1.9.1-1ubuntu0.2

Your task should be:

apt: name=git=1:1.9.1-1ubuntu0.2 state=installed

Regards

7
votes

You don't need two tasks for updating cache and installing. Your playbook should look like:

---
- hosts: "www"
  tasks:
  - name: Install dependencies
    apt: name={{item}} state=installed update_cache=yes
    with_items:
      - git=1:1.9.1-1ubuntu0.2

note that Ansible supports wildcarding so you don't necessarily need the full version string