Alireza Faraji
Alireza Faraji
خواندن ۲ دقیقه·۷ ماه پیش

مهمترن نکات و مثال ansible

نکات کاربردی در استفاده از ansible


تذکر:این مقاله برای کسانی است که آشنایت سطحی با ansible دارند

کاربردی‌ترین و مهم‌ترین نکته در استفاده با hosts, ansible هست که چگونه آنها را set کنیم و دسترسی را برای ansible به hosts آسان کنیم

  • برای ست کردن hosts بر روی لینوکس برای ansible باید hosts ip را در etc/ansible/hosts بنویسیم و همچنین می‌توانیم username و password را در جلوی آن ذخیره کنیم که اصلاً توصیه نمی‌شود.
  • راه دوم برای ذخیره username و password استفاده از Environment variable ها هستش ولی سومین و بهترین راه ست کردن SSH key هست که مثالش هم در پایین براتون میارم

ssh-copy-id /home/alireza/.ssh/key.pub 192.168.1.1

بعد از set کردن host ها میتوانیم با استفاده از دستور ping مطمِن شویم که ارتباط به درستی صورت خواهد گرفت

ansible all -i inventory.yml -m ping

ماژول pre_tasks

ماژول pre_tasks وظایفی هستند که قبل از اجرای پلی‌ها (plays) اجرا می‌شوند. این بلاک‌ها معمولاً برای انجام چک‌ها یا اعتبارسنجی‌هایی قبل از اجرای پلی‌ها مورد استفاده قرار می‌گیرند. به عبارت دیگر، اگر می‌خواهید قبل از اجرای پلی‌ها چیزی را به عنوان پیش‌نیاز یا اعتبارسنجی اجرا کنید، از pre_tasks استفاده کنید.

همچنین، post_tasks نیز وظایفی هستند که پس از اجرای پلی‌ها اجرا می‌شوند. این بلاک‌ها معمولاً برای اعتبارسنجی‌ها یا تأیید نتایج پس از اجرای پلی‌ها مورد استفاده قرار می‌گیرند. به عبارت دیگر، اگر می‌خواهید پس از اجرای پلی‌ها چیزی را اجرا کنید (مثلاً بررسی نتایج یا ارسال اطلاعیه‌ها)، از post_tasks استفاده کنید.

در ادامه سعی داریم چند مثال از استفاده‌های مهم ansible براتون بزنم

اولین مثال کاربردی آپدیت کردن پکیج‌ها و دانلود پکیج‌های مورد نیاز و استفاده از آن و پاک کردن پکیج‌های غیر ضروری است که در آن از yumو get_urlو unarchive استفاده میکنیم

https://github.com/alireza-frj4/Ansible-my-example.git

در این repository در فایل Update-Install-Delete براتون گذاشتم

به یاد داشته باشید اگر distribution مختلفی در group host داشتیم میتوانیم از when برای تعیین کردن استفاده از yum or apt استفاده کنیم.

دومین مثال کاربردی استفاده از systemctl است

در ansible حتما به manage کردن service بر خواهیم خورد که به سادگی می توانیم عمل start and stop and enable انجام دهیم و همچنین مثالی از آن را براتون گذاشتم

https://github.com/alireza-frj4/Ansible-my-example.git

در این repository در فایل Systemctl براتون گذاشتم

سومین و مهمترین مثال کاربردی users management است

https://github.com/alireza-frj4/Ansible-my-example.git

در این repository در فایل users براتون گذاشتم

ولی نکته مهمی که دارد باید password به صورت hash شده قرار دهیم و برای این کار از command زیر استفاده می کنیم.

ansible all -i localhost, -m debug -a "msg={{ 'securepassword' | password_hash('sha512', 'mysecretsalt') }}"

که securepassword, پسورد ما است و mysecretsalt برای امن شدن بیشتر است و SHA-512 (Secure Hash Algorithm 512) هم cryptographic hash function است.

ممنون که تا اینجا مقاله همراهم بودید و امیدوارم براتون مفید بوده باشد.

ansibleplaybookdevopssoftware engineeringautomation
به دنبال علم
شاید از این پست‌ها خوشتان بیاید