วิธีรับชื่อโฮสต์ของเครื่องปัจจุบันตามที่กำหนดไว้ในไฟล์ Ansible hosts


166

ฉันกำลังตั้งค่าเพลย์บุ๊ค Ansible เพื่อตั้งค่าเซิร์ฟเวอร์คู่ มีงานสองอย่างที่ฉันต้องการเรียกใช้หากโฮสต์ปัจจุบันคือโฮสต์ dev ในพื้นที่ของฉันชื่อ "local" ในไฟล์โฮสต์ของฉัน ฉันจะทำสิ่งนี้ได้อย่างไร ฉันไม่พบที่ใดก็ได้ในเอกสาร

ฉันได้ลองทำสิ่งนี้เมื่อคำสั่ง แต่มันล้มเหลวเนื่องจากการansible_hostnameแก้ไขชื่อโฮสต์ที่สร้างขึ้นเมื่อสร้างเครื่องไม่ใช่ชื่อที่คุณกำหนดในไฟล์โฮสต์

- name: Install this only for local dev machine
  pip: name=pyramid
  when: ansible_hostname == "local"

คำตอบ:



2

คุณสามารถ จำกัด ขอบเขตของ playbook โดยเปลี่ยนส่วนหัวของโฮสต์ในการเล่นโดยไม่ต้องพึ่งพาป้ายกำกับโฮสต์พิเศษ 'ท้องถิ่น' ในคลังของคุณ Localhost ไม่จำเป็นต้องมีบรรทัดพิเศษในสินค้าคงเหลือ

- name: run on all except local
  hosts: all:!local

hosts: !localhostอาจใช้งานได้เช่นกันเช่น--limit '!dev'งาน
timdiels

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