Ансибле, бесплатни пројекат отвореног кода заснован на Питхон-у компаније Ред Хат, је популарна платформа за управљање конфигурацијом и ИТ аутоматизацију.
Мулти-платформа је и може да ради са већином модерних оперативних система, укључујући Линук, Виндовс и Мац. Подржава декларативни језик написан у ИАМЛ или ИАМЛ није маркуп језику за опис конфигурације система.
Ансибле је, заједно са другим модерним платформама за управљање конфигурацијом, направио револуцију у ИТ аутоматизацији и индустријским стандардима. Алати за управљање конфигурацијом постали су део ДевОпс скупа алата и неодвојиви су део животног циклуса сваког модерног ИТ процеса. Ово је применљиво за свако модерно инфраструктурно окружење, било да је изграђено на локалном, хибридном или клауд окружењу. Не само за ДевОпс, већ Ансибле такође може помоћи у аутоматизацији многих свакодневних задатака које обавља администратор система.
Једна од предности коришћења Ансибле-а је то што је без агента и не треба много за почетак, осим ССХ приступа циљној машини и подржане верзије Питхон-а, која је већ подразумевано инсталирана на већини модерних оперативних система. Такође, пошто је то лаган алат, може се применити и користити са наслеђем иновативних система.
Преглед садржаја
Употреба Ансибле-а
Оркестрација
Ансибле је алат по избору за оркестрирање различитих задатака системске администрације и примене. Приручници омогућавају коришћење истих токова рада оркестрације у различитим пројектима, а конфигурациони подаци засновани на ИАМЛ-у омогућавају складиштење и верзионисање ваше инфраструктуре у Гит репозиторијуму или било којој подржаној платформи за контролу верзија.
Примена апликације
Било да се ради о једноставној апликацији кода у неколико редова или о тешкој примени на више нивоа, Ансибле омогућава аутоматизацију животног циклуса примене апликације од краја до краја.
Сигурност и усклађеност
Ансибле такође може помоћи да се осигура да ваши системи буду заштићени у складу са смерницама ваше организације и усклађени са индустријским стандардима. Може да ради на хиљадама сервера, генерише ревизију и поправи те безбедносне рупе, дајући администратору потпуну контролу над окружењем.
Погледајмо сада неке од уобичајених задатака Сисадмина које можете аутоматизовати помоћу Ансибле-а.
Копирајте датотеке са локалног или удаљеног система
Као систем администратор, уобичајено је копирати датотеке из једног директорија у други. Конфигурационе датотеке често треба да се копирају на удаљене сервере, или понекад морамо да преместимо датотеке са једне удаљене локације на другу.
Ансибле цопи модул може вам помоћи да обавите ове задатке у свесци.
Рутински задатак за администратора система је да зна статус управљаних сервера и да обавља унапред дефинисане радње у складу са смерницама организације. Један такав задатак је да се зна време непрекидног рада сервера. Са Ансибле-ом, лако можемо да преузмемо вредности непрекидног рада и одштампамо их заједно. Пример за копирање нтп конфигурације са локалног на удаљени сервер помоћу модула за копирање је приказан испод:
--- - hosts: all gather_facts: no become: yes tasks: - name: Copy a new ntp configuration file and back up the original, if it differs copy: src: ./ntp.conf dest: /etc/ntp.conf owner: root group: root mode: '0644' backup: yes
Конфигуришите додатне црон послове
Постављање заказаних послова за обављање рутинских задатака део је управљања било којим сервером. Можете аутоматски да закажете аутоматско прављење резервних копија, закрпе, ревизију итд. у одређено доба дана или месеца и остављајући продуктивно време за вашу употребу.
црон је један такав алат у Линуку који подржава заказивање, а Ансибле вам може помоћи да додате или измените те послове. Као пример, у наставку се приказује како можете лако да поставите рсинц посао као роот на неким или свим вашим серверима користећи Ансибле.
--- - hosts: all gather_facts: no become: yes tasks: - name: Deploy cron job cron: name: "Set rsync job" user: root minute: "5" hour: "4" job: "rsync -avz /path/to/folder1 /path/to/folder1 2>&1"
Управљајте дисковима и системима датотека
Ансибле се може користити за управљање дисковима, распоредима партиција, системима датотека и монтирањима, укључујући /етц/фстаб на Линук серверима. Различити Ансибле модул то омогућава. Ево примера који креира партицију на диску од 100 ГБ, форматира је са ект4 датотечним системом, креира нови директоријум за монтирање партиције и коначно га монтира у дати директоријум. Унос у /етц/фстаб се такође креира путем привременог или трајног монтирања у зависности од опција модула.
--- - hosts: all gather_facts: no become: yes tasks: - name: Create a partition parted: device: /dev/sdb number: 1 part_end: "100%" state: present - name: Format new partition filesystem: fstype: ext4 dev: /dev/sdb1 - name: Create mount directory file: path: /data state: directory - name: Mount partition mount: path: /data src: /dev/sdb1 fstype: ext4 state: mounted
Прикупите евиденцију сервера
Чување дневника на погодном месту је понекад од суштинског значаја за безбедност, ревизију, као и анализу. Ансибле омогућава прикупљање дневника са различитих сервера у окружењу вашег предузећа и лако их чува на вашој дефинисаној локацији. Ево упутства да то постигнете:
--- - hosts: all gather_facts: no become: yes tasks: - name: Find logs find: paths: /var/log/ patterns: '*.log' recurse: yes register: _logs - name: Fetch logs fetch: src: "{{ item.path }}" dest: /tmp/logs with_items: "{{ _logs.files }}"
Инсталирајте или уклоните пакете и софтвер
Често се захтева да се пакети инсталирају на захтев корисника или као део иницијалне изградње сервера. Можда ћемо такође морати да уклонимо одређене пакете који више нису потребни или имају неке критичне грешке итд. Ансибле вам омогућава да лако инсталирате или уклоните пакете без муке да идете на сваки сервер и покрећете ручне команде. Ево примера који показује инсталацију и уклањање по једног пакета за Убунту и РХЕЛ/ЦентОС базиране Линук сервере.
--- - hosts: ubuntu gather_facts: no tasks: - name: Install lsof utility apt: pkg: lsof state: latest sudo: yes - name: Remove ARP Scan utility apt: pkg: arp-scan state: absent sudo: yes --- - hosts: centos gather_facts: no tasks: - name: Install lsof utility yum: pkg: lsof state: latest sudo: yes - name: Remove ARP Scan utility yum: pkg: arp-scan state: absent sudo: yes
Управљање корисницима
Корисници и групе чине основну структуру око које системи засновани на Уник/Линук-у управљају приступом и дозволама. У великој организацији, управљање корисницима и групама може бити велики изазов упркос аутоматизацији која подржава окружење.
Уз Ансибле, администратор система има одличан алат за креирање, модификовање и брисање корисника и група са свим различитим могућностима које подржава ОС.
Ево једноставног примера који показује креирање и брисање корисника и група користећи Ансибле. Након што се овај приручник покрене, циљни сервери ће имати креиране групе А и групе Б са датим ГИД-овима, док ће корисник1 бити уклоњен, ако постоји. Нови корисник без љуске биће креиран као корисник2 са датим УИД-ом, додељеним групама и закључаном лозинком.
--- - hosts: all gather_facts: no become: yes tasks: - group: gid: 12310 name: groupA state: present - group: gid: 12311 name: groupB state: present - user: name: user1 state: absent - user: name: user2 uid: 12427 shell: /bin/false password_lock: yes groups: groupA, groupB
Управљање услугама
Услуге су процесни демони који раде у позадини и служе неким услугама као што је ссхд који обезбеђује ССХ повезивање итд. Користећи Ансибле, можете управљати системским и корисничким услугама, као што су њихово покретање, заустављање и поновно покретање. Ево примера свеске да то демонстрира:
--- - hosts: all gather_facts: no become: yes tasks: - name: Restart ssh daemon service: name: ssh state: restarted - name: Restart sssd daemon service: name: sssd state: stopped - name: Restart httpd daemon service: name: httpd state: started
У горњем примеру, ССХ услуга ће бити поново покренута док се следећа зауставља СССД услуга. хттпд демон се покреће при крају. Како је Ансибле идемпотентан, било која услуга која је већ покренута или заустављена неће бити промењена док поновно покретање увек мења стање услуге. Не заборавите да проверите име услуге јер различите дистрибуције Линука користе друга имена чак и за исту услугу као што су ссх и ссхд.
Резиме 👨💻
Ансибле олакшава живот администратору система омогућавајући вам да извршавате поновљене и дуготрајне задатке на аутоматизован начин и смањујући људске грешке и труд. Даље, омогућиће складиштење конфигурационих података у централном репозиторијуму кода као што је Гит, омогућавајући вишеструким корисницима да сарађују и прегледају сваку активност.
Да бисте прочитали више о Ансиблеу и његовом великом скупу модула, погледајте његов документацију.