প্রশ্ন কিভাবে উত্তরযোগ্য কমান্ড stdout দেখতে?


আমি কিভাবে edible-playbook কমান্ডের জন্য stdout দেখতে পারি? -v শুধুমাত্র আলাদা আউটপুট দেখায়, পৃথক কমান্ড নয়। আমি যদি তা অবিলম্বে কীভাবে করতে পারি তা নির্ধারণ করা খুব ভাল হবে, তাই যদি কিছু ব্যর্থ হয় বা হ্যাং হয় তবে কেন আমি দেখতে পারি।

উদাহরণস্বরূপ

- name: print to stdout
  action: command echo "hello"

মুদ্রণ করা হবে

TASK: [print variable] ******************************************************** 

hello

124
2017-09-06 21:01


উত্স


সম্পর্কিত: serverfault.com/questions/667252/... - Capi Etheriel
stackoverflow.com/questions/20563639/... - JonnyJD


উত্তর:


আমি আপনি একটি পরিবর্তনশীল ফলাফল নিবন্ধন করতে পারেন, তারপর ডিবাগ সঙ্গে মুদ্রণ করতে পারেন।

- name: print to stdout
  command: echo "hello"
  register: hello

- debug: msg="{{ hello.stdout }}"

- debug: msg="{{ hello.stderr }}"

126
2017-09-14 13:01



উপরন্তু, আপনি সরাসরি একটি পরিবর্তনশীল ডিবাগ করতে পারেন - debug: var=hello। কখনও কখনও এটি মাল্টিলাইন আউটপুট বা আনসেল মডিউল আউটপুট (পরিবর্তে command/shell আউটপুট)। - geerlingguy
আমি এই ব্যবহার করে জাভা আউটপুট পেতে সমস্যা ছিল। ফিক্স জাভা আউটপুট সব stdout পুনঃনির্দেশিত হয়: shell: java -version 2>&1 - Matthias Braun
এটি অনেক ভাল কিছুই নয়, তবে আপনি শুধুমাত্র স্টুডাউট বার্তা পাবেন পরে কমান্ড সফলভাবে সম্পন্ন হয়েছে। আমি একটি সমস্যা ছিল যেখানে উত্তরদায় ঝুলন্ত প্রদর্শিত হবে। কারণটি ছিল যে আমি একটি rsync কমান্ডের জন্য ভুল ব্যবহারকারীর নাম ব্যবহার করছিলাম, যা ইন্টারেক্টিভ পাসওয়ার্ড অনুরোধটি স্পুল করেছিল, যা কেবলমাত্র উত্তরযোগ্য ফাঁস করে দিয়েছে। ডিবাগ করা খুব কঠিন ছিল - কিন্তু যদি আমি রিয়েলটাইমে স্টডাউট দেখতে পারি তবে আমি অবিলম্বে বুঝতে পারতাম যে আমি কী ভুল করেছি। আমি যদি সম্ভব, এই কার্যকারিতা প্রেম হবে। - Michael B
যখন এটি কাজ করে, এর অর্থ অনুমানযোগ্য ডিবাগিংকে সত্যিই কঠিন করে তোলে। আসুন প্রথম কল্পনাটি শেষ করি না (সম্ভবত এটি নির্বোধভাবে ব্যবহারকারী ইনপুটের জন্য অপেক্ষা করছে) ... ব্যবহারকারী কখনই জানতে পারবে না! তাছাড়া, দী register মডিউল, বা যাই হোক না কেন এটা আছে বস্তু উত্পাদন করে না stdout অথবা stderr পরিবর্তনশীল সেট .... তাই এটি সত্যিই খারাপ যে আমরা ডিফল্টরূপে আউটপুট পেতে পারি না: | - vlad-ardelean


পরিবর্তে stdout- এ আমি ব্যবহার করে সুপারিশ করবে stdout_lines। Multiline আউটপুট জন্য এটি অনেক নিকৃষ্ট, যেমন।

- hosts: all
  tasks:
    - name: Run ls.sh and output "ls /"
      script: ls.sh
      register: out

    - debug: var=out.stdout_lines

দেয়

TASK: [debug var=out.stdout_lines] ******************************************** 
ok: [local] => {
    "var": {
        "out.stdout_lines": [
            "total 61", 
            "lrwxrwxrwx   1 root root     7 Feb 15  2015 bin -> usr/bin", 
            "drwxr-xr-x   6 root root  1024 Aug 24 22:08 boot", 
            "drwxr-xr-x  22 root root  3580 Sep  8 18:41 dev",  
            [...] 
            "drwxr-xr-x   9 root root  4096 Aug 25 19:14 usr", 
            "drwxr-xr-x  13 root root  4096 Feb 25  2015 var"
        ]
    }
}

ডিবাগিং উদ্দেশ্যে বাস্তব সময় আউটপুট সম্পর্কে একটি বন্ধ বাগ রিপোর্ট আছে https://github.com/ansible/ansible/issues/3887#issuecomment-54672569 কেন এটি সম্ভব নয় এবং আলোচনা করা হবে তা নিয়ে আলোচনা করা হচ্ছে।


76
2017-09-08 18:12



"রিয়েল টাইম আউটপুট" বাগ লিঙ্ক করার জন্য +1। - ntc2
যদি আমি out.stdout_lines (আনসইবল মেইল ​​টাস্কের অংশ হিসাবে) পাঠাতে চাই, কিভাবে আমি এটি পাঠাতে পারি যাতে ইমেলটি পাওয়ার সময় এটি এমন না হয়? [u'total 61 ', u'lrwxrwxrwx 1 root root 7 ফেব্রুয়ারী 15 2015 bin -> usr / bin', u'drwxr-xr-x 6 root root 1024 Aug 24 22:08 boot ', u' .... । '] আমি এটা দেখতে চাই, যেমন টার্মিনালে দেখা যায় - Chris F


আমি ব্যবহার করে পাওয়া যত্সামান্য  stdout_callback অ্যাডভয়েবল-প্লেবুকের সাথে অ্যাড-হক অ্যান্টিবিলিটি ব্যবহার করার মতো একই আউটপুট দেওয়া হয়েছে।

আপনার ansible.cfg (আমি মনে করি যে ওএস এক্স এ করছি তাই সংশোধন করুন callback_plugins আপনার ইনস্টল অনুসারে উপযুক্ত)

stdout_callback     = minimal
callback_plugins    = /Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/ansible/plugins/callback

তাই এই যেমন একটি কাজ

---
- hosts: example
  tasks:
   - name: Say hi
     command: echo "hi ..."

যেমন আউটপুট কমান্ড চাই, মত আউটপুট দেয়

example | SUCCESS | rc=0 >>
hi ...

আমি ansible-playbook 2.2.1.0 ব্যবহার করছি


13
2018-04-06 08:12



চমৎকার কলব্যাক প্লাগইন, সহজ পোস্ট প্রক্রিয়াকরণ শুধুমাত্র আউটপুট আউটপুট নিষ্কাশন করতে পারেন। - RichVel