长时间运行的任务后可放弃root特权

时间:2019-12-22 13:37:24

标签: ansible

我正在写一个Ansible剧本来设置我的系统。这包括(通过package module安装应用程序-其中一些(例如texlive-full)需要花很长时间才能下载和安装。

任务如下:

- name: install packages
  package:
    name: '{{ item }}'
    state: present
  with_items: [firefox, gimp, inkscape, texlive-full, ..., steam]
  become: yes

我用ansible-playbook playbook.yml -K执行包含此任务的剧本。

当安装过程花费太长时间时,ansible不会保留其根特权(升级为become),因此下一个应用程序的安装失败。

如何让ansible保留特权?

1 个答案:

答案 0 :(得分:3)

通常,您不应循环运行df %>% fill(V1) %>% group_by(rleid = with(rle(V1), rep(seq_along(lengths), lengths))) %>% mutate(V1 = ifelse(row_number() %% 2 == 0 , "Name", V1)) %>% ungroup() %>% select(-rleid) V1 V2 <chr> <chr> 1 Name Name 2 Paul Paul 3 Name Name 4 Sarah Sarah 5 Name Name 6 Sarah Sarah 7 Name Name 8 Sarah Sarah 9 Name Name 10 Carl Carl 11 Name Name 12 Carl Carl 13 Name Name 14 Alice Alice 15 Name Name 16 Rita Rita 模块,因为这意味着您必须重新计算每个单独程序包的依赖关系。这样会导致大量的额外工作,从而延长执行时间。

您应将软件包列表作为参数传递给package参数,如下所示:

name

这将一步安装所有软件包,这意味着无论花费多长时间,Ansible实际上都没有机制可以通过某种方式“失去”特权。