Я пытаюсь добавить /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"
Во-первых, я не совсем понимаю, как мне это изменить.
Должен ли я заменить только extra_path или весь {{extra_path}} своим путем (/usr/pgsql-10/bin).
Я пробовал в любом случае, и я получаю разные ошибки.
Что еще хуже, мой /etc/environment даже не содержит PATH.





Объявить только дополнительный путь
vars:
extra_path: /usr/pgsql-10/bin
Задачи ниже, основанные на идее от Ответ на обновление PATH с помощью ansible — для всей системы, похоже, работают
- 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*=')
(Это довольно чтение.)
Большое спасибо, это действительно сработало. Единственное, что я сделал по-другому, это определил переменную внутри задачи после
- name