Memory

Ansible 拋出“錯誤!發現一名工人處於死亡狀態”錯誤

  • March 17, 2017

當我執行一個簡單地將目錄從一個地方復製到另一個地方的劇本時,ansible 拋出

錯誤!一名工人被發現處於死亡狀態

錯誤。經過一番Google搜尋,看起來這是由 oom-killer 殺死 ansible 程序引起的(但我不確定是否是這種情況)。我的記憶是:

             total        used        free      shared  buff/cache   available
Mem:            991         372         448           1         170         467
Swap:           511         365         146

我不知道如何解決它。我應該提一下,當我第一次執行劇本時,我只有 RAM,因為記憶體不足而無法執行。之後,我添加了交換。不確定它是否相關,但請注意它是交換文件,而不是單獨的分區。

我在執行時觀察了記憶體,我發現一旦執行該任務,空閒交換就會很快下降。當它達到 0 時拋出錯誤消息。


我正在執行以下劇本。

---
- hosts: localhost
 become: true
 become_method: sudo
 become_user: root

 vars:
   portals:
     - mysite
   contentPath: "/var/www/"
   backupPath: "/home/dataFiles/backups/"

 tasks:

   - name: backup content
     copy:
       src: "{{ contentPath }}/{{ item }}"
       dest: "{{backupPath}}/{{ item }}/{{ ansible_date_time.date }}/"
     with_items:
       - "{{ portals }}"
...

我上面給出的錯誤是我從ansible中得到的唯一資訊。即使冗長地執行劇本也不會為此提供任何額外的東西。

copy_module文件中有一條註釋:

“複製”模組遞歸複製工具不能擴展到大量(>數百)文件。對於替代方案,請參閱同步模組,它是 rsync 的包裝器。

假設這是這種情況,應該考慮使用同步模組。

引用自:https://serverfault.com/questions/838643