انجمن‌های فارسی اوبونتو

لطفاً به انجمن‌ها وارد شده و یا جهت ورود ثبت‌نام نمائید

لطفاً جهت ورود نام کاربری و رمز عبورتان را وارد نمائید


توزیع گنو/لینوکس اوبونتو ۲۰ ساله شد 🎉

نویسنده موضوع: نصب برنامه روی ماشین راه دور با Ansible  (دفعات بازدید: 965 بار)

0 کاربر و 1 مهمان درحال مشاهده موضوع.

آنلاین esmaeelE

  • ناظر انجمن
  • *
  • ارسال: 1270
  • جنسیت : پسر
نصب برنامه روی ماشین راه دور با Ansible
« : 10 اردیبهشت 1403، 12:39 ب‌ظ »
می‌خواهم برای مدیریت یک ماشین با سیستم‌عامل دبیان پایدار و اتصال ssh از انسیبل (Ansible) استفاده می‌کنیم.
دسترسی ssh به این ماشین از گره مرکزی با کاربری به نام user و کلمهٔ عبور برقرار است.
خود این کاربر می‌تواند با sudo عملیات مدیریتی نظیر نصب نرم‌افزار را انجام دهد.

اجرا فرمان زیر با ansible برای به روزرسانی سیاههٔ بسته‌ها با خطای دسترسی رو به رو می‌شود.

$ ansible -i inventory/hosts a_linux_template -m command -a "apt update"

هدف راه‌اندازی اولیه انسیبل است به طوری که بتواند با کاربر user عملیات مدیریتی را انجام دهد.
و اجرای فرمان بالا تنها برای بررسی امکان اجرای دستوراتی با دسترسی superuser است.


خطا


1.1.1.1 | FAILED | rc=100 >>
Reading package lists...
WARNING: apt does not have a stable CLI interface. Use with caution in scripts.

E: Could not open lock file /var/lib/apt/lists/lock - open (13: Permission denied)
E: Unable to lock directory /var/lib/apt/lists/
W: Problem unlinking the file /var/cache/apt/pkgcache.bin - RemoveCaches (13: Permission denied)
W: Problem unlinking the file /var/cache/apt/srcpkgcache.bin - RemoveCaches (13: Permission denied)non-zero return code



گزینهٔ K- هم برای پرسیدن کلمهٔ عبور مشکل را برطرف نمی‌کند. کلمهٔ عبور BECOME password را وارد می‌کنم ولی خطا تغییری نمی‌کند.

محتوای inventory


[a_linux_template]
1.1.1.1 ansible_user=user ansible_ssh_private_key_file=~/.ssh/id_rsa


پرسش

چه تنظیمی دیگری باید اعمال شود که ansible بتواند با کاربر user کارهای مدیریتی را انجام دهد؟



آفلاین دانیال بهزادی

  • ناظر انجمن
  • *
  • ارسال: 19720
  • جنسیت : پسر
  • Urahara Kiesuke
    • وبلاگ
پاسخ : نصب برنامه روی ماشین راه دور با Ansible
« پاسخ #1 : 10 اردیبهشت 1403، 01:53 ب‌ظ »
باید برای taskها توی انسیبل become: true رو تعریف کنی.
اگه این ارسال بهت کمک کرد، دنبال دکمهٔ تشکر نگرد. به جاش تو هم به جامعهٔ آزادت کمک کن

آنلاین esmaeelE

  • ناظر انجمن
  • *
  • ارسال: 1270
  • جنسیت : پسر
پاسخ : نصب برنامه روی ماشین راه دور با Ansible
« پاسخ #2 : 10 اردیبهشت 1403، 02:48 ب‌ظ »
باید برای taskها توی انسیبل become: true رو تعریف کنی.

سپاس‌گزارم با این تنظیم درست شد.

cat playbook/nginx.yml
---
- hosts: a_linux_template
  become: true
  tasks:
    - name: install nginx
      apt: name=nginx state=latest
    - name: start nginx
      service:
          name: nginx
          state: started
#      become: true

آفلاین دانیال بهزادی

  • ناظر انجمن
  • *
  • ارسال: 19720
  • جنسیت : پسر
  • Urahara Kiesuke
    • وبلاگ
پاسخ : نصب برنامه روی ماشین راه دور با Ansible
« پاسخ #3 : 11 اردیبهشت 1403، 05:35 ب‌ظ »
عالی. فقط دو تا نکته:
۱. به جای پیمانهٔ apt از package استفاده کن که عمومی‌تر باشه
۲. خدمت رو مستقیم توی همون تسک صدا نکن. یه handler تعریف کن که آخرش بره بررسی کنه خدمت رو.
اگه این ارسال بهت کمک کرد، دنبال دکمهٔ تشکر نگرد. به جاش تو هم به جامعهٔ آزادت کمک کن

آنلاین esmaeelE

  • ناظر انجمن
  • *
  • ارسال: 1270
  • جنسیت : پسر
پاسخ : نصب برنامه روی ماشین راه دور با Ansible
« پاسخ #4 : 12 اردیبهشت 1403، 04:38 ب‌ظ »
عالی. فقط دو تا نکته:
۱. به جای پیمانهٔ apt از package استفاده کن که عمومی‌تر باشه
۲. خدمت رو مستقیم توی همون تسک صدا نکن. یه handler تعریف کن که آخرش بره بررسی کنه خدمت رو.
این شکلی شد.

$ cat nginx.yml
---
- hosts: a_linux_template
  become: true
  tasks:
    - name: install nginx
      package: name=nginx state=latest
      notify:
        - start nginx service
  handlers:
     - name: start nginx
       service:
         name: nginx
         state: restarted

اجرا

$ ansible-playbook -i inventory/ playbook/nginx.yml -K


اجرای مستقیم دستورات هم با انتخاب b-  برای BECOME کار می‌کند.

$ ansible -i inventory/hosts a_linux_template -m command -a "apt update" -K -b
BECOME password:
1.1.1.1 | CHANGED | rc=0 >>
Hit:1 http://security.debian.org/debian-security bookworm-security InRelease
Hit:2 http://deb.debian.org/debian bookworm InRelease
Hit:3 http://deb.debian.org/debian bookworm-updates InRelease
Reading package lists...
Building dependency tree...
Reading state information...
5 packages can be upgraded. Run 'apt list --upgradable' to see them.
WARNING: apt does not have a stable CLI interface. Use with caution in scripts.
« آخرین ویرایش: 12 اردیبهشت 1403، 04:43 ب‌ظ توسط esmaeelE »