Назад | Перейти на главную страницу

Исходный bashrc / псевдонимы из внешнего файла (LEMP)

Я использую несколько виртуальных машин LEMP с практически идентичными настройками. Каждая из этих виртуальных машин имеет /etc/profile.d/00-aliases.sh содержащий набор псевдонимов и функций для запуска на сервере. Теперь, когда я вношу изменения в эти псевдонимы / функции, мне приходится вручную копировать / вставлять файл на другие серверы.

Я хочу загружать файл из внешнего источника каждый раз, когда я вхожу в систему через SSH. Я видел такое поведение на других серверах с запросом «Загрузка внешних сценариев ..» при входе в систему. Вдобавок к этому потребуются какие-то локальные переменные для функций и некоторые переменные, потому что есть небольшие различия в темах и именах папок на каждом сервере.

В лучшем случае у меня будет что-то вроде этого для переменных (псевдокод):

var sitename = SiteA
var sitepath = /html/path/

а затем один глобальный файл bash.rc / aliasses, например:

alias goroot = 'cd {sitepath}'
alias delses = 'rm -rf /var/session/'
...

Возможно ли это (с переменными), если да, то как? Где мне начать искать?

Вы можете использовать ansible с модуль шаблона для развертывания ваших файлов:

.ansible / inventory

[lemp-hosts]
host1
host2
...

.ansible / group_vars / lemp-hosts.yml

profile_d: /etc/profile.d/

.ansible / host_vars / host1.ansible

sitename: SiteA
sitepath: /html/path/

шаблоны / 00-aliases.sh

alias goroot = 'cd {{ sitepath }}'
alias delses = 'rm -rf /var/session/'
...

playbooks / deploy_aliases.yml

---

- hosts lemp-hosts
  tasks:
  - name: copy aliases.sh
    template:
      src: templates/00-aliases.sh
      dest: "/{{ profile_d }}/00-aliases.sh"

Создайте инвентарь вместе с файлами group- и hostvar, специфичными для ваших хостов на вашем управляющем хосте. Затем вы можете развернуть файл с помощью ansible-playbook playbooks/deploy_aliases.yml всем вашим хозяевам сразу. Конечно, вы можете развернуть всю свою конфигурацию с помощью одной playbook, ansible изменит только те файлы, которые были изменены. Управляйте своим доступным каталогом с помощью git, и у вас даже есть версии вашей конфигурации в одном месте.