使用环境变量中的值将行添加到文件中

时间:2016-09-27 20:21:02

标签: ansible

我想在文件filename的末尾添加一行,其值为Path is X,其中X是环境变量$PATH的值。

我该怎么做?

2 个答案:

答案 0 :(得分:0)

创建一个像这样的新任务:

- name: Put path in file
  lineinfile:
    dest: /path/to/file.txt
    create: yes
    line: "Path is {{ lookup('env', 'PATH') }}"
    state: present

答案 1 :(得分:0)

基本上,以下任务将执行:

- name: Ensure the file contains 'Path is $PATH' line
  lineinfile:
    dest: your_file
    insertafter: EOF
    regexp: "^Path is"
    line: "Path is {{ ansible_env.PATH }}"

但请记住:

  • 生成的行将包含用于在为非交互式shell构建的目标计算机上运行Ansible任务的用户的值。例如,在OS X上,默认情况下,它不会包含来自/etc/paths/etc/paths.d的路径,也不会包含PATH的值,.bash_profilelineinfile中设置(更改) {1}}。

  • 使用Path is模块不会将行添加到文件的末尾,如果以{ field: 'lastName', displayName: 'Last Name', sortingAlgorithm: MyService.getSortingAlgorithm('lastName') }, 开头的行已存在于其他位置(不在文件的末尾)目标文件,它将替换它的值。