ansible - Ansible:在树莓派上修改 cmdline.txt
问题描述
我正在修改 /boot/cmdline.txt 以将容器功能添加到 Raspberry Pi,因此我需要cgroup_enable=cpuset cgroup_memory=1 cgroup_enable=memory
在同一行中添加到文件中。
我正在尝试使用该lineinfile
模块来做这件事,但没有取得多大成功:
- hosts: mypi
become: yes
tasks:
- name: Enable container features
lineinfile:
path: /boot/cmdline.txt
regex: " cgroup_enable=cpuset cgroup_memory=1 cgroup_enable=memory"
line: " cgroup_enable=cpuset cgroup_memory=1 cgroup_enable=memory"
insertafter: EOF
state: present
我一直在尝试修改insertafter
为 BOF,insertbefore
也使用正则表达式来匹配最后一个单词......但它最终添加了一个回车。我一直无法找到不添加新行的方法。
解决方案
由于文件中只有一行,因此您可以使用replace
或来做到这一点lineinfile
。这是replace
版本:
- name: Enable container features
replace:
path: cmdline.txt
regexp: '^([\w](?!.*\b{{ item }}\b).*)$'
replace: '\1 {{ item }}'
with_items:
- "cgroup_enable=cpuset"
- "cgroup_memory=1"
- "cgroup_enable=memory"
从这里偷了答案
推荐阅读
- python - 与 Java 进程一起使用时,Python 子进程轮询不给出返回码
- jquery - jQuery构造动态html标签
- python - 从列表中删除一个已经存在的元素并在列表中只保留该值的一个元素
- javascript - 使用类名根据 props 值使用 CSS 动态设置组件样式
- python - 坚持用python做多元线性回归
- aws-codepipeline - CodeBuild 复制工件失败
- c++ - 从模板化基类派生是否在派生类声明时实例化模板?
- plot - 在球拍中是否有任何功能可以在 python 中绘制类似“茎”图的图?
- java - Java Math.random 闭双区间
- c++ - 变量地址的运算符[]如何工作?