7 дневних задатака сисадмина за аутоматизацију помоћу Ансибле-а

Ансибле, бесплатни пројекат отвореног кода заснован на Питхон-у компаније Ред Хат, је популарна платформа за управљање конфигурацијом и ИТ аутоматизацију.

Мулти-платформа је и може да ради са већином модерних оперативних система, укључујући Линук, Виндовс и Мац. Подржава декларативни језик написан у ИАМЛ или ИАМЛ није маркуп језику за опис конфигурације система.

Ансибле је, заједно са другим модерним платформама за управљање конфигурацијом, направио револуцију у ИТ аутоматизацији и индустријским стандардима. Алати за управљање конфигурацијом постали су део ДевОпс скупа алата и неодвојиви су део животног циклуса сваког модерног ИТ процеса. Ово је применљиво за свако модерно инфраструктурно окружење, било да је изграђено на локалном, хибридном или клауд окружењу. Не само за ДевОпс, већ Ансибле такође може помоћи у аутоматизацији многих свакодневних задатака које обавља администратор система.

Једна од предности коришћења Ансибле-а је то што је без агента и не треба много за почетак, осим ССХ приступа циљној машини и подржане верзије Питхон-а, која је већ подразумевано инсталирана на већини модерних оперативних система. Такође, пошто је то лаган алат, може се применити и користити са наслеђем иновативних система.

Употреба Ансибле-а

Оркестрација

Ансибле је алат по избору за оркестрирање различитих задатака системске администрације и примене. Приручници омогућавају коришћење истих токова рада оркестрације у различитим пројектима, а конфигурациони подаци засновани на ИАМЛ-у омогућавају складиштење и верзионисање ваше инфраструктуре у Гит репозиторијуму или било којој подржаној платформи за контролу верзија.

Примена апликације

Било да се ради о једноставној апликацији кода у неколико редова или о тешкој примени на више нивоа, Ансибле омогућава аутоматизацију животног циклуса примене апликације од краја до краја.

Сигурност и усклађеност

Ансибле такође може помоћи да се осигура да ваши системи буду заштићени у складу са смерницама ваше организације и усклађени са индустријским стандардима. Може да ради на хиљадама сервера, генерише ревизију и поправи те безбедносне рупе, дајући администратору потпуну контролу над окружењем.

  Како да подесите Зоом састанак

Погледајмо сада неке од уобичајених задатака Сисадмина које можете аутоматизовати помоћу Ансибле-а.

Копирајте датотеке са локалног или удаљеног система

Као систем администратор, уобичајено је копирати датотеке из једног директорија у други. Конфигурационе датотеке често треба да се копирају на удаљене сервере, или понекад морамо да преместимо датотеке са једне удаљене локације на другу.

Ансибле цопи модул може вам помоћи да обавите ове задатке у свесци.

Рутински задатак за администратора система је да зна статус управљаних сервера и да обавља унапред дефинисане радње у складу са смерницама организације. Један такав задатак је да се зна време непрекидног рада сервера. Са Ансибле-ом, лако можемо да преузмемо вредности непрекидног рада и одштампамо их заједно. Пример за копирање нтп конфигурације са локалног на удаљени сервер помоћу модула за копирање је приказан испод:

---
- 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

У горњем примеру, ССХ услуга ће бити поново покренута док се следећа зауставља СССД услуга. хттпд демон се покреће при крају. Како је Ансибле идемпотентан, било која услуга која је већ покренута или заустављена неће бити промењена док поновно покретање увек мења стање услуге. Не заборавите да проверите име услуге јер различите дистрибуције Линука користе друга имена чак и за исту услугу као што су ссх и ссхд.

  Како избрисати Гоогле налог из Цхроме-а

Резиме 👨‍💻

Ансибле олакшава живот администратору система омогућавајући вам да извршавате поновљене и дуготрајне задатке на аутоматизован начин и смањујући људске грешке и труд. Даље, омогућиће складиштење конфигурационих података у централном репозиторијуму кода као што је Гит, омогућавајући вишеструким корисницима да сарађују и прегледају сваку активност.

Да бисте прочитали више о Ансиблеу и његовом великом скупу модула, погледајте његов документацију.