Cdist - Cdist

cdist
Cdist logo.svg
Түпнұсқа автор (лар)Нико Шоттелиус, Стивен Армстронг[1]
Бастапқы шығарылым2010; 10 жыл бұрын (2010)
Тұрақты шығарылым
5.0.0 / 5 мамыр 2019 ж; 18 ай бұрын (2019-05-05)
Репозиторий Мұны Wikidata-да өңдеңіз
ЖазылғанPython, Борн қабығы
Операциялық жүйеLinux, Unix тәрізді
Түрібағдарламалық жасақтаманың конфигурациясын басқару
ЛицензияGNU жалпы қоғамдық лицензиясының 3 нұсқасы немесе одан кейінгі нұсқасы
Веб-сайтwww.cdi.st

cdist Бұл Тегін бағдарламалық жасақтаманың конфигурациясын басқару үшін құрал Unix тәрізді жүйелер. Ол басқарадытүйіндер аяқталды SSH пайдаланып Bourne Shell, және мақсатты түйіндерге қосымша бағдарламалық жасақтама орнатуды қажет етпейді.

Cdist конфигурация сценарийлерін жазу үшін негізгі тіл ретінде Bourne Shell-ді таңдап, мақсатты түйіндерге тәуелділікті қажет етпейтін конфигурацияны басқару жүйелерінен ерекшеленеді. Cdist ядросы жазылғанымен Python, аудармашы тек хост машинасында қажет, мақсатты түйіндер емес.

Даму

cdist дамыту 2010 жылы басталды ETH Цюрих andis белсенді дамуда[2] және оны негізінен Нико Шоттелиус пен Стивен Армстронг қолдайды.[3]CD-дің талқылауының негізгі бөлігі пошта тізімінде болады[4]және IRC каналында # жұлдыз Фринод желі. cdist Швейцарияның түрлі компанияларында қолданылады (мысалы ETH Цюрих[5] және OMA Browser жобасы),[6] АҚШ, Германия және Франция.

Ерекшеліктер

cdist - бұл тәуелділіктің нөлдік тәуелділікті басқару жүйесі: Ол үшін тек ssh және мақсатты хосттарда борнмен үйлесімді қабық қажет, олар көбіне әдепкі бойынша беріледі Unix тәрізді машиналар.[7] Осыған байланысты cdist конфигурацияны басқарудың басқа жүйелерін жүктеу үшін қолданыла алады.[8]

Орнату және конфигурация

cdist әдетте бума ретінде орнатылмайды (.deb немесе .rpm сияқты), бірақ арқылы бару.Барлық пәрмендер құрылған кассадан іске қосылады.Кез келген конфигурацияның кіру нүктесі cdist терминдерінде бастапқы манифест деп аталатын conf / manifest / init қабықшасы сценарийі болып табылады.[9]

Cdist-тің негізгі компоненттері функционалдылықты біріктіретін типтер деп аталады.[10]Түрлер мәні бойынша қандай типтерде typereuses болатынын және мақсатты хостта орындалатын қандай код жасалатынын анықтайтын бірнеше сценарийлерден тұрады.

Сәулет

cdist екі компонентке бөлінеді:

  • Өзек
  • Конфигурация сценарийлері

Негізгі

Cdist өзегі оқудың конфигурациясын басқарады және қашықтағы хосттармен байланысады. Ansible сияқты, cdist конфигурацияның өзгеруін қолдану үшін «push» моделін қолданады: «хост» машинасындағы cdist процесі қашықтағы түйіндердің кез келген санына SSH арқылы қосылады, содан кейін сол түйіндерде конфигурация жаңартуларын орындайды. Cdist конфигурациялауға кететін уақытты қысқарту үшін бірнеше хосттарды параллель теңшей алады.[11]

Конфигурация

Конфигурация сценарийлері мақсаттардың қалай теңшелетінін анықтайды. Олар әдетте жазылған Bourne Shell және тұрады

  • Бастапқы манифест, кіру нүктесі барлық конфигурация басталатын жерде. Әдетте бұл сценарий мақсатты түйін туралы ақпаратты қолданады, мысалы, хост атауы және амалдық жүйе, нақты конфигурацияны орындайтын басқа нақты сценарийлерге қоңырау шалу үшін.
  • Global Explorers, мақсатты жүйе туралы ақпараттар беретін шағын сценарийлер (мысалы, амалдық жүйе, init жүйесі және хост атауы)
  • Конфигурацияның қайталанатын бөліктерін сипаттайтын типтер. Түрлер манифесттерге негізделген және мақсатты машиналарда кодты іске қосудың жалғыз әдісі болып табылады. «Түр» атауы объектіге бағытталған тілде «класс» аналогы ретінде айтылады, өйткені тип оған қандай параметрлер берілгеніне байланысты бірнеше «объектілерге» айналуы мүмкін.[12] Мысалы, __файл түрін бірнеше «объектілерге» айналдыруға болады, олардың әрқайсысы белгілі бір файлдың құрылуын білдіреді. Ansible-дің «рөлдері» cdist типтерінің баламасы болып табылады. Түрлер көптеген компоненттерден тұруы мүмкін:
    • Нысан идентификаторы: тип объектке айналғанда, оған бірегей объект идентификаторы беріледі. Бір типті бірдей идентификатормен екі рет құру мүмкін емес. Бұл идентификатор UUID сияқты кездейсоқ емес, керісінше типке қатысты мағынасы бар бірегей идентификатор. Мысалы, __файл типтің идентификаторы - файлға баратын абсолютті жол.
    • Параметрлер: көптеген типтерді объект идентификаторы толық сипаттай алмайды және параметрлер түрінде қосымша ақпарат алады. The __файл түрін алады топ Unix тобының қай файлға иелік ететінін көрсететін параметр.
    • Зерттеушілер: Жоғарыда сипатталған ғаламдық зерттеушілерден басқа, типтердің кейде қашықтағы машинадан белгілі бір типтегі ақпараттарды жинайтын өзіндік зерттеушілері болады. The __файл типі құрылған файлдың бар-жоғын анықтау үшін зерттеушілерді қолданады. Кейде ол бұл ақпаратты файлды құрып жіберіп алу үшін қолданады.
    • Манифест: Манифест типі басқа түрлерді қолдана алады, бұл кодты қайта қолдануды жеңілдетеді.
    • Gencode сценарийлері: Gencode-қашықтан сценарий - мақсатты түйіндердің конфигурациясын нақты жаңартудың негізгі әдісі. Gencode-қашықтан жергілікті машинада жұмыс істейді, бірақ оның стандартты шығу қашықтағы құрылғыға жіберіліп, қабықша сценарийі ретінде орындалады. Сондай-ақ жиі қолданылмайды жергілікті код жергілікті іске қосылатын кодты шығаратын сценарий.

Shell іс жүзінде cdist конфигурация сценарийлерін жазуға арналған тіл, бірақ сценарийлердің көпшілігі кез-келген тілде жазылуы мүмкін, егер оларда қолайлы болса shebang сызығы. Shell сценарийі қоршаған ортаның айнымалыларына қол жеткізу, файлдарды оқу және жүйелік командаларды орындау қаншалықты қарапайым болғандықтан қолайлы.

Конфигурация тілі

Пайдаланушының барлық конфигурацияланатын бөліктері манифесттерде немесе қабықша сценарийлері болып табылатын gencode-сценарийлерінде қамтылған, Shell сценарийлері таңдалған, өйткені Unix жүйесінің әкімшілері қабықша сценарийлерін оқу мен жазуды жақсы біледі. Сонымен қатар, қабық әдетте ықтимал мақсатты жүйелерде қол жетімді, осылайша қосымша бағдарламалық жасақтама орнату қажеттілігін болдырмайды («нөлдік тәуелділіктер»).

cdist оның конфигурациясын бастапқы манифесттен оқиды (conf / manifest / init), онда хосттардың типтік типтері бейнеленген:

іс "$ __ target_host" myhostname)        __package zsh - мемлекет қатысады __addifnosuchline / tmp / cdist-welcome --line «Cdist-ке қош келдіңіз»    ;;esac

Cdist-тегі типтерді қолданған кезде олар манифесттегі кәдімгі бағдарламалар сияқты аталады және жетілдірілген параметрлерді талдаумен қатар stdin-ден оқуды қолдана алады:

# Әдепкі файлды беріңіз, бірақ пайдаланушы оны өзгертсін__file /home/frodo/.bashrc - қайнар көзі «/etc/skel/.bashrc» \   - мемлекет бар \   - иесі frodo --mode 0600# Stdin файлының мазмұнын алыңыз__file / tmp / Any - иесінің түбірі - group root - mode 644 --көз - << ДАЙЫН/ Tmp / кез келген нәрсеге арналған мазмұнБІРДІ

Тәуелділік орнату арқылы анықталады талап ету қоршаған орта айнымалысы:

      __directory / tmp / foobar талап етеді = «__ каталог // tmp / foobar» __ файл / tmp / foobar / baz

Түрлердегі жолдар мен файлдарға қол жетімділік қоршаған ортаның айнымалылары сияқты беріледі $ __ объект.

Ұқсас бағдарламалық жасақтама

Жауапты, cdist сияқты, түйіндерді конфигурациялау үшін агентсіз push моделін қолданады.[7] Алайда, Әдетте, талап етіледі Python оның мақсаттары бойынша, ал cdist жоқ.[13] Ansible декларативті YAML негізінде жазылған рөлдер мен Python-да жазылған модульдер арасындағы айырмашылықты жасайды. Cdist-те тек модульдер мен рөлдердің мақсаттарына қызмет ететін және көбінесе Bourne Shell-де жазылған «түрлері» бар. Cdist тәсілі жақсырақ болуы мүмкін, өйткені Shell бұрын ешқашан конфигурацияны басқару жүйесін қолданбаған көптеген жүйелік әкімшілерге таныс, бірақ Ansible-дің декларативті тілі, әрине, оқылымды әрі орынды.

Әдебиеттер тізімі

  1. ^ Шарма, Ришабх; Сони, Митеш (15 наурыз 2015). Оқу аспазы. Пакт. 10, 17-18 беттер. ISBN  978-1783285211.
  2. ^ [1][өлі сілтеме ]
  3. ^ «ungleich / cdist: cdist конфигурациясын басқару». GitHub.com. Мұрағатталды түпнұсқасынан 2015-07-05 ж. Алынған 2016-04-10.
  4. ^ «Мұрағатталған көшірме». Архивтелген түпнұсқа 2011 жылдың 21 қарашасында. Алынған 6 маусым, 2012.CS1 maint: тақырып ретінде мұрағатталған көшірме (сілтеме)
  5. ^ «Мұрағатталған көшірме». Архивтелген түпнұсқа 2013-01-15. Алынған 2012-06-08.CS1 maint: тақырып ретінде мұрағатталған көшірме (сілтеме)
  6. ^ «Мұрағатталған көшірме». Архивтелген түпнұсқа 2012 жылғы 17 тамызда. Алынған 26 маусым, 2012.CS1 maint: тақырып ретінде мұрағатталған көшірме (сілтеме)
  7. ^ а б Торбернцсон, Ким; Ридин, Ильва (маусым 2014). Конфигурацияны басқаруды зерттеу - бұлтты ортада бағдарламалық қамтамасыз етуді орналастыру және конфигурациялау үшін жүйелік шешімдер (PDF) (Тезис). Упсала университеті. 8, 27, 31, 42 беттер. Мұрағатталды (PDF) түпнұсқадан 2018 жылғы 22 қарашада.
  8. ^ «Google Groups». Groups.google.com. Алынған 2016-04-10.
  9. ^ Kruse, Christian (2016). «Cdist көмегімен конфигурацияны автоматты түрде орналастыру». WWWTech. Мұрағатталды түпнұсқадан 2018 жылғы 22 қарашада. Алынған 22 қараша 2018.
  10. ^ «cdist-тип (7)». Nico.schottelius.org. Архивтелген түпнұсқа 2016-03-03. Алынған 2016-04-10.
  11. ^ Безроуков, Николай. «cdist». Софтанпанорама. Мұрағатталды түпнұсқадан 2017 жылғы 8 шілдеде. Алынған 22 қараша 2018.
  12. ^ «13. Манифест - cdist 4.10.6-6-g61ac4a26 құжаттамасы». www.nico.schottelius.org. Алынған 2019-03-26.
  13. ^ «Орнату нұсқаулығы». Жауапты. Басқарылатын түйінге қойылатын талаптар. Мұрағатталды түпнұсқасынан 2018-08-04. Алынған 22 қараша 2018.

Сыртқы сілтемелер