আনিসিবলের পিপ মডিউলটি চালানোর সময় আমি কীভাবে PATH- এ প্রপেন্ড করতে পারি?


17

আমি আনসিবলের pipমডিউল সহ পাইকন ভার্চুয়ালেনভে সাইকোপজি 2 ইনস্টল করার চেষ্টা করছি , তবে এটি সঠিকভাবে তৈরি করার জন্য আমার প্যাথএইচএইন্টিতে প্রিপেন্ড করা দরকার (এটিতে থাকা ডিরেক্টরিতে যাওয়ার পথটি জানতে হবে pg_config)। আমি দেখতে যে আমি পাস করতে পারেন environmentকরতে pipমডিউল, কিন্তু আমি কিভাবে ঊর্ধ্বলিপি বদলে পূর্বে লিখুন হবে সে বিষয়ে নিশ্চিত নই PATH

এখানে আমি প্রয়োজনীয় ডিরেক্টরিটি দিয়ে পথটি পূর্ববর্তী করার চেষ্টা করছি, তবে এটি ভার্চুয়ালেনভকে ওভাররাইট করে PATHএবং ব্যর্থ হয়:

- pip:
    name: psycopg2
    virtualenv: /path/to/my/venv
  environment:
    PATH: /usr/pgsql-9.3/bin:$PATH

উত্তর:


33

আপনি যদি উত্তরযোগ্য ১.৪ বা তার পরে ব্যবহার করেন (যা আমি প্রস্তাব করি) আপনি দূরবর্তী PATH এনভির ভেরিয়েবলটি অ্যাক্সেস করতে পারেন :

- pip: name=psycopg2 virtualenv=/path/to/my/venv
  environment:
    PATH: /usr/pgsql-9.3/bin:{{ ansible_env.PATH }}

পরিবর্তে যদি আপনি স্থানীয় ক্লায়েন্টেরPATH env ভারতে উত্তরযোগ্য স্ক্রিপ্টগুলি (লক্ষ্যযুক্ত সার্ভারের পরিবর্তে ) চালাতে আগ্রহী হন তবে আপনি নিম্নলিখিতটি করতে চান:

- pip: name=psycopg2 virtualenv=/path/to/my/venv
  environment:
    # This only makes sense if your client and server are homogeneous, that is,
    # they have the same PATHs.
    PATH: /usr/pgsql-9.3/bin:{{ lookup('env', 'PATH') }}

4
ansible_env.PATHপুরোপুরি কাজ - বিকল্প আমি কী প্রয়োজন ছিল তা ছিল না। ধন্যবাদ!
কলিন অ্যালেন

1
নোট করুন যে এটি ওয়ার্কস্টেশনের PATH নেয়, সার্ভার নয়!
vdboor

4
আপনার যদি প্রিপেন্ড ~/binকরতে হয় তবে ব্যবহার করুন PATH: "{{ansible_env.HOME}}/bin:{{ansible_env.PATH}}"। আপনি যদি এর পরিবর্তে ব্যবহার করেন PATH: "~/bin:{{ansible_env.PATH}}"তবে কিছু প্রোগ্রাম (যেমন পাইথনের shutil.which) সেই উপাদানটি ব্যবহার করতে অক্ষম।
লেকেনস্টেইন

3
সতর্ক থাকতে হবে যে হতে ansible_env, SSH ব্যবহারকারী, না পরিবেশ বোঝায় sudoপরিবেশ। ansible_env.USERসুতরাং rootএকটি অনিবদ্ধ ব্যবহারকারী পরিবর্তে ফলাফল হতে পারে ।
লেকেনস্টেইন
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.