2014-09-22 166 views
1

我正在使用Ansible,并且想要在main.yml任务中定义软件包的版本。我试图安装PostgreSQL-9.1版本:如何在Ansible中定义要安装的软件包版本

--- 
- name: Copy source list 
    copy: src=sources.list dest=/etc/apt/sources.list 

- name: Update apt 
    shell: apt-get update 

- name: Install the version 9.1 of postgresql 
    sudo: True 
    apt: name=postgresql=9.1 state=present 

- name: Ensure postgresql is <<Started>> 
    sudo: yes 
    sudo_user: postgres 
    service: name=postgresql state=started 

但我得到这个错误:

PLAY [database] *************************************************************** 

GATHERING FACTS *************************************************************** 
ok: [slave1] 

TASK: [postgresql | Copy source list] ***************************************** 
ok: [slave1] 

TASK: [postgresql | Update apt] *********************************************** 
changed: [slave1] 

TASK: [postgresql | Install the version 9.1 of postgresql] ******************** 
failed: [slave1] => {"failed": true} 
stderr: E: Version '9.1' for 'postgresql' was not found 

stdout: Reading package lists... 
Building dependency tree... 
Reading state information... 

msg: 'apt-get install 'postgresql=9.1' ' failed: E: Version '9.1' for 'postgresql' was not found 


FATAL: all hosts have already failed -- aborting 

PLAY RECAP ******************************************************************** 
      to retry, use: --limit @/home/robe/site.retry 

slave1      : ok=3 changed=1 unreachable=0 failed=1 

然后,我如何申报软件包版本安装?

回答

0

您正在正确使用apt模块来指定版本。这在命令行中也会失败,apt-get install postgresql-9.1。您还没有表现出什么在你的sources.list,但他是一个办法做到这一点:

- apt_key: id=ACCC4CF8 url=https://www.postgresql.org/media/keys/ACCC4CF8.asc state=present 
- apt_repository: repo='deb http://apt.postgresql.org/pub/repos/apt/ trusty-pgdg main' update_cache=yes state=present 
- name: Install the version 9.1 of postgresql 
    apt: name=postgresql=9.1 state=present 
+0

给予我:''失败:[默认] => {“CMD”:“易键添加 - ”,“失败“:真,”rc“:2}'',任何想法,为什么这是?,谢谢 – 2015-05-25 18:33:31

+0

@AlfonsoPérez你使用这些确切的四行?如果没有,发布你的任务。 – tedder42 2015-05-25 22:53:17

+0

是的,那个特定的问题已经解决了,加入'sudo:yes',所以现在我有:' - apt_key:id = ACCC4CF8 url = https://www.postgresql.org/media/keys/ACCC4CF8.asc state = present 须藤:是 - apt_repository:回购= 'DEB http://apt.postgresql.org/pub/repos/apt/可信任-pgdg主' update_cache =是状态=本 须藤:是 - 名称:安装版本9.1的postgresql sudo:是 apt:name = postgresql = 9.1 state = present' 但得到:'msg:'/ usr/bin/apt-get -y -o“Dpkg :: Options :: = -force-confdef“-o”Dpkg :: Options :: [...] 1“失败:E:找不到'postgresql'的版本'9.1' – 2015-05-25 22:57:48

相关问题