উত্তরযোগ্য ব্যবহার করে আরপিএম প্যাকেজ ইনস্টল করুন


22

আমি কীভাবে উত্তরযুক্ত ব্যবহার করে দূরবর্তী মেশিনে .rpm প্যাকেজ ইনস্টল করব?

সুস্পষ্ট সমাধানটি হল commandমডিউলটি ব্যবহার করা , তবে এটি কিছুটা মূর্খ। এছাড়াও আমি কেবল একটি প্যাকেজের জন্য yum সংগ্রহস্থল স্থাপন এড়াতে চাই।

এই সমস্যাটির জন্য কি আরও কিছু বাস্তববাদী পদ্ধতি রয়েছে?


এসএসএসের জন্য এটিই ভাল। আমি জানি যে এখানে খেলতে শীতল ব্যবহার রয়েছে, তবে প্রকৃত, অ-তুচ্ছ কাজের জন্য এটি এসএসএস।
লরিনকি জিসিগমন্ড

উত্তর:


32

উত্তরসূচক yumমডিউল ইতিমধ্যে এই সমস্যার জন্য একটি সমাধান সরবরাহ করে। সার্ভারে স্থানীয় আরপিএম ফাইলের পথটি nameপ্যারামিটারে যেতে পারে ।

থেকে Ansible ইস মডিউল ডকুমেন্টেশন :

আপনি কোনও আরপিএম ফাইলে একটি ইউআরএল বা স্থানীয় পথও পাস করতে পারেন। বেশ কয়েকটি প্যাকেজ পরিচালনা করার জন্য এটি প্যাকেজের কমা দ্বারা পৃথক করা তালিকা বা (২.০ হিসাবে) প্যাকেজের তালিকা গ্রহণ করতে পারে।

এটি করার যথাযথ পদক্ষেপগুলি এরকম কিছু হবে:

- name: Copy rpm file to server
  copy:
     src: package.rpm
     dest: /tmp/package.rpm

- name: Install package.
  yum:
     name: /tmp/package.rpm
     state: present

দুঃখিত, আমি এটি উপেক্ষা করেছি। আপনার সাহায্যের জন্য ধন্যবাদ! :)
নেফেরিয়াস অক্টোপাস

প্রথমে ফাইলটি অনুলিপি না করে এটি সম্পাদন করার কোনও উপায়?
টেকনোক্র্যাট

1
যদি আপনি HTTP- র মাধ্যমে প্যাকেজটি উপলব্ধ করেন তবে আপনি নামের প্যারামিটারে urlটি পাস করতে পারেন।
হেনরিক পিঙ্গেল মনিকা পুনরায় ইনস্টল করুন

@ টেকনোক্র্যাট, কিছুটা দেরী হয়ে গেছে, তবে উত্তর দিয়েছেন
ফ্লিপিম

4

আসলে yumমডিউল প্রদত্ত ইউআরএল থেকে সরাসরি একটি আরপিএম ইনস্টল করতে পারে:

- name: Remote RPM install with yum
  yum: name=http://example.com/some_package.rpm

কৌতূহল ছাড়াই (এটি ভুল উপায় ব্যতীত) কেন এই কাজ করে না? এটি আমার শেলটির জন্য ব্যর্থ হয়েছিল: yum redhat.com/repo/my.rpm
এরাম

আমি বলব এটি সম্ভবত কারণ এটি প্রোটোকল অনুপস্থিত
Flippym

2

উত্স মেশিন থেকে একাধিক আরপিএম ইনস্টল করতে আমি এখানে যা করছি:

- name: mkdir /tmp/RPMS
  file: path=/tmp/RPMS state=directory

- name: copy RPMs to /tmp/RPMS
  copy:
    src: "{{ item }}"
    dest: /tmp/RPMS
  with_fileglob:
    - "../files/*.rpm"
  register: rpms_copied

- name: local RPMs not found
  fail:
    msg: "RPMs not found in ../files/"
  when: rpms_copied.results|length == 0 and rpms_copied.skipped and rpms_copied.skipped_reason.find('No items') != -1

- set_fact:
    rpm_list: "{{ rpms_copied.results | map(attribute='dest') | list}}"

- name: install RPMs
  yum:
    name: "{{rpm_list}}"

1

যেহেতু আমি একই সমস্যায় পড়েছি এবং @ জিম হুনজিকারের পোস্টটি আমাকে সঠিক দিকে ঠেলে দিয়েছে, আমি একটি নির্দিষ্ট আরপিএম সংস্করণ ইনস্টল করার জন্য আমার সমাধানটি ভাগ করে নিতে চাই এবং কেবল প্রয়োজনে আরপিএম আপলোড করি।

---
- hosts: testhosts
  tasks:
          - name: check if package installed
            command: rpm -q --qf "%{VERSION}\n" package
            args:
                    warn: false
            register: package_installed
            failed_when: false
            changed_when: package_installed.rc != 0
          - name: check package version
            shell: "[[ `rpm -q --qf \"%{VERSION}\n\" package` == '{{ package_version }}' ]]"
            args:
                    warn: false
            register: package_installed_version
            failed_when: false
            changed_when: package_installed_version.rc != 0
          - name: uninstall old package
            yum:
                    name: package
                    state: removed
            when: package_installed_version.rc != 0 and package_installed.rc == 0
          - name: copy package-rpm to /tmp
            copy:
                    src: package-{{ package_version }}-1.el7.x86_64.rpm
                    dest: /tmp/
            notify:
                    - remove package-rpm from /tmp
            when: package_installed_version.rc != 0
          - name: install package
            yum:
                    name: /tmp/package-{{ package_version }}-1.el7.x86_64.rpm
                    state: present
            when: package_installed_version.rc != 0
  handlers:
          - name: remove package-rpm from /tmp
            file:
                    name: /tmp/package-{{ package_version }}-1.el7.x86_64.rpm
                    state: absent

0

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

- name: Installed the rpm files
  shell: yum localinstall *.rpm -y
  args:
    chdir: /tmp/rpm_dir

সতর্কতা অবহেলা।


-1

আমাকে বাধ্যতামূলকভাবে আরপিএম কমান্ডটি ব্যবহার করতে হয়েছিল কারণ আমার কাছে ইয়াম নেই (এটি একটি এআইএক্স ওএস)।

আমি এর মাধ্যমে আদর্শশক্তির সমাধান করেছি:

- command: rpm -U "{{rpm}}"
  args:
    warn: false
  register: rpm_install
  failed_when: rpm_install.rc != 0 and "is already installed" not in rpm_install.stderr
  changed_when: rpm_install.rc == 0

এই টাস্কটি কেবলমাত্র উত্তরযোগ্যদের কাছে আদর্শ মনে হয়। বাস্তবে, আপনি যখনই এটি চালাবেন তখন আরপিএম পুনরায় ডাউনলোড হবে এবং পুনরায় ইনস্টল হবে।
মাইক
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.