این دستوری است که می تواند در ارائه دهنده هاست رایگان OnWorks با استفاده از یکی از چندین ایستگاه کاری آنلاین رایگان مانند Ubuntu Online، Fedora Online، شبیه ساز آنلاین ویندوز یا شبیه ساز آنلاین MAC OS اجرا شود.
برنامه:
نام
chake - پیکربندی بدون سرور با سرآشپز
معرفی
chake ابزاری است که به شما کمک میکند بدون نیاز به سرآشپز چندین میزبان را مدیریت کنید
سرور پیکربندی در یک فهرست محلی مدیریت می شود که احتمالاً باید در زیر باشد
کنترل نسخه با دستگاه گوارش(1) یا هر چیز دیگری پیکربندی معمولاً از طریق rsync انجام می شود
روی SSH، و با فراخوانی اعمال می شود سرآشپز-انفرادی(1) بیش از SSH در هر میزبان.
پدید آوردن L' مخزن
$ chake init
[ایجاد] nodes.yaml
[ mkdir] nodes.d/
[ایجاد] config.rb
[ mkdir] پیکربندی/نقش
[ mkdir] کتاب آشپزی/اصول/دستور پخت/
[ایجاد] cookbooks/basics/recipes/default.rb
[ایجاد] Rakefile
توضیح مختصری در مورد فایل های ایجاد شده:
· nodes.yaml: جایی که میزبان هایی را که مدیریت خواهید کرد و دستور العمل ها را فهرست می کنید
برای هر یک از آنها اعمال شود.
· nodes.d: دایرکتوری با چندین فایل با فرمت مشابه nodes.yaml. تمام فایل های
تطبیق *.yaml در آن به لیست گره ها اضافه می شود.
· config.rb: شامل پیکربندی سرآشپز-انفرادی است. شما می توانید آن را تغییر دهید، اما معمولا شما
نیازی نخواهد داشت
· config/roles: دایرکتوری جایی است که می توانید تعاریف نقش خود را قرار دهید.
· کتاب آشپزی: فهرستی که کتاب های آشپزی خود را در آن ذخیره خواهید کرد. نمونه کتاب آشپزی به نام
"اصول" ایجاد شده است، اما با خیال راحت آن را حذف کنید و کتاب های آشپزی واقعی را اضافه کنید.
· Rakefile: فقط شامل خط «chake» است. می توانید آن را با کارهای دیگر تقویت کنید
مخصوص ساختار داخلی شما
پس از ایجاد مخزن، می توانید Chake یا Rake را صدا بزنید، همانطور که کاملاً هستند
معادل.
مدیریت گره ها
درست بعد از اینکه مخزن خود را ایجاد کردید، محتوای nodes.yaml به شرح زیر است:
host1.mycompany.com:
run_list:
- دستور غذا[اصول]
می توانید هاست خود را با گره های Rake فهرست کنید:
$ گره های رنک
host1.mycompany.com ssh
برای افزودن گره های بیشتر، کافی است به nodes.yaml اضافه کنید:
host1.mycompany.com:
run_list:
- دستور غذا[اصول]
host2.mycompany.com:
run_list:
- دستور العمل ها [اصول]
و Chake اکنون در مورد گره جدید شما می داند:
$ گره های رنک
host1.mycompany.com ssh
host2.mycompany.com ssh
آماده سازی گره ها به BE اداره می شود
گره ها نیازهای اولیه بسیار کمی برای مدیریت با chake دارند:
· گره باید از طریق SSH قابل دسترسی باشد.
· کاربری که به گره متصل می کنید باید یا روت باشد یا اجازه اجرای sudo (in
که مورد sudo باید نصب شود).
A توجه داشته باشید on کلمه عبور درخواست می کند: هر بار که chake ssh را روی یک گره فراخوانی می کند، ممکن است از شما خواسته شود
رمز عبور خود را تایپ کنید؛ هر بار که chake sudo را بر روی گره فراخوانی می کند، ممکن است لازم باشد تایپ کنید
در رمز عبور شما برای مدیریت یک یا دو گره این احتمالاً خوب است، اما برای بزرگتر
تعداد گره ها عملی نیست. برای جلوگیری از درخواست رمز عبور، می توانید:
· پیکربندی احراز هویت مبتنی بر کلید SSH. این امن تر از استفاده از رمز عبور است.
در حالی که در آن هستید، احتمالاً می خواهید تأیید اعتبار رمز عبور را نیز غیرفعال کنید
به طور کامل و فقط احراز هویت مبتنی بر کلید را مجاز می کند
· پیکربندی دسترسی sudo بدون رمز عبور برای کاربری که برای اتصال به گره های خود استفاده می کنید.
چک کردن پیوند و اولیه HOST برپایی
برای بررسی اینکه آیا هاست ها به درستی پیکربندی شده اند، می توانید از کار بررسی استفاده کنید:
چک چنگک دلاری
این دستور sudo true را روی هر میزبان اجرا می کند. اگر بدون نیاز به آن بگذرد
رمزهای عبور، شما مطمئن هستید که
· شما به هر میزبان دسترسی SSH دارید. و
· کاربری که در حال اتصال به آن هستید به عنوان sudo بدون رمز عبور به درستی راه اندازی شده است.
چک چنگک دلاری
اعمال کتاب آشپزی
برای اعمال تنظیمات بر روی تمام گره ها، اجرا کنید
$ شن و ماسه همگرا
برای اعمال پیکربندی روی یک گره، اجرا کنید
$ rake converge:$NODE
برای اعمال یک دستور روی همه گره ها، اجرا کنید
اعمال $ rake[myrecipe]
برای اعمال یک دستور روی یک گره خاص، اجرا کنید
$ rake:$NODE[myrecipe]
اگر دستوری را در خط فرمان اعلام نکنید، از شما درخواست می شود.
برای اجرای یک فرمان پوسته روی تمام گره ها، اجرا کنید
$ rake run[command]
اگر دستوری که میخواهید اجرا کنید حاوی فاصلهها یا سایر کاراکترهای خاص باشد
پوسته، شما باید آنها را نقل قول کنید.
برای اجرای یک فرمان پوسته روی یک گره خاص، اجرا کنید
$ rake run:$NODE[فرمان]
اگر دستوری را در خط فرمان اعلام نکنید، یک دستور از شما خواسته می شود.
برای بررسی وظایف موجود، اجرا کنید
$ rake -T
نوشتن کتاب آشپزی
از آنجایی که چیک در واقع یک لفاف برای Chef Solo است، باید [مستندات آشپز] را بخوانید (
).
به طور خاص، به [مستندات انفرادی سرآشپز] نگاه کنید(
chef_solo.html>).
L' نود بند چکمه روند
وقتی چیک برای اولین بار روی یک گره عمل می کند، باید آن را بوت استرپ کند. بوت استرپینگ
فرآیند شامل انجام موارد زیر است:
· نصب سرآشپز و rsync
· غیرفعال کردن دیمون سرآشپز
· تنظیم نام میزبان
نود آدرس های اینترنتی
کلیدهای هش که در nodes.yaml نشان داده شده است یک URL گره است. تمام اجزای
URL اما نام میزبان اختیاری است، بنابراین فقط فهرست کردن نام هاست ساده ترین شکل آن است
گره های خود را مشخص کنید در اینجا تمام اجزای URL های گره آمده است:
[backend://][username@]نام میزبان[:port][/path]
· Backend: باطن مورد استفاده برای اتصال به میزبان. ssh یا محلی (پیش فرض: ssh)
· نام کاربری: نام کاربری برای اتصال (پیشفرض: نام کاربری در ایستگاه کاری محلی شما)
· نام میزبان: نام میزبان برای اتصال (پیشفرض: هیچ)
· پورت: شماره پورت برای اتصال (پیشفرض: 22)
· مسیر /: محل ذخیره کتابهای آشپزی در گره (پیشفرض: /var/tmp/chef.$USERNAME)
EXTRA ویژگیها
# قلاب
شما می توانید وظایف Rake را تعریف کنید که قبل از بوت استرپ گره ها، قبل از آن اجرا شوند
بارگذاری محتوای مدیریت پیکربندی در گره ها و قبل از همگرایی. برای انجام این،
شما فقط باید وظایف مربوطه را تقویت کنید:
· bootstrap_common: قبل از بوت استرپ گره ها اجرا می شود (حتی اگر گره ها قبلا
بوت استرپ)
· upload_common: قبل از آپلود محتوا در گره اجرا می شود
· converge_common: قبل از همگرایی اجرا می شود (به عنوان مثال سرآشپز در حال اجرا)
مثال:
task:bootstrap_common do
sh './scripts/pre-bootstrap-checks'
پایان
# رمزگذاری شده فایل ها
هر فایلی که مطابقت دارد .gpg و .asc قبل از ارسال به GnuPG رمزگشایی می شود
گره شما می توانید از آنها برای ذخیره رمزهای عبور و سایر اطلاعات حساس (کلیدهای SSL،
و غیره) در مخزن همراه با بقیه تنظیمات.
# مخزن-محلی SSH پیکربندی
اگر به پارامترهای پیکربندی SSH خاصی نیاز دارید، می توانید فایلی به نام .ssh_config ایجاد کنید
(یا هر نام فایلی که در متغیر محیطی $CHAKE_SSH_CONFIG دارید، به زیر مراجعه کنید
برای جزئیات) در ریشه مخزن خود قرار دهید، و chake هنگام فراخوانی ssh از آن استفاده می کند.
# عشق ورزیدن IN به A HOST
برای اینکه به راحتی به یکی از هاست خود وارد شوید، فقط Rake login:$HOSTNAME را اجرا کنید. این اراده
به طور خودکار از پیکربندی SSH مخزن محلی مانند بالا استفاده کنید تا مجبور نباشید
همیشه -F .ssh_config را تایپ کنید.
# دویدن همه SSH فراخوان ها با مقداری پیشوند COMMAND
گاهی اوقات، شما همچنین می خواهید یا نیاز دارید که فراخوان های SSH خود را با پیشوندی پیشوند کنید
دستور به منظور تونل کردن آن از طریق برخی از گره های خروجی مرکزی. شما می توانید این کار را انجام دهید
تنظیم $CHAKE_SSH_PREFIX در محیط خود. مثال:
CHAKE_SSH_PREFIX=چک جوراب ها همگرا می شوند
موارد فوق باعث می شود که همه فراخوانی های SSH به همه هاست ها به نام tsocks ssh [...]
# همگرا محلی HOST
اگر می خواهید ایستگاه کاری محلی خود را با chake مدیریت کنید، می توانید یک گره محلی مانند را اعلام کنید
این در nodes.yaml:
local://thunderbolt:
run_list:
- نقش [ایستگاه کاری]
برای اعمال پیکربندی در میزبان محلی، می توانید از Rake معمولی استفاده کنید
converse:thunderbolt یا هدف ویژه شن کش محلی.
وقتی همه گرهها همگرا میشوند، chake از گرههایی که با local:// اعلان شدهاند رد میشود.
باطن و نام میزبان آن با نام میزبان در اعلان مطابقت ندارد. مثلا:
local://desktop:
run_list:
- نقش [ایستگاه کاری]
local://laptop:
run_list:
- نقش [ایستگاه کاری]
وقتی Rake Converge را روی دسکتاپ اجرا میکنید، لپتاپ حذف میشود و بالعکس.
محیط زیست متغیرها
· $CHAKE_SSH_CONFIG: فایل پیکربندی SSH محلی. پیشفرض ssh_config.
· $CHAKE_SSH_PREFIX: فرمان به پیشوند SSH (و rsync بر روی SSH) تماس ها با.
· $CHAKE_RSYNC_OPTIONS: گزینه های اضافی برای انتقال به rsync. مفید است به عنوان مثال حذف بزرگ
فایل ها از بارگذاری در هر سرور.
· $CHAKE_NODES: فایل حاوی لیست سرورهایی که باید مدیریت شوند. پیش فرض: nodes.yaml.
· $CHAKE_NODES_D: فهرست حاوی سرورهای فایل های تعریف گره برای مدیریت.
پیش فرض: nodes.d.
· $CHAKE_TMPDIR: دایرکتوری مورد استفاده برای ذخیره فایل های کش موقت. پیش فرض: tmp/chake.
· $CHAKE_CHEF_CONFIG: فایل پیکربندی سرآشپز، نسبت به ریشه مخزن.
پیش فرض: config.rb.
از chake آنلاین با استفاده از خدمات onworks.net استفاده کنید