首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用ansible进行Apt安装

使用ansible进行Apt安装
EN

Stack Overflow用户
提问于 2015-06-10 23:16:27
回答 3查看 2.9K关注 0票数 2

我使用ansible脚本在亚马逊EC2和一个流浪箱中设置我的环境(Ubuntu)。然后,我尝试在GermanVPS (Ubuntu Minimal)上设置相同的环境。使用Apt安装软件包似乎不起作用。

我跑步

代码语言:javascript
复制
ansible-playbook -i ansible/live -u priidu ansible/caselaw.yml -s -vvvv --start-at-task="install"

这会给出以下错误。

代码语言:javascript
复制
failed: [master] => (item=postgresql-9.4,postgresql-contrib-9.4,postgresql-server-dev-9.4,python-psycopg2) => {"failed": true, "item": "postgresql-9.4,postgresql-contrib-9.4,postgresql-server-dev-9.4,python-psycopg2"}
stderr: E: dpkg was interrupted, you must manually run 'sudo dpkg --configure -a' to correct the problem. 

msg: '/usr/bin/apt-get -y -o "Dpkg::Options::=--force-confdef" -o "Dpkg::Options::=--force-confold"   install 'postgresql-server-dev-9.4' 'python-psycopg2'' failed: E: dpkg was interrupted, you must manually run 'sudo dpkg --configure -a' to correct the problem. 


FATAL: all hosts have already failed -- aborting

然后我试一试

代码语言:javascript
复制
ansible-playbook -i ansible/live -u priidu ansible/caselaw.yml -s -vvvv --start-at-task="dpkg configure"

我得到了以下错误信息

代码语言:javascript
复制
failed: [master] => (item=postgresql-9.4,postgresql-contrib-9.4,postgresql-server-dev-9.4,python-psycopg2) => {"failed": true, "item": "postgresql-9.4,postgresql-contrib-9.4,postgresql-server-dev-9.4,python-psycopg2", "parsed": false}
BECOME-SUCCESS-grensagvuewehoylwpjytnkzpwwqgsre
Killed
OpenSSH_6.2p2, OSSLShim 0.9.8r 8 Dec 2011
debug1: Reading configuration data /Users/priidukull/.ssh/config
debug1: Reading configuration data /etc/ssh_config
debug1: /etc/ssh_config line 51: Applying options for *
debug1: auto-mux: Trying existing master
debug2: fd 3 setting O_NONBLOCK
debug2: mux_client_hello_exchange: master version 4
debug3: mux_client_forwards: request forwardings: 0 local, 0 remote
debug3: mux_client_request_session: entering
debug3: mux_client_request_alive: entering
debug3: mux_client_request_alive: done pid = 54431
debug3: mux_client_request_session: session request sent
debug1: mux_client_request_session: master session id: 2
debug3: mux_client_read_packet: read header failed: Broken pipe
debug2: Received exit status from master 0
Shared connection to <<hostname>> closed.


FATAL: all hosts have already failed -- aborting

那里发生了什么?我该如何开始解决这个难题?

编辑:我的攻略的相关部分

代码语言:javascript
复制
- name: dpkg configure
  shell: dpkg --configure -a

- name: install
  apt: name={{ item }} update_cache=yes
  with_items:
    - postgresql-9.4
    - postgresql-contrib-9.4
    - postgresql-server-dev-9.4
    - python-psycopg2

编辑2:添加了攻略命令。

编辑3:当我将RAM从64MB增加到512MB时,这个问题消失了。

EN

回答 3

Stack Overflow用户

发布于 2017-08-01 14:58:32

当我尝试通过ansible-playbook安装docker时,我遇到了这个问题。

我试着把内存从512Mb增加到1024Mb。但它并没有起作用。

然后我找到了如下解决方案:

删除/var/lib/dpkg/update中的所有文件,然后重试!!

无论如何,它对我来说是有效的!

票数 1
EN

Stack Overflow用户

发布于 2018-07-23 19:13:44

我添加了一些任务来消除Ubuntu 16.04的dpkg问题,它工作得很好

代码语言:javascript
复制
tasks:
- name: configure dpkg 1
  command: sudo rm /var/lib/apt/lists/lock
  become: true

- name: configure dpkg 2
  command: sudo rm /var/cache/apt/archives/lock
  become: true

- name: configure dpkg 3
  command: sudo rm /var/lib/dpkg/lock  
  become: true

- name: configure dpkg 4
  command: sudo dpkg --configure -a
  become: true

- name: Update and upgrade apt packages 
  become: true
  apt:
    upgrade: yes
    update_cache: yes
    cache_valid_time: 86400 #One day
票数 1
EN

Stack Overflow用户

发布于 2015-07-16 02:47:17

Ansible中有一个yum模块,可用于安装软件包。我被困了一段时间,因为我发现我必须安装其他依赖项,例如解压缩。但这对保持我的代码优雅和简单非常有用。

此链接提供模块的文档:

例如,要安装最新版本的Apache,请执行以下操作:

yum: name=httpd state=latest

票数 -4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/30760513

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档