मैं एक Ubuntu 16.04 छवि के आधार पर AWS AMI बनाने के लिए पैकर का उपयोग कर रहा हूँ । शुरुआत में, मैं एक अपग्रेड कर रहा हूं:
sudo apt-get update
sudo apt-get upgrade -y
यहाँ मेरे प्रावधान अनुभाग का प्रासंगिक हिस्सा है:
"provisioners": [
{
"type": "shell",
"inline": [
"sudo apt-get update",
"sudo apt-get upgrade -y"
]
}
]
यह, हालांकि, एक इंटरैक्टिव संवाद पॉप अप के रूप में, स्वचालितकरण को तोड़ देता है:
amazon-ebs: Found kernel: /boot/vmlinuz-4.4.0-72-generic
amazon-ebs: A new version of /boot/grub/menu.lst is available, but the version installed
amazon-ebs: currently has been locally modified.
amazon-ebs:
amazon-ebs: 1. install the package maintainer's version
amazon-ebs: 2. keep the local version currently installed
amazon-ebs: 3. show the differences between the versions
amazon-ebs: 4. show a side-by-side difference between the versions
amazon-ebs: 5. show a 3-way difference between available versions
amazon-ebs: 6. do a 3-way merge between available versions (experimental)
amazon-ebs: 7. start a new shell to examine the situation
मैंने export DEBIAN_FRONTEND=noninteractive
पहले भी सेट करने की कोशिश की (जैसा कि इस उत्तर में अनुशंसित है )। दुर्भाग्य से, इससे कोई फर्क नहीं पड़ता।
प्रशन:
- क्या पुनरावृत्त संवाद को पार करने का एक तरीका है (विकल्प 1 का चयन करना ठीक होगा)?
- क्या उन्नयन से बचने के बजाय बेहतर है और इसके बजाय भरोसा करें कि एएमआई आज तक हैं और महत्वपूर्ण सुरक्षा पैच शामिल हैं?
पृष्ठभूमि: यह मेरे "बिल्डरों" अनुभाग का प्रासंगिक हिस्सा है, जहां मैंने इसे नवीनतम उपलब्ध एएमआई का उपयोग करने के लिए कॉन्फ़िगर किया है:
"builders": [{
"type": "amazon-ebs",
"region": "eu-central-1",
...
"source_ami_filter": {
"filters": {
"virtualization-type": "hvm",
"name": "*ubuntu-xenial-16.04-amd64-server-*",
"root-device-type": "ebs"
},
"owners": ["099720109477"],
"most_recent": true
},
...
}]
नोट : noniteractive
यदि आप apt-get अपडेट -y
को -q
ध्वज और ध्वज दोनों से चलाते हैं तो मोड काम करता है ।
apt-get update ; DEBIAN_FRONTEND=noninteractive apt-get upgrade -yq
। मुझे नहीं लगता किapt-get update
किसी भी चीज़ के लिए संकेत देता है, इसलिए शायद इसकी आवश्यकता नहीं हैDEBIAN_FRONTEND
, और इस प्रकार आपके पास वास्तव में नहीं हैexport
DEBIAN_FRONTEND
और यह आपके बाकी पर्यावरण के माध्यम से मौजूद है। जो भी आपके लिए मायने रखता है।