تولید کانفیگ های SSH از روی SaltStack
با استفاده از این پروژه می توانید از روی فایل های SaltStack یک کانفیگ SSH بسازید
گیتهاب
- سال طراحی : 1401
- فریمورک / زبان برنامه نویسی : Python
- تکنولوژی ها : JSON - YAML - ...
- متن باز : بله
این پروژه یک Parser مخصوص برای SaltStack بوده که با استفاده از اون میتونید فایل های کانفیگ مربوط به SSH تولید کنید.
برای مثال در پروژه SaltStack شما لیست سرور های موجود در Pillar چنین ساختاری خواهند داشت :
servers:
lab-kube-1:
main_ip: XXX.XXX.XXX.XXX
...
lab-kube-2:
main_ip: XXX.XXX.XXX.XXX
...
lab-kube-3:
main_ip: XXX.XXX.XXX.XXX
...
lab-kube-4:
main_ip: XXX.XXX.XXX.XXX
...
...
در صورتی که تعداد این سرور ها زیاد باشه ٬ پس از هربار ویرایش یا اضافه شدن سرور جدید باید فایل کانفیگ SSH رو سمت کلاینت های خودمون ویرایش کنیم که تجربه ثابت کرده این مورد واقعا عذاب الهی به حساب میاد 😃
با استفاده از این پروژه میتونید فایل کانفیگ SSH رو به صورت خودکار تولید کنید.
نحوه استفاده
جهت اجرا به متغیر های زیر نیاز دارید :
- آدرس فایل سرور ها
- آدرس فایل خروجی
- پورت SSH
- نام کاربری SSH
- نام محیط مورد نظر - برای مثال Staging/Production
python main.py <servers.sls> <output> <ssh port> <ssh user> <mode>
باقی تنظیمات ثانویه مستقیما در فایل
main.py
قرار دارند.
مثال
python main.py /Salt/pillar/dev/servers.sls out.txt 22 arash Staging
خروجی شما چنین چیزی خواهد بود :
#------- Staging Servers ------#
Host lab-kube-1
HostName XXX.XXX.XXX.XXX
Port 22
User arash
IdentitiesOnly yes
IdentityAgent ~/.gnupg/S.gpg-agent.ssh
IdentityFile ~/.ssh/id_rsa_yubikey.pub
Host lab-kube-2
HostName XXX.XXX.XXX.XXX
Port 22
User arash
IdentitiesOnly yes
IdentityAgent ~/.gnupg/S.gpg-agent.ssh
IdentityFile ~/.ssh/id_rsa_yubikey.pub
همچنین در کنار فایل خروجی یک فایل با نام ip-list.json
نیز تولید میشه که شامل لیست آی پی ها به صورت JSON خواهد بود. از این فایل می تواندی بعدا جهت مصارف دیگری استفاده داشته باشید.
برای مثال آن ها را در WireGuard تنظیم کنید. جهت اطلاعات بیشتر به این پروژه مراجعه کنید.