2016-06-29 10 views
1

私は、VagrantのUbuntu 14.04マシンをほとんど作成していません。Ubuntuのaptアップデートで実現不可能

  • aptの更新が
  • ドッカレポを追加ランダムホスト上で、これらのすべてのタスクはランダムに失敗しjava8レポに

を追加しますように私は、いくつかのタスクでaptを使用して、いくつかのansible 2.1脚本を持っています。

- name: Add Oracle Java Repository 
    apt_repository: 
    repo: 'ppa:webupd8team/java' 
    update_cache: yes 
    state: present 
# register: result 
# until: result|success 
# retries: 10 
    tags: [java] 

- name: Accept Java 8 License 
    debconf: name='oracle-java8-installer' question='shared/accepted-oracle-license-v1-1' value='true' vtype='select' 
    tags: [java] 

- name: Install Oracle Java 8 
    apt: name={{item}} state=latest 
    with_items: 
    - oracle-java8-installer 
    - ca-certificates 
    - oracle-java8-set-default 
    tags: [java] 

非常にシンプル、まだapt_repositoryはランダムに多くのことを失敗します。たとえば、ここでは簡単なjava8インストール役割があります。私はそれを動作させるために再試行ハックを使用しなければならなかった。問題はhereと報告されていますが、これは単なる1つです。

エラーは次のようになります。

fatal: [xx.xx.xxx.x]: FAILED! => {"changed": false, "failed": true, "module_stderr": "", 
"module_stdout": "Traceback (most recent call last):\r\n 
File \"/home/ubuntu/.ansible/tmp/ansible-tmp-1454536847.17-86172912102079/apt\", line 2630, in \r\n 
main()\r\n 
File \"/home/ubuntu/.ansible/tmp/ansible-tmp-1454536847.17-86172912102079/apt\", line 603, in main\r\n 
cache = apt.Cache()\r\n 
File \"/usr/lib/python2.7/dist-packages/apt/cache.py\", line 107, in init\r\n 
self.open(progress)\r\n 
File \"/usr/lib/python2.7/dist-packages/apt/cache.py\", line 151, in open\r\n 
self._cache = apt_pkg.Cache(progress)\r\n 
SystemError: E:Encountered a section with no Package: header,\ 
E:Problem with MergeList /var/lib/apt/lists/us-west-\ 
2.ec2.archive.ubuntu.com_ubuntu_dists_trusty-updates_universe_i18n_Translation-en\ 
, E:The package lists or status file could not be parsed or opened.\r\n 
", "msg": "MODULE FAILURE", "parsed": false} 

私は何かが足りないのですか?あなたはプロダクションのために何をしていますか?

+0

どのように失敗しますか?あなたはどんなエラーを出していますか?失敗のパターンはありますか? – ydaetskcoR

+0

@ydaetskcoRリンクされた問題をご覧ください。私はここにもエラーを入れます – igr

答えて

1

これはAnipalの問題ではありませんが、Anipalは確かに問題を解決するものではありません。

これは、aptで問題になることがあります。ガベージファイル(バイナリ形式のバイナリ)をパッケージリストとして保存することがあります。これはテキストでなければなりません。 There's been a bug open forever about itおよびhere's a fix from AskUbuntu。この場合

、ファイルを見て、それがバイナリであることを確認することは、それを削除します。apt-get updateが実行されたときに

head /var/lib/apt/lists/us-west-2.ec2.archive.ubuntu.com_ubuntu_dists_trusty-updates_universe_i18n_Translation-en 
rm /var/lib/apt/lists/us-west-2.ec2.archive.ubuntu.com_ubuntu_dists_trusty-updates_universe_i18n_Translation-en 

aptはそれを再作成します。

これはどのようにAnsibleで解決しますか? There are some workarounds in the ansible issue you foundの場合、最終的にaptモジュールにパッチを適用して、この問題を回避する必要があります。障害の検出、ファイルの削除、更新の再実行。しかし、Anecessにプルリクエストを送信すると、約1年間はリリースされません。私はそれがまれにしか起こらないことがわかったので、私はそれを手動で修正しました。

+0

Thnax。私にとってこれはほとんど毎回update apt :( – igr

関連する問題