5

मैं विकास वातावरण स्थापित करने और एक परियोजना के लिए पाइपलाइन बनाने के लिए एक प्लेबुक लिख रहा हूं। मैं यथासंभव यथासंभव बुनियादी ढांचे से प्लेबुक को डीकॉप्ल्ड करना चाहता हूं, और केवल समूहों पर भरोसा करता हूं, इसलिए मैं अलग-अलग समूह लिमिटर का उपयोग करके, एक ही कमांड के साथ स्थानीय वीएम के साथ-साथ नंगे हार्डवेयर के साथ पाइपलाइन सेट कर सकता हूं।उत्तरदायी, उपयोगकर्ता को केवल समूह में जोड़ने के लिए कैसे करें यदि उपयोगकर्ता मौजूद है

अब समस्या, स्थानीय Vagrant बक्से के साथ मैं उपयोगकर्ता आवारा को डोकर जोड़ने के लिए समूह, जहां बेयर मेटल सर्वर के साथ के रूप में कुछ मनमाने ढंग से उपयोगकर्ता की जरूरत है। प्लेबुक में इस प्रकार की विविधताओं को संभालने का सबसे अच्छा अभ्यास क्या है, इसे यथासंभव सार के रूप में रखना? क्या मुझे इस तरह के सामान के लिए व्यवहार पैरामीटर, मेजबान चर, समूह चर, सशर्त या तथ्यों को इकट्ठा करना चाहिए?

क्या प्लेबुक को पूरी तरह से अमूर्त रखने के लिए भी संभव या उचित है, बिना किसी कठोर मूल्य और किसी भी पर्यावरण के अनुकूलन के?

एक उपयोगकर्ता चर कि Vagrantfile अधिलेखित कर देता है का उपयोग करें:

उत्तर

1

अपने विशिष्ट सवाल का जवाब करने के लिए। उदाहरण के लिए, यदि आप अवांछित हैं तो ubuntu यदि 0 यामें है तो यह ubuntu होगा।


एक अधिक सैद्धांतिक जवाब:

मैं आवारा के साथ एक ही मुद्दा था बनाता है और मैं इतना है कि सभी आवारा बनाता है यह ले सकते हैं और सर्वर सेटअप करने के लिए इसे निष्पादित एक ansible प्लेबुक कहीं रखने का फैसला किया।

उदाहरण के लिए, प्लेबुक इस तरह दिखता है:

- hosts: all 
    tasks: 
    - name: remove apparmor 
     apt: name=apparmor purge=true state=absent 

और फिर मेरी आवारा खजाने में से प्रत्येक यह wget और यह

box.vm.provision :ansible do |ansible| 
    ansible.playbook = 'vagrant_extra.yml' 
    ansible.sudo = true 
    ansible.limit = 'all' 
end 

साथ सबसे अच्छा समाधान मैं पैकर उपयोग करने के लिए किया जाएगा लगता है चलाने अपनी खुद की वानर छवि का प्रावधान करने के लिए जिसमें उन सभी चीजों का पूर्व-समर्थन किया गया है ताकि

  1. आप न करें डी छवि को स्वयं सेट करने में समय बर्बाद करने के लिए, और
  2. आपके बक्से "प्रोड" बॉक्स के समान हैं।
संबंधित मुद्दे