मैं स्थापना के दौरान डायलॉग दिखाने से एप्टीट्यूड / एप्टीट्यूड को कैसे रोक सकता हूं?


28

मैं लाइनबोड पर कुछ Ubuntu 12.04 सर्वरों को तैनात करने के लिए एक Ansible Playbook बनाने की कोशिश कर रहा हूं, लेकिन मेरी समस्या उबंटू की प्रतीत होती है। जब मैं apt-get या aptitude के विभिन्न संयोजनों को चलाता हूं तो मुझे हमेशा निम्नलिखित डायलॉग मिलते हैं जिनका मुझे जवाब देना होता है।

पैकेज कॉन्फ़िगरेशन संवाद

मुझे यह पसंद है कि कमांड लाइन से उत्तर दिया जाए ताकि यह स्वचालित तैनाती को बाधित न करे। कोई विचार?

मेरे वर्तमान आदेश नीचे हैं। ध्यान दें कि मैं DEBIAN_FRONTEND सेट करने का प्रयास कर रहा हूं:

#!/bin/bash

echo 'DEBIAN_FRONTEND="noninteractive"' >> /etc/profile
echo 'DEBIAN_FRONTEND="noninteractive"' >> ~/.profile

source /etc/profile
source ~/.profile

# This next line is the one that pops up the dialog
sudo aptitude -y install iptables-persistent

# Need this to fix an issue with the package post-install (this works fine.)
sudo sed \
    -i 's/\(modprobe -q ip6\?table_filter\)/\1 || true/g' \
    /var/lib/dpkg/info/iptables-persistent.postinst; \
sudo aptitude install iptables-persistent

जवाबों:


34

debconf-set-selectionsपैकेज स्थापित करने से पहले मान सेट करने के लिए उपयोग करने का प्रयास करें :

echo iptables-persistent iptables-persistent/autosave_v4 boolean true | sudo debconf-set-selections
echo iptables-persistent iptables-persistent/autosave_v6 boolean true | sudo debconf-set-selections

या, ansible के माध्यम से

- name: prevent the iptables-peristent install dialog
  debconf: name=iptables-persistent question={{ item }} vtype=boolean value=true
  with_items:
  - iptables-persistent/autosave_v4
  - iptables-persistent/autosave_v6
- name: install iptables-persistent
  apt: name=iptables-persistent

@ ब्रायम I ने
लोरिन होचस्टेन

आप iptables-persistent iptables-persistent/autosave_v4 boolean trueभी जोड़ना चाह सकते हैं ।
ब्रिअम

@ ब्रायम ने v4 जोड़ा
लोरिन होचस्टेन

0

तुम चूक गए -q। प्रयत्न:

sudo DEBIAN_FRONTEND=noninteractive aptitude install -y -q iptables-persistent

1
यह 12.04 पर काम नहीं किया :( मुझे पहले से ही अन्य फ़िक्सअप करना है, इसलिए मुझे आश्चर्य है कि अगर पैकेज सिर्फ पर्यावरण चर को नजरअंदाज करता है।
ब्रायन लाइटल

1
मैंने इसे पोस्ट करने से पहले 12.04-डेस्कटॉप वीएम में परीक्षण किया। तो शायद यह आपके 12.04-सर्वर से संबंधित है?
जर्मनर

डेबियन एक ही संदेश दिखाता है ...
Braiam

0

मुझे लगता है कि आपको सभी प्रक्रिया को स्वचालित करने के लिए एक डीबैंकफ डेटाबेस करने पर विचार करना चाहिए। यह एक nonintuitive प्रक्रिया है और इसमें बहुत सारे काम करने की आवश्यकता होती है, जैसे अपनी खुद की डिबेट को फिर से तैयार करना, इसे काम करना और इसे "debconf preseeding" कहा जाता है ।

ऐसा करने के बारे में डेबियन विकि में कई उदाहरण हैं :

समय और परिस्थितियों के आधार पर आप एक का चयन करेंगे (इसीलिए मैं विवरण में नहीं गया था)। एक लें जो उपयोगी लगता है, और अंत तक इसके साथ रहें।

यदि आप समस्याओं में भाग लेते हैं, तो एक और प्रश्न पूछें कि आप क्या करने की कोशिश कर रहे हैं, और आप इसे कैसे करने की योजना बना रहे हैं।


0

गैर-अंतःक्रियात्मक रूप से स्थापित करने के लिए @ lorin-hochstein के Ansible- आधारित उत्तर के लिए मामूली सुधार / समायोजन जिसमें कार्य को सफलतापूर्वक चलाने के लिए sudo-privilges की आवश्यकता होती है ( become: yesपंक्ति को जोड़ा गया ): ## Prevent iptables-persistent pckgs install dialog (debconf-set-selections) - name: prevent the iptables-peristent install dialog become: yes debconf: name=iptables-persistent question={{ item }} vtype=boolean value=true with_items: - iptables-persistent/autosave_v4 - iptables-persistent/autosave_v6 - name: install iptables-persistent apt: name=iptables-persistent


0

यदि एक डॉकटर छवि का निर्माण:

RUN echo iptables-persistent iptables-persistent/autosave_v4 boolean true | debconf-set-selections \
  && echo iptables-persistent iptables-persistent/autosave_v6 boolean true | debconf-set-selections
RUN apt-get install -y iptables-persistent
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.