Ansible sử dụng Invent_hostname hoặc ansible_hostname trong tên tác vụ


19

Tôi đang viết một cuốn sách nâng cấp lăn và muốn in ra tên máy chủ của máy chủ hiện tại đã được nâng cấp.

Tôi đặt inventory_hostnamevà đặt ansible_hostnametên nhiệm vụ nhưng nó không hoạt động

- name: upgrade softare on {{inventory_hostname}}
- name: current host is {{ansible_hostname}}

gỡ lỗi hoạt động tốt

- name: Test a variable
  debug: var=inventory_hostname

TASK: [Test a variable] ******************************************************* 
ok: [SERV14] => {
    "var": {
        "inventory_hostname": "SERV14"
    }
}

Vậy tôi nên làm gì để có thể sử dụng các biến đó trong mô tả tên tác vụ.

Cảm ơn


4
Hiện tại, thay thế biến không thể được thực hiện trong tên. Xem tại đây
cuonglm

Câu trả lời:


27

Bắt đầu từ v2.0 Ansible hỗ trợ thay thế biến trong tên tác vụ / trình xử lý: https://github.com/ansible/ansible/issues/10347 , vì vậy những ví dụ này sẽ hoạt động như mong đợi:

- name: upgrade software on {{inventory_hostname}}
- name: current host is {{ansible_hostname}}

0

Tôi nghĩ bạn nên viết {{ ansible_hostname }}sau tasks:, bởi vì trước đó nó chưa thu thập được sự thật để nó không thể đưa ra kết quả. Tôi có thể sai về khái niệm nhưng trong thực tế nó đã thành công.

tasks:
  - name: Install the httpd on {{ ansible_hostname }}
    yum: 
      name: httpd 
      state: latest

vở kịch

đầu ra chơi

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.