Ansible Dynamic Inventory - tạo khoảng không quảng cáo với địa chỉ IP dưới thẻ cụ thể có dấu gạch dưới thay vì dấu chấm


11

Tôi mới đến Ansible. Khi tôi đang sử dụng ec2.pykhoảng không quảng cáo động để tạo khoảng không quảng cáo, sau khi playbook kết thúc để chạy, kết quả được hiển thị dưới dạng danh sách các địa chỉ IP dưới thẻ cụ thể có dấu gạch dưới thay vì dấu chấm. Ví dụ: tôi muốn chạy một playbook trong các trường hợp với thẻ cụ thể, tôi tự hỏi làm thế nào những người khác làm việc với địa chỉ IP?

---
- hosts: tag_test_staging
  sudo: true
  tasks:
  - name: Make sure that we can connect to the machine
    ping:

    PLAY RECAP *********************************************************************
    10_80_20_47                : ok=0    changed=0    unreachable=1    failed=0 

Đối với địa chỉ riêng, ec2.ini:

hostname_variable = private_ip_address
destination_variable = private_ip_address
vpc_destination_variable = private_ip_address

Kết quả từ ec2.py:

 "tag_test_staging": [
    "10_80_20_47"
  ],

Đối với địa chỉ công cộng, ec2.ini:

hostname_variable = ip_address
destination_variable = public_dns_name
vpc_destination_variable = ip_address

Kết quả từ ec2.py:

 "tag_test_staging": [
    "52_28_11_11"
  ],

Tại sao điều quan trọng với bạn là tên tập lệnh đưa ra cho mỗi máy chủ có dấu gạch dưới cho các ký tự không chữ và số?
Assaf Lavie

Đây có vẻ là một câu hỏi trung tâm công cụ rất cụ thể. Có ServerFault cho điều đó và chủ đề của nó có serverfault.com/help/on-topic . Không chắc làm thế nào về chủ đề ở đây, nếu có.
Evgeny

@Evgeny, không chắc tôi hiểu ý của bạn là gì, vấn đề là gì http://devops.stackexchange.comnếu bạn không đặt câu hỏi? Có phải đó không phải là câu hỏi của DevOps?
Berlin

Câu trả lời:


5

Nó hoạt động nếu tôi nhận xét hostname_variable, vì nó cho phép ghi đè Invent_name bằng biến ec2, thay vì sử dụng Destination_variable

#hostname_variable = private_ip_address
#hostname_variable = ip_address
destination_variable = public_dns_name
vpc_destination_variable = private_ip_address

Đối với IP riêng:

destination_variable = private_ip_address

Than ôi, tôi đang thấy hành vi tương tự, và nhận xét hostname_variable không sửa nó.
Todd Walton

Tuy nhiên .... tôi đã nhiều lần nhận thấy rằng việc thay đổi tệp ini và chạy lại ec2.py sẽ không trả về thông tin chính xác ngay lập tức. AF lạ, phải không? Nhưng sau vài lần thử nó và thử nó và thử nó, sau khoảng 20 phút, nó đột nhiên bắt đầu trả lại địa chỉ IP bằng dấu chấm thay vì dấu gạch dưới! Tôi không biết.
Todd Walton

Bạn có biết tôi có thể làm gì nếu tôi muốn đưa ra một điều kiện? ví dụ: vpc_destination_variable: "{{ip_address if ec2_pl platform == 'windows' other private_ip_address}}"
Nimitack

0

Tôi gặp vấn đề tương tự. Tôi đã nhận được địa chỉ IP với dấu gạch dưới thay vì dấu chấm. Nhưng tôi đã nhiều lần nhận thấy rằng việc thay đổi tệp ini và chạy lại ec2.py sẽ không trả về thông tin chính xác ngay lập tức. Khi tôi đổi thành private_ip_address và nó tiếp tục trả về private_dns_name trong một thời gian. Lần này, sau khi đổi thành private_ip_address và chạy lại nó nhiều lần - thử nó và thử nó - sau khoảng 20 phút, nó đột nhiên bắt đầu trả lại địa chỉ IP bằng dấu chấm thay vì dấu gạch dưới! Tôi không biết. AF lạ, phải không?


Âm thanh giống như một vấn đề lưu trữ bộ nhớ cache. Bạn đã thử thay đổi tham số 'cache_max_age' trong ec2.ini chưa?
malte

Bạn có thể hoàn toàn đúng. Tôi chỉ nhìn vào ngày hôm nay, thực sự. Bạn có thể chạy "./ec2.py --refresh-cache".
Todd Walton
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.