تولید کانفیگ های SSH از روی SaltStack

با استفاده از این پروژه می توانید از روی فایل های SaltStack یک کانفیگ SSH بسازید

گیت هاب




GitHub release Pylint CodeQL

این پروژه یک 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 رو به صورت خودکار تولید کنید.

نحوه استفاده

جهت اجرا به متغیر های زیر نیاز دارید :

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 تنظیم کنید. جهت اطلاعات بیشتر به این پروژه مراجعه کنید.