Ansible - Как добавить / изменить переменную PATH в CentOS? - PullRequest
1 голос
/ 12 июня 2019

Я пытаюсь добавить /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.

1 Ответ

1 голос
/ 12 июня 2019

Объявление только дополнительного пути

  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*=')

(Это довольно чтение .)

...