আমি জবাবদিহি করে সার্ভারগুলির একটি ক্লাস্টার তৈরি করতে চাই।
একটি মূল-প্লেবুকে আমি কয়েকটি উপ-প্লেবুক অন্তর্ভুক্ত করি।
- include: playbook_commandserver.yml
- include: playbook_agent.yml
প্লেবুক_কম্যান্ডসরভার.আইএমএল-এ, আমি কমান্ড-সার্ভার তৈরি করেছি (অ্যাউজ এ)। তারপরে, আমি এমন একটি ভূমিকা ট্রিগার set_fact
করি যা কমান্ডারভারের ডিএনএস নামটি মনে রাখার জন্য মডিউলটি ব্যবহার করে :
- name: Get hostname of command server
shell: /usr/bin/host $(/usr/bin/curl -s http://ipecho.net/plain) | /usr/bin/awk '{print $5}' | /usr/bin/awk -F 'aws.com' '{print $1"aws.com"}'
register: cs
- name: Set hostname of command server as fact
set_fact: commandserver="{{ cs.stdout }}"
commandserver
আসলে একই খেলা পাওয়া যায়, কিন্তু একই প্লেবুক নেই .. একা দিন playbook_agent.yml
পরে, যে অন্তর্ভুক্ত পরার। এবং এটি ঠিক সেখানে রয়েছে, যেখানে আমাকে সেই কমান্ডারভার-ফ্যাক্টটি অ্যাক্সেস করতে হবে।
তাহলে কীভাবে একটি সেট / স্টোর ভেরিয়েবলগুলি সম্পূর্ণ উত্তরযোগ্য-রানের জন্য বৈধ?
আমি এটি খুঁজে পেয়েছি: /programming/26732241/ansible-save-regided-variable-to-file তবে আমার কাছে এটি দেখতে কুৎসিত হ্যাকের মতো দেখাচ্ছে।
থের কি এই সমস্যার আরও ভাল সমাধান হতে পারে? কোনও ভেরিয়েবল সেট করার কোনও উপায় নেই, এটি পুরো উত্তরযোগ্য-রান জন্য বৈধ?