我正在写一个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保留特权?
答案 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实际上都没有机制可以通过某种方式“失去”特权。