Неможливо знайти конфігураційний файл у "/ etc / ansible /" на Mac OS X


15

Я на Mac OS X і новачок у Ansible . Я забуваю, як я його встановив. Я думаю через pip:

$ pip freeze
altgraph==0.12
ansible==1.9.2

У будь-якому випадку, з того, що я читаю, має бути файл конфігурації /etc/ansible/, але вміст цього каталогу просто:

$ ls -a /etc/ansible/
.       ..      .hosts.swp  hosts       roles

Не схоже, що визначена змінна середовище:

$ echo $ANSIBLE_CONFIG
# blank line

Наскільки я можу сказати, Ansible працює (без локальної програми ansible.cfg, а в ansibleпапці в режимі користувача нічого немає ), але я збентежена.

Може хтось, будь ласка, пояснить, чого я сюди не потрапляю?

Відповіді:


14

З того, що мені відомо, тут може бути розміщений файл Ansible config ( ansible.cfg) для налаштувань конфігурації на рівні користувача:

~/.ansible.cfg

Як і загальносистемний конфіг, розташований тут; де ви заявляєте, що не можете знайти жодного такого файлу:

 /etc/ansible/ansible.cfg

Якщо якимось чином у вас є кілька користувачів у вашій системі, можливо, ~/.ansible.cfgв одному з їхніх каталогів користувачів, який ви забули, є плаваючий?

Ви заявляєте, що, можливо, встановили його за допомогою pip, але перевіряючи формулу Homebrew для Ansible , вона лише нещодавно зіткнулася з версії 1.9.2 до 1.9.3 4 вересня . То, можливо, ви встановили це через Homebrew?

І ваша основна проблема, здається, полягає в тому, чи ansible.cfgпотрібно:

Наскільки я можу сказати, Ansible працює (без локальної програми ansible.cfg, а в ansibleпапці в режимі користувача нічого немає ), але я збентежена.

Може хтось, будь ласка, пояснить, чого я сюди не потрапляю?

Так, це повинно працювати нормально без конфігурації. Для більшості програм програмне забезпечення всіх конфігураційних файлів замінює стандартні параметри основної системи. Тож якщо ansible.cfgвін відсутній, Ansible все одно працюватиме, але використовує лише основні параметри системи. Як пояснено в офіційній документації Ansible :

Деякі параметри в Ansible можна регулювати через файл конфігурації. Конфігурація запасів повинна бути достатньою для більшості користувачів, але можуть бути причини, які ви хочете змінити.

Зміни можуть бути внесені та використані у файлі конфігурації, який буде оброблений у наступному порядку:

* ANSIBLE_CONFIG (an environment variable)
* ansible.cfg (in the current directory)
* .ansible.cfg (in the home directory)
* /etc/ansible/ansible.cfg

ні в одному місці. і я єдиний користувач. Я думаю, я міг би просто скопіювати його з git repo та розмістити його в одному з цих каталогів.
MikeiLL

Гарний дзвінок. Він не був встановлений через homebrew, але це версія 1.9.2. перевстановлення через pip на даний момент ...
MikeiLL,

зараз на 1.9.3, але все ще не вдається знайти каталог конфігурацій у жодному з вищезазначених місць. Там ~/.ansible/cpі /etc/ansible/з тим самим вмістом.
MikeiLL

Дякую. Має сенс. Я просто не був впевнений, що конфігурація запасів зазвичай зберігається в одному з ansible.cfgфайлів, на які посилаються .
MikeiLL

1
@MikeiLL Ні, не хвилюйся. Остання моя редакція була тоді, коли я нарешті зрозумів ваші проблеми. Я, чесно кажучи, не можу придумати добре відомий фрагмент програмного забезпечення, який не працює за логікою "У мене будуть основні за замовчуванням, але якщо я знайду файл конфігурації користувача, який буде заміняти типові". Великий ризик безпеки / стабільності, який ви отримуєте, коли вся ваша система спирається на зовнішній файл конфігурації, якщо цей файл відсутній, вся система руйнується? Не гарний план. Щасливі, що зараз ви розумієте, що якщо файл конфігурації відсутній, нічого поганого не відбувається.
JakeGould

13

homebrewФормула замінює рядок /etc/ansibleв constants.pyс /usr/local/etc/ansible. Мені це здається поганим дзюджу.

У мене не було /usr/local/etc/ansibleпісля brew install ansible. Однак я підтвердив, що якщо ви поставите дійсне ansible.cfgтам, це буде чесно (поки що).

Мої рекомендації:

  1. Не використовуйте brewдля встановлення Ansible.
  2. Чітко про вашу конфігурації не залежить від середовища системи глобал, наприклад /etc/ansible/ansible.cfg.

Код посилання:

заваріть формулу заміни формули № 475: https://github.com/Homebrew/homebrew/blob/master/Library/Formula/ansible.rb#L475

ansible constants.py # 61: https://github.com/ansible/ansible/blob/v1.9.3-1/lib/ansible/constants.py#L61


робота в домашньому просторі в користувальницькому просторі, тому все є в межах / usr / local. Це добре.
gagarine

3

На OSX я встановив ansible за допомогою pip і виявив, що ansible.cfg немає в / etc / ansible або в моєму домашньому каталозі.

Джерело: https://github.com/ansible/ansible/isissue/18512

pip зазвичай не встановлює файли конфігурації, а pip з ansible не відрізняється. Якщо ви просто хочете спробувати ansible, він, як правило, працює без файлу ansible.cfg. (Вам потрібно вказати інвентар, але ви можете зробити це в командному рядку, а не файл, якщо хочете). Якщо ви хочете отримати зразок конфігураційного файлу для адаптації, ви можете отримати його з tarball або вихідного сховища тут: https://github.com/ansible/ansible/blob/devel/examples/ansible.cfg

Файли інвентаризації пояснюються тут: http://docs.ansible.com/ansible/intro_inventory.html Щоб вказати хости для інвентаря в командному рядку, просто виконайте щось подібне:

ansible -i 'host1,host2,host3'  all -m command -a 'hostname'

Якщо ви хочете вказати єдиного хоста за допомогою командного рядка, використовуйте коду в коду в рядку інвентаря:

ansible -i 'host1,' all -m command -a 'hostname'

2

Я виявив, що Homebrew не створить /etc/ansibleкаталог, а також не створить конфігураційний або хост-файл. Однак якщо створити /etc/ansibleкаталог і скопіювати конфігурацію з сховища github до /etc/ansibleкаталогу, він визнає це конфігурацією.

Ви також можете зайти в цю конфігурацію і відмітити рядок, який визначає місце інвентаризації, а також:

інвентар = / etc / ansible / господарі

Роблячи це, ansible буде виконувати так само, як і при встановленні домашньої версії, як і в будь-якому іншому встановленні, і документація, яку ви знайдете в Інтернеті, може бути використана з версією homebrew.


/ usr / local / тощо / не було розпізнано. Спробував створити каталог / etc / ansible / та перемістив хости і ansible.cfg добре працював!
aelkz
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.