تذکر:این مقاله برای کسانی است که آشنایت سطحی با ansible دارند
کاربردیترین و مهمترین نکته در استفاده با hosts, ansible هست که چگونه آنها را set کنیم و دسترسی را برای ansible به hosts آسان کنیم
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 است.
ممنون که تا اینجا مقاله همراهم بودید و امیدوارم براتون مفید بوده باشد.