ไม่พบไฟล์กำหนดค่าใน“ / etc / ansible /” บน Mac OS X


15

ฉันบน Mac OS X และใหม่เพื่อเบิ้ล ฉันลืมวิธีติดตั้ง ฉันคิดว่าผ่าน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โฟลเดอร์ใน dir ของผู้ใช้) แต่ฉันก็สับสน

ใครช่วยกรุณาอธิบายสิ่งที่ฉันไม่ได้รับที่นี่?

คำตอบ:


14

จากสิ่งที่ฉันรู้ไฟล์กำหนดค่าAnsible ( 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โฟลเดอร์ใน dir ของผู้ใช้) แต่ฉันก็สับสน

ใครช่วยกรุณาอธิบายสิ่งที่ฉันไม่ได้รับที่นี่?

ใช่มันควรจะทำงานได้ดีโดยไม่มีการกำหนดค่า สำหรับซอฟต์แวร์ส่วนใหญ่ไฟล์ config ทั้งหมดจะแทนที่ค่าเริ่มต้นของระบบหลัก ดังนั้นหาก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

ไม่ได้อยู่ในสถานที่ใด และฉันเป็นผู้ใช้คนเดียว ฉันเดาว่าฉันสามารถคัดลอกมาจาก 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ดูเหมือนว่า juju ไม่ดีสำหรับฉัน

ฉันไม่ได้มีหลัง/usr/local/etc/ansible brew install ansibleอย่างไรก็ตามฉันยืนยันว่าหากคุณป้อนที่ถูกต้องที่ansible.cfgนั่นก็จะได้รับเกียรติ (ตอนนี้)

คำแนะนำของฉัน:

  1. ไม่ได้ใช้ในการติดตั้งbrewAnsible
  2. มีความชัดเจนเกี่ยวกับการกำหนดค่าของคุณไม่ได้ขึ้นอยู่กับสภาพแวดล้อมของระบบ Globals /etc/ansible/ansible.cfgเช่น

รหัสอ้างอิง:

ชงสูตรการแทนที่ ansible # 475: https://github.com/Homebrew/homebrew/blob/master/Library/Formula/ansible.rb#L475

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


homebrew ทำงานในพื้นที่ของผู้ใช้ดังนั้นทุกสิ่งจึงอยู่ภายใต้ / usr / local นี่เป็นเรื่องปกติ
กาการีน

3

บน OSX ฉันได้ติดตั้ง ansible โดยใช้ pip และพบว่า ansible.cfg ไม่มีอยู่ใน / etc / ansible หรือในโฮมไดเร็กตอรี่ของฉัน

ที่มา: https://github.com/ansible/ansible/issues/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ไดเรกทอรีและจะไม่สร้างไฟล์ config หรือโฮสต์ อย่างไรก็ตามหากคุณสร้าง/etc/ansibleไดเรกทอรีและคัดลอกการกำหนดค่าจากที่เก็บ github ลงใน/etc/ansibleไดเรกทอรีมันจะรับรู้ว่าเป็นการกำหนดค่า

คุณอาจต้องการเข้าไปที่ config และยกเลิกการใส่เครื่องหมายบรรทัดที่ระบุตำแหน่งสินค้าคงคลังเช่นกันเพื่อ:

Inventory = / etc / ansible / hosts

เมื่อทำเช่นนี้ ansible จะดำเนินการในลักษณะเดียวกันกับการติดตั้ง homebrew เหมือนกับการติดตั้งอื่น ๆ และเอกสารที่คุณพบออนไลน์สามารถใช้กับเวอร์ชัน homebrew ได้


/ usr / local / etc / ไม่เป็นที่รู้จัก พยายามสร้างไดเรกทอรี / etc / ansible / และย้ายโฮสต์และ ansible.cfg ทำงานได้ดี!
aelkz
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.