我正在尝试添加/usr/pgsql-10/bin到$PATH,因为我希望使用该机器的每个人都能够运行该psql命令。
尝试遵循这个例子:
- 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"
Run Code Online (Sandbox Code Playgroud)
首先,我不太明白我应该如何修改它。我应该用我的路径 ( ) 替换extra_path全部还是全部。{{extra_path}}/usr/pgsql-10/bin
我尝试了两种方法,但得到了不同的错误。更糟糕的是,我的/etc/environment甚至不包含PATH.
仅声明附加路径
vars:
extra_path: /usr/pgsql-10/bin
Run Code Online (Sandbox Code Playgroud)
以下任务基于Response to update 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
Run Code Online (Sandbox Code Playgroud)
- name: 'Fetch /etc/environment to {{ playbook_dir }}/environments'
fetch:
src: /etc/environment
dest: "{{ playbook_dir }}/environments"
changed_when: false
- name: 'Add {{ extra_path }} if PATH does not exist'
lineinfile:
path: /etc/environment
line: 'PATH="{{ extra_path }}"'
insertafter: EOF
when: lookup('file', path) is not search('^\s*PATH\s*=')
vars:
path: "{{ path_items|path_join }}"
path_items:
- "{{ playbook_dir }}"
- environments
- "{{ inventory_hostname }}"
- etc/environment
- name: 'Add {{ extra_path }} to PATH'
lineinfile:
path: /etc/environment
regexp: 'PATH=(["])((?!.*?{{ extra_path }}).*?)(["])$'
line: 'PATH=\1\2:{{ extra_path }}\3'
backrefs: yes
Run Code Online (Sandbox Code Playgroud)
请参阅Python 正则表达式。
| 归档时间: |
|
| 查看次数: |
10117 次 |
| 最近记录: |