উত্তরীয় মুদ্রণ ডিবাগ ফাইল পরিবর্তনশীল


17

আমি আগের মতো নিবন্ধিত mosh_versionভেরিয়েবলটি এ জাতীয় উত্তরযোগ্য debug msgকমান্ড ব্যবহার করে মুদ্রণের চেষ্টা করি :

- name: Print mosh version
  debug: msg="Mosh Version: {{ mosh_version.stdout }}"

এটি কাজ করে না এবং নিম্নলিখিত ত্রুটিটি মুদ্রণ করে:

Note: The error may actually appear before this position: line 55, column 27

- name: Print mosh version
  debug: msg="Mosh Version: {{ mosh_version.stdout }}"
                          ^
We could be wrong, but this one looks like it might be an issue with
missing quotes.  Always quote template expression brackets when they
start a value. For instance:

    with_items:
      - {{ foo }}

Should be written as:

    with_items:
      - "{{ foo }}"

আমি চেষ্টা করেছিলাম

- name: Print mosh version
  debug: msg=Mosh Version: "{{ mosh_version.stdout }}"

তবে এটি কেবল "মোশ" মুদ্রণ করবে।

এই দৌড়ানোর সেরা উপায় কী?

উত্তর:


25

এটা চেষ্টা কর:

- name: Print mosh version
  debug: "msg=Mosh Version: '{{ mosh_version.stdout }}'"

Http://docs.ansible.com/YAMLSyntax.html#gotchas এ আরও তথ্য

সম্পাদিত: এর মতো কিছু আমার পক্ষে নিখুঁত কাজ করে:

- name: Check Ansible version
  command: ansible --version
  register: ansibleVersion

- name: Print version
  debug:
    msg: "Ansible Version: {{ ansibleVersion.stdout }}"

http://pastie.org/private/cgeqjucn3l5kxhkkyhtpta


এখানে আরও কোনও সিনট্যাক্স ত্রুটি নেই, তবে এটি TASK: [ Print mosh version] ************************************** ok: [127.0.0.1] => { "msg": "Mosh" }
কোনওভাবেই

প্রথমে কেবল পরিবর্তনশীল মুদ্রণ করে দেখুন এবং কাস্টম বার্তা ছাড়াই আউটপুট দেখুন: - নাম: মোশ সংস্করণ ডিবাগ প্রিন্ট করুন: var = mosh_version.stdout_lines
টম

ok: [127.0.0.1] => { "var": { "mosh_version.stdout_lines": [ "mosh 1.2.4a [build mosh-1.2.4-57-g9eeb2fb]" ] } } এটি কাজ করে, আমি সত্যই যদিও কাস্টম বার্তাকে পছন্দ করব ;-)
জুলাকিস

1
আমার আপডেট হওয়া উত্তরটি দেখুন
টম আ্যাক

দয়া করে নোট করুন: ডিবাগ: "msg = মোশ সংস্করণ: '। {মোশ_ভার্সন.স্টডআউট}}'" কেবল "মোশ" প্রদর্শন করবে। পুরো বার্তাটির পরিবর্তে, চিহ্ন = "..." অবশ্যই উদ্ধৃতিতে থাকতে হবে। তবে @xddsg এর উত্তর আরও কার্যকরভাবে কাজ করে, কারণ এটি আরও বিশদ ভার ডাম্প।
ডালিবোর ফিলাস


1

শুধু কোলন সরান

debug: msg="Mosh Version {{ mosh_version.stdout }}"

সত্যিই, এটি একটি সম্পূর্ণ সমাধান নয় তবে এখনও এটি কাজ করেছিল এবং আমার পরবর্তী সমস্যাটি সমাধান করেছে। অন্য বাক্য গঠন ব্যবহার করতে পারবেন না কারণ আমি এটি ব্যবহার করি whenতাই কোলন অপসারণ করা আসলে এটি সমাধানের সহজতম উপায়। সুতরাং আমি
উর্ধ্বে

0

আমি এটি ব্যবহার করি, ডাবল উদ্ধৃতি (") এবং একক উদ্ধৃতি (') এর অবস্থানটি লক্ষ্য করুন

- name: Print mosh version
  debug: "msg='Mosh Version: {{ mosh_version.stdout }}'"

0

যে কোনও সময় আমার কাছে উত্তরীয় স্ট্রিং / সেন্টিমিডিএসে বিশেষ অক্ষরগুলির সাথে সমস্যা হয় আমি এটি করি:

  1. একক উদ্ধৃতি দিয়ে মোড়ানো
  2. ডাবল কোঁকড়ানো বন্ধনী দিয়ে মোড়ানো

সুতরাং আপনার মান কোলন হয়ে যায় {{':'}}

এবং আপনার কাজ হয়ে যায়:

- debug: msg="Ansible Version{{':'}} {{ ansibleVersion.stdout }}"

আবার এটি বেশিরভাগ বিশেষ চরিত্র এমনকি স্ট্রিংয়ের জন্য কাজ করে। নিম্নোক্ত বিবেচনা কর:

docker ps --format '{{.Names}}'

এটিকে জবাবদিহি করতে চালানোর জন্য, কেবল একই যুক্তি প্রয়োগ করুন, নিম্নলিখিত টাস্কটি প্রত্যাশা অনুযায়ী কার্যকর করে:

- name: Get the docker container names
  become: yes
  shell: "docker ps --format '{{'{{'}}.Names{{'}}'}}'"
  register: docker_containers
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.