ansible-pull(1) دستورات مدیریت سیستم ansible-pull(1)

ansible-pull - دریافت پلی‌بوک‌ها از مخزن سامانه کنترل نسخه (VCS) و اجرای آن‌ها روی میزبان هدف

[-u REMOTE_USER] [-c CONNECTION] [-T TIMEOUT] [--ssh-common-args SSH_COMMON_ARGS] [--sftp-extra-args SFTP_EXTRA_ARGS] [--scp-extra-args SCP_EXTRA_ARGS] [--ssh-extra-args SSH_EXTRA_ARGS] [-k | --connection-password-file CONNECTION_PASSWORD_FILE] [--vault-id VAULT_IDS] [-J | --vault-password-file VAULT_PASSWORD_FILES] [-e EXTRA_VARS] [-t TAGS] [--skip-tags SKIP_TAGS] [-i INVENTORY] [--list-hosts] [-l SUBSET] [--flush-cache] [-M MODULE_PATH] [-K | --become-password-file BECOME_PASSWORD_FILE] [--purge] [-o] [-s SLEEP] [-f] [-d DEST] [-U URL] [--full] [-C CHECKOUT] [--accept-host-key] [-m MODULE_NAME] [--verify-commit] [--clean] [--track-subs] [--check] [--diff] [playbook.yml ...]

برای دریافت و کشیدن یک نسخه دوردست از ansible روی هر گره تحت مدیریت استفاده می‌شود، به طوری که هر گره از طریق cron اجرا شده و سورس پلی‌بوک را از طریق یک مخزن مبدا به‌روزرسانی می‌کند. این کار معماری پیش‌فرض ارسال پیش‌ران (push) انسیبل را به معماری مبتنی بر دریافت خودکار (pull) معکوس می‌کند که پتانسیل مقیاس‌پذیری تقریباً نامحدودی به همراه دارد.

هیچ‌یک از ابزارهای CLI برای اجرای همزمان با نمونه‌های دیگر از خود طراحی نشده‌اند؛ شما باید از یک زمان‌بند خارجی یا قفل‌گذاری استفاده کنید تا مطمئن شوید تداخل عملیاتی رخ نمی‌دهد.

پلی‌بوک راه‌اندازی می‌تواند برای تغییر تناوب cron، محل‌های ثبت لاگ و پارامترهای ارسالی به ansible-pull تنظیم و بهینه‌سازی شود. این امر هم برای مقیاس‌پذیری بسیار بالا و هم برای اصلاح و تعمیرات دوره‌ای کارایی دارد. استفاده از ماژول 'fetch' برای واکشی لاگ‌ها از اجراهای ansible-pull روشی بسیار عالی برای گردآوری و تحلیل لاگ‌های راه دور خواهد بود.

پلی‌بوک(ها)

--accept-host-key

افزودن hostkey برای نشانی مخزن در صورت عدم اضافه شدن قبلی

--become-password-file 'BECOME_PASSWORD_FILE', --become-pass-file 'BECOME_PASSWORD_FILE'

فایل گذرواژه ارتقای دسترسی (Become)

--check

هیچ تغییری اعمال نمی‌کند؛ در عوض سعی می‌کند تغییراتی که ممکن است رخ دهد را پیش‌بینی کند

--clean

فایل‌های دستکاری‌شده در مخزن کاری نادیده گرفته و دور ریخته خواهند شد

--connection-password-file 'CONNECTION_PASSWORD_FILE', --conn-pass-file 'CONNECTION_PASSWORD_FILE'

فایل گذرواژه اتصال

--diff

هنگام تغییر فایل‌ها و قالب‌های (کوچک)، تفاوت‌ها را در آن فایل‌ها نشان می‌دهد؛ همراه با --check بسیار عالی عمل می‌کند

--flush-cache

پاکسازی حافظه نهان فکت‌ها (fact cache) برای تمام میزبان‌های موجود در اینونتوری

--full

انجام یک کلون کامل به جای یک کلون کم‌عمق (shallow)

--list-hosts

فهرستی از میزبان‌های منطبق را چاپ می‌کند؛ هیچ عملیات دیگری را اجرا نمی‌نماید

--private-key 'PRIVATE_KEY_FILE', --key-file 'PRIVATE_KEY_FILE'

استفاده از این فایل برای احراز هویت اتصال

--purge

پاکسازی کامل نسخه واکشی‌شده (checkout) پس از پایان اجرای پلی‌بوک

--scp-extra-args 'SCP_EXTRA_ARGS'

تعیین آرگومان‌های اضافی برای ارسال اختصاصی به scp (مانند -l)

--sftp-extra-args 'SFTP_EXTRA_ARGS'

تعیین آرگومان‌های اضافی برای ارسال اختصاصی به sftp (مانند -f, -l)

--skip-tags

فقط بازی‌ها و تسک‌هایی را اجرا می‌کند که برچسب‌های آن‌ها با این مقادیر مطابقت نداشته باشد. این آرگومان را می‌توان چندین بار مشخص کرد.

--ssh-common-args 'SSH_COMMON_ARGS'

تعیین آرگومان‌های مشترک برای ارسال به sftp/scp/ssh (مانند ProxyCommand)

--ssh-extra-args 'SSH_EXTRA_ARGS'

تعیین آرگومان‌های اضافی برای ارسال اختصاصی به ssh (مانند -R)

--track-subs

زیرماژول‌ها آخرین تغییرات را پیگیری خواهند کرد. این معادل تعیین پرچم --remote در git submodule update است

--vault-id

شناسه والت (vault identity) برای استفاده. این آرگومان می‌تواند چند بار مشخص شود.

--vault-password-file, --vault-pass-file

فایل گذرواژه والت

--verify-commit

تایید امضای GPG برای کامیت واکشی‌شده؛ در صورت عدم تایید، اجرای پلی‌بوک لغو می‌شود. ماژول VCS متناظر باید از چنین عملیاتی پشتیبانی کند

--version

نمایش شماره نسخه برنامه، مسیر فایل کانفیگ، مسیر جستجوی ماژول‌های پیکربندی‌شده، مسیر ماژول‌ها، مسیر فایل اجرایی و خروج

-C 'CHECKOUT', --checkout 'CHECKOUT'

شاخه/تگ/کامیتی که باید واکشی (checkout) شود. پیش‌فرض رفتار ماژول مخزن است.

-J, --ask-vault-password, --ask-vault-pass

درخواست گذرواژه والت

-K, --ask-become-pass

درخواست گذرواژه ارتقای دسترسی (privilege escalation)

-M, --module-path

افزودن مسیر(های) جداشده با دونقطه به ابتدای کتابخانه ماژول‌ها (پیش‌فرض: {{ ANSIBLE_HOME ~ "/plugins/modules:/usr/share/ansible/plugins/modules" }}). این آرگومان را می‌توان چندین بار مشخص کرد.

-T 'TIMEOUT', --timeout 'TIMEOUT'

بازنویسی مهلت زمانی اتصال به ثانیه (پیش‌فرض بستگی به نوع اتصال دارد)

-U 'URL', --url 'URL'

نشانی URL مخزن پلی‌بوک

-c 'CONNECTION', --connection 'CONNECTION'

نوع اتصال مورد استفاده (پیش‌فرض: ssh)

-d 'DEST', --directory 'DEST'

مسیر دایرکتوری که انسیبل مخزن را در آن واکشی (checkout) خواهد کرد.

-e, --extra-vars

تنظیم متغیرهای اضافی به صورت کلید=مقدار یا YAML/JSON؛ در صورت فایل بودن نام با @ شروع شود. این آرگومان می‌تواند چندین بار مشخص شود.

-f, --force

اجرای پلی‌بوک حتی در صورتی که امکان به‌روزرسانی مخزن وجود نداشته باشد

-h, --help

نمایش این پیام راهنما و خروج

-i, --inventory, --inventory-file

مشخص کردن مسیر اینونتوری میزبان‌ها یا فهرست میزبان‌های جداشده با کاما. این آرگومان را می‌توان چندین بار مشخص کرد.

-k, --ask-pass

درخواست گذرواژه اتصال

-l 'SUBSET', --limit 'SUBSET'

محدود کردن بیشتر میزبان‌های انتخاب‌شده بر اساس یک الگوی اضافی

-m 'MODULE_NAME', --module-name 'MODULE_NAME'

نام ماژول مخزن که انسیبل برای واکشی مخزن استفاده می‌کند. گزینه‌ها عبارتند از ('git', 'subversion', 'hg', 'bzr'). مقدار پیش‌فرض git است.

-o, --only-if-changed

تنها در صورتی پلی‌بوک را اجرا می‌کند که مخزن به‌روزرسانی شده باشد

-s 'SLEEP', --sleep 'SLEEP'

وقفه به مدت تصادفی (بین ۰ تا n ثانیه) قبل از شروع. این روشی مناسب برای توزیع درخواست‌های git و جلوگیری از هجوم همزمان است

-t, --tags

فقط بازی‌ها و تسک‌های دارای این برچسب‌ها را اجرا می‌کند. این آرگومان را می‌توان چندین بار مشخص کرد.

-u 'REMOTE_USER', --user 'REMOTE_USER'

اتصال با این کاربر (پیش‌فرض: هیچ‌کدام)

-v, --verbose

باعث می‌شود انسیبل پیام‌های اشکال‌زدایی بیشتری چاپ کند. افزودن چند -v سطح جزئیات را افزایش می‌دهد؛ پلاگین‌های داخلی فعلی تا -vvvvvv را ارزیابی می‌کنند. یک سطح معقول برای شروع -vvv است؛ اشکال‌زدایی اتصال ممکن است به -vvvv نیاز داشته باشد. این آرگومان را می‌توان چندین بار مشخص کرد.

playbook.yml

نام یکی از فایل‌های فرمت YAML برای اجرا به عنوان پلی‌بوک انسیبل. این می‌تواند یک مسیر نسبی درون مخزن واکشی‌شده باشد. به طور پیش‌فرض، انسیبل به دنبال پلی‌بوکی بر اساس نام دامنه کاملاً واجد شرایط (FQDN) میزبان، نام میزبان و در نهایت پلی‌بوکی به نام local.yml می‌گردد.

انسیبل میزبان‌هایی را که به طور بالقوه می‌تواند روی آن‌ها کار کند در یک اینونتوری نگهداری می‌نماید. این می‌تواند یک فایل YAML، فایل شبه-ini، یک اسکریپت، دایرکتوری، فهرست و غیره باشد. برای گزینه‌های اضافی، مستندات موجود در https://docs.ansible.com را ببینید.

متغیرهای محیطی زیر را می‌توان تعیین کرد:

ANSIBLE_INVENTORY -- بازنویسی منابع پیش‌فرض اینونتوری انسیبل

ANSIBLE_LIBRARY -- بازنویسی مسیر پیش‌فرض کتابخانه ماژول‌های انسیبل

ANSIBLE_CONFIG -- تعیین مسیر جایگزین برای فایل پیکربندی انسیبل

متغیرهای بسیار بیشتری برای اغلب گزینه‌ها در ansible.cfg موجود هستند.

برای فهرست کامل به https://docs.ansible.com مراجعه کنید یا از دستور ansible-config بهره بگیرید.

/etc/ansible/hosts -- فایل پیش‌فرض اینونتوری

/etc/ansible/ansible.cfg -- فایل پیکربندی، در صورت وجود استفاده می‌شود

~/.ansible.cfg -- فایل پیکربندی کاربر، در صورت وجود کانفیگ پیش‌فرض را بازنویسی می‌کند

./ansible.cfg -- فایل پیکربندی محلی (در پوشه کاری جاری) که فرض می‌شود «مختص پروژه» است و در صورت وجود بقیه را بازنویسی می‌کند.

همان‌طور که در بالا اشاره شد، متغیر محیطی ANSIBLE_CONFIG بر تمام موارد دیگر اولویت خواهد داشت.

انسیبل در اصل توسط Michael DeHaan نوشته شده است.

حق نشر © 2018 Red Hat, Inc | Ansible. انسیبل تحت شرایط مجوز GPLv3 منتشر شده است.

ansible (1), ansible-config (1), ansible-console (1), ansible-doc (1), ansible-galaxy (1), ansible-inventory (1), ansible-playbook (1), ansible-vault (1)

مستندات گسترده در سایت مستندات در دسترس است: https://docs.ansible.com. اطلاعات IRC و فهرست پستی را می‌توان در فایل CONTRIBUTING.md یافت، موجود در: https://github.com/ansible/ansible

Ansible 2.21.3