Không thể tìm thấy tệp cấu hình trong Tiếng Ba Tư / etc / ansible / Lần trên Mac OS X


14

Tôi đang dùng Mac OS X và mới dùng Ansible . Tôi quên cách tôi cài đặt nó. Tôi nghĩ thông qua pip:

$ pip freeze
altgraph==0.12
ansible==1.9.2

Ở bất cứ giá nào, từ những gì tôi đang đọc nên có một tệp cấu hình /etc/ansible/, nhưng nội dung của thư mục đó chỉ là:

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

Dường như không có biến môi trường được xác định:

$ echo $ANSIBLE_CONFIG
# blank line

Ansible hoạt động theo như tôi có thể nói (không có địa phương ansible.cfgvà không có gì trong ansiblethư mục trong thư mục người dùng), nhưng tôi bị bối rối.

Ai đó có thể vui lòng giải thích những gì tôi không nhận được ở đây?

Câu trả lời:


14

Từ những gì tôi biết, tệp cấu hình Ansible ( ansible.cfg) có thể được đặt ở đây để cài đặt cấu hình cấp người dùng:

~/.ansible.cfg

Cũng như cấu hình toàn hệ thống nằm ở đây; nơi bạn tuyên bố bạn không thể tìm thấy bất kỳ tập tin như vậy:

 /etc/ansible/ansible.cfg

Nếu bằng cách nào đó bạn có nhiều người dùng trên hệ thống của mình, có lẽ có một ~/.ansible.cfgdấu phẩy trong một trong những thư mục người dùng của họ mà bạn đã quên?

Bạn nói rằng bạn có thể đã cài đặt nó bằng cách sử dụng pip, nhưng kiểm tra công thức Homebrew cho Ansible , nó chỉ bị lỗi gần đây từ phiên bản 1.9.2 đến 1.9.3 vào ngày 4 tháng 9 . Vì vậy, có lẽ bạn đã cài đặt nó thông qua Homebrew?

Và mối quan tâm chính của bạn dường như là liệu ansible.cfgcó cần thiết hay không:

Ansible hoạt động theo như tôi có thể nói (không có địa phương ansible.cfgvà không có gì trong ansiblethư mục trong thư mục người dùng), nhưng tôi bị bối rối.

Ai đó có thể vui lòng giải thích những gì tôi không nhận được ở đây?

Có, nó sẽ hoạt động tốt mà không cần cấu hình. Đối với hầu hết các phần mềm, tất cả các tệp cấu hình sẽ ghi đè mặc định hệ thống cốt lõi. Vì vậy, nếu ansible.cfgbị thiếu, Ansible vẫn hoạt động nhưng chỉ được sử dụng mặc định hệ thống cốt lõi. Như đã giải thích trong tài liệu chính thức của Ansible :

Một số cài đặt trong Ansible được điều chỉnh thông qua tệp cấu hình. Cấu hình chứng khoán phải đủ cho hầu hết người dùng, nhưng có thể có lý do bạn muốn thay đổi chúng.

Các thay đổi có thể được thực hiện và sử dụng trong tệp cấu hình sẽ được xử lý theo thứ tự sau:

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

không ở một trong hai nơi và tôi là người dùng duy nhất. Tôi đoán tôi chỉ có thể sao chép nó từ repo git và đặt nó vào một trong những thư mục đó.
MikeiLL

Cuộc gọi tốt Nó không được cài đặt qua homebrew, nhưng đó là phiên bản 1.9.2. cài đặt lại qua pip tại thời điểm này ...
MikeiLL

hiện tại 1.9.3 nhưng vẫn không thể tìm thấy thư mục cấu hình ở một trong hai vị trí trên. Có ~/.ansible/cp, và /etc/ansible/với cùng nội dung.
MikeiLL

Cảm ơn. Có ý nghĩa. Tôi chỉ không chắc chắn nếu cấu hình chứng khoán thường được lưu trữ trong một trong các ansible.cfgtệp được tham chiếu .
MikeiLL

1
@MikeiLL Nah, đừng lo lắng về điều đó. Chỉnh sửa cuối cùng của tôi là khi cuối cùng tôi đã hiểu mối quan tâm của bạn. Thành thật mà nói tôi không thể nghĩ ra một phần mềm nổi tiếng nào không hoạt động theo logic của tôi sẽ có các mặc định cốt lõi, nhưng nếu tôi tìm thấy một tệp cấu hình người dùng sẽ ghi đè mặc định. Rủi ro bảo mật / ổn định lớn mà bạn gặp phải khi toàn bộ hệ thống của bạn phụ thuộc vào tệp cấu hình bên ngoài là nếu tệp đó không còn, toàn bộ hệ thống có bị sập không? Không phải là một kế hoạch tốt. Rất vui vì bây giờ bạn hiểu rằng nếu tập tin cấu hình bị thiếu, không có gì xấu xảy ra.
JakeGould

13

Các homebrewcông thức thay thế các chuỗi /etc/ansibletrong constants.pyvới /usr/local/etc/ansible. Có vẻ như juju xấu với tôi.

Tôi đã không có /usr/local/etc/ansiblesau brew install ansible. Tuy nhiên, tôi đã xác nhận rằng nếu bạn đặt một giá trị ansible.cfgở đó, nó sẽ được vinh danh (bây giờ).

Khuyến nghị của tôi:

  1. Đừng sử dụng brewđể cài đặt Ansible.
  2. Hãy rõ ràng về cấu hình của bạn không phụ thuộc vào toàn cầu môi trường hệ thống, chẳng hạn như /etc/ansible/ansible.cfg.

Mã giới thiệu:

thay thế công thức ansible # 475: https://github.com/Homebrew/homebrew/blob/master/L Library / Formula / ansible.rb # L485

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


homebrew làm việc trong không gian người dùng để mọi thứ nằm dưới / usr / local. Điều này là tốt
gagarine

3

Trên OSX, tôi đã cài đặt ansible bằng pip và thấy rằng ansible.cfg không có trong / etc / ansible hoặc trong thư mục nhà của tôi.

Nguồn: https://github.com/ansible/ansible/issues/18512

Pip thường không cài đặt tập tin cấu hình và pip với ansible là không khác nhau. Nếu bạn chỉ muốn dùng thử ansible, nó thường hoạt động mà không cần tệp ansible.cfg. (Bạn cần chỉ định một số khoảng không quảng cáo nhưng bạn có thể làm điều đó trên dòng lệnh thay vì một tệp nếu bạn muốn). Nếu bạn muốn lấy một tệp cấu hình mẫu để điều chỉnh, bạn có thể lấy nó từ tarball hoặc kho lưu trữ nguồn tại đây: https://github.com/ansible/ansible/blob/devel/examples/ansible.cfg

Các tệp kiểm kê được giải thích tại đây: http://docs.ansible.com/ansible/intro_inventory.html Để chỉ định máy chủ lưu trữ trên dòng lệnh thay vì chỉ cần làm một cái gì đó như thế này:

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

Nếu bạn muốn chỉ định một máy chủ duy nhất thông qua dòng lệnh, hãy sử dụng dấu phẩy trong chuỗi hàng tồn kho:

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

2

Tôi thấy rằng Homebrew sẽ không tạo /etc/ansiblethư mục, cũng như không tạo tệp cấu hình hoặc tệp máy chủ. Tuy nhiên, nếu bạn tạo /etc/ansiblethư mục và sao chép cấu hình từ kho lưu trữ github vào /etc/ansiblethư mục, nó sẽ nhận ra đó là cấu hình.

Bạn cũng có thể muốn đi vào cấu hình đó và bỏ ghi chú dòng xác định vị trí khoảng không quảng cáo cũng như:

khoảng không quảng cáo = / etc / ansible / host

Khi thực hiện điều này, ansible sẽ thực hiện theo cách tương tự với cài đặt homebrew giống như mọi cài đặt khác và tài liệu bạn tìm thấy trực tuyến có thể được sử dụng với phiên bản homebrew.


/ usr / local / etc / không được công nhận. Đã thử tạo thư mục / etc / ansible / và di chuyển máy chủ và ansible.cfg hoạt động tốt!
aelkz
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.