Ansible-如何在CentOS中添加/修改PATH变量?

时间:2019-06-12 10:38:29

标签: centos ansible

我想将/usr/pgsql-10/bin添加到$PATH,因为我希望每个使用计算机的人都能够运行psql命令。

尝试遵循this示例:

- name: add {{extra_path}} to path
  lineinfile:
    dest: /etc/environment
    state: present
    backrefs: yes
    regexp: 'PATH=(["]*)((?!.*?{{extra_path}}).*?)(["]*)$'
    line: "PATH=\1\2:{{extra_path}}\3"

首先,我不太了解如何正确修改此内容。 我应该将extra_path还是整个{{extra_path}}替换为路径(/usr/pgsql-10/bin)。

我尝试了两种方式,但遇到了不同的错误。 更糟的是,我的/etc/environment甚至没有包含PATH

1 个答案:

答案 0 :(得分:1)

仅声明其他路径

  vars:
    extra_path: /usr/pgsql-10/bin

以下基于Response to updating PATH with ansible - system wide的想法的任务似乎可以正常工作

- name: 'Add {{ extra_path }} if PATH does not exist'
  lineinfile:
    path: /etc/environment
    line: 'PATH="{{ extra_path }}"'
    insertafter: EOF
  when: lookup('file', '/etc/environment') is not search('^\s*PATH\s*=')

- name: 'Add {{ extra_path }} to PATH'
  lineinfile:
    path: /etc/environment
    regexp: 'PATH=(["])((?!.*?{{ extra_path }}).*?)(["])$'
    line: 'PATH=\1\2:{{ extra_path }}\3'
    backrefs: yes
  when: lookup('file', '/etc/environment') is search('^\s*PATH\s*=')

(相当reading。)