Your playbook gave me an error too:

fatal: [localhost]: FAILED! => {"cache_update_time": 0, "cache_updated": 
false, "changed": false, "failed": true, "msg": "'/usr/bin/apt-get -y -o 
\"Dpkg::Options::=--force-downgrade\"   install 'haproxy=1.4.24-2'' failed: 
E: There are problems and -y was used without --force-yes\n", "stderr": "E: 
There are problems and -y was used without --force-yes\n", "stdout": "Reading 
package lists...\nBuilding dependency tree...\nReading state 
information...\nSuggested packages:\n  vim-haproxy\nThe following packages 
will be DOWNGRADED:\n  haproxy\n0 upgraded, 0 newly installed, 1 
downgraded, 0 to remove and 0 not upgraded.\nNeed to get 453 kB of 
archives.\nAfter this operation, 403 kB disk space will be freed.\n", 
"stdout_lines": ["Reading package lists...", "Building dependency tree...", 
"Reading 
state information...", "Suggested packages:", "  vim-haproxy", "The 
following packages will be DOWNGRADED:", "  haproxy", "0 upgraded, 0 newly 
installed, 1 downgraded, 0 to remove and 0 not upgraded.", "Need to get 453 
kB of archives.", "After this operation, 403 kB disk space will be freed."]}

But I added parameter "force: yes" and package downgraded successfully.
Resulted playbook:

---
- hosts: all
  tasks:
    - name: install haproxy
      apt:
        name: haproxy=1.4.24-2
        force: yes
        dpkg_options: force-downgrade
      sudo: yes

I used Ansible v. 2.0.1.0 on Ubuntu 14.04 amd64. I tested with this command:
ansible-playbook -s --ask-sudo-pass -i inventory/testing/localhost 
--limit=localhost 
--connection=local downgrading.yml

On Wednesday, March 2, 2016 at 9:27:24 PM UTC+5, [email protected] 
wrote:
>
> Hello,
>
> in my ansible playbook I want to ensure a specific version of a package is 
> installed, even if that would mean downgrading it.  I know that I can 
> specify version together with package name, like this: haproxy=1.4.24-2.  
> However, this is not enough in case of downgrading: this playbook
>
> - hosts: all
>   tasks:
>     - name: install haproxy
>       apt:
>         name: haproxy=1.4.24-2
>       sudo: yes
>
> will fail if a newer version of haproxy is installed.  I know that I can 
> use "force" attribute, but that would also disable some useful security 
> checks - for example, with force=yes Ansible would install a package even 
> if it couldn't be authenticated.  Is there a better way?
>
> I thought that "dpkg_options" may help me, but this playbook also fails on 
> downgrade:
>
> - hosts: all
>   tasks:
>     - name: install haproxy
>       apt:
>         name: haproxy=1.4.24-2
>         dpkg_options: force-downgrade
>       sudo: yes
>
> Is this a bug?
> Maybe I should approach this problem in an altogether different way?
>
> best,
> Jan
>

-- 
You received this message because you are subscribed to the Google Groups 
"Ansible Project" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To post to this group, send email to [email protected].
To view this discussion on the web visit 
https://groups.google.com/d/msgid/ansible-project/9bdc8673-9d80-4cb8-8564-8f2c1becada5%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to