Bagaimana cara mendapatkan nama host dari mesin saat ini sebagaimana didefinisikan dalam file host yang mungkin?

166

Saya menyiapkan buku pedoman yang dimungkinkan untuk menyiapkan beberapa server. Ada beberapa tugas yang hanya ingin saya jalankan jika host saat ini adalah host dev lokal saya, bernama "lokal" di file host saya. Bagaimana saya bisa melakukan ini? Saya tidak dapat menemukannya di mana pun dalam dokumentasi.

Saya sudah mencoba ini ketika pernyataan, tetapi gagal karena ansible_hostnamememutuskan untuk nama host yang dihasilkan ketika mesin dibuat, bukan yang Anda tetapkan dalam file host Anda.

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

Jawaban:

2

Anda dapat membatasi ruang lingkup buku pedoman dengan mengubah tajuk host di lakonnya tanpa bergantung pada label host khusus 'lokal' di inventaris Anda. Localhost tidak memerlukan jalur khusus dalam inventaris.

- name: run on all except local
  hosts: all:!local
bbaassssiiee
sumber
hosts: !localhostmungkin juga berfungsi seperti misalnya --limit '!dev'karya
timdiels
0

Ini adalah alternatif:

- name: Install this only for local dev machine
  pip: name=pyramid
  delegate_to: localhost
bbaassssiiee
sumber