Erinevus lehekülje "Ansible" redaktsioonide vahel

Allikas: Kuutõrvaja
133. rida: 133. rida:
  
 
  # ansible-doc -l
 
  # ansible-doc -l
 +
 +
Näiteks saab importida mooduli abil postgresi dump faili
 +
 +
---
 +
- hosts: postgres-server
 +
  tasks:
 +
  - name: Restore db server
 +
    postgresql_db: name=example state=import target=/example.sql
  
 
https://github.com/randohinn/KnowHow/blob/master/docs/Vorgurakendused/ansible.rst
 
https://github.com/randohinn/KnowHow/blob/master/docs/Vorgurakendused/ansible.rst

Redaktsioon: 20. august 2017, kell 13:20

Install

# apt-get install software-properties-common ansible

Kõisse masinaisse tuleb paigaldada SSH võti

# ssh-keygen -t rsa

Kliendid vaja defineerida

Kliendi defineerimine toimub failis /etc/ansible/hosts näiteks lisame ühe kliendi gruppi test

[test]
10.20.0.20

Neid gruppe võib teha terve hulga, nt kõik masinad ära jaotada opsüsteemide järgi

[debian]
vm1
vm2
vm3

[fedora]
netflix

[centos]
confluence
vm-server1
gitlab

[ubuntu]
trusty-mirror
media-centre
nas

Käsurealt kasutamine

Kõikide nodede korrasoleku kontroll

# ansible all -m ping

Küsime nodedelt hostname käsku

# ansible -m shell -a "hostname" all

Samamoodi võib käsurealt otse teha ka jõhkramaid toiminguid, nt midagi installida

# ansible all -s -m shell -a 'apt-get install nginx'

Playbook

Playbookid on .yml failid, kus defineeritakse Ansible tegevused ja tegevuste järjekord. Näiteks lihtne playbook mis paigaldab ngxinxi apt moodulit kasutades ning paneb selle tööle.

---
- hosts: debian
  tasks:
    - name: Installs nginx web server
      apt: pkg=nginx state=installed update_cache=true
      notify:
        - start nginx

  handlers:
    - name: start nginx
      service: name=nginx state=started

Nende käivitamiseks

# ansible-playbook test.yml


Keerukam lahendus, mis juba lisaks paigaldab vaikimisi nginx konfi ja tõmbab alla ka gitist veebiserveri sisu

---
- hosts: debian
  sudo: yes
  
  tasks: 

  - name: paigaldame nginx
    apt: name=nginx state=installed update_cache=yes

  - name: loome nginxile konfiguratsiooni
    template: src=templates/nginx.conf.j2 dest=/etc/nginx/nginx.conf
    notify: restart nginx

  - name: paigaldame veebiserverisse sisu
    git: repo=https://github.com/jweissig/episode-47.git
         dest=/usr/share/nginx/html/
         version=release-0.01

  - name: start
    service: name=nginx state=started

  handlers:

  - name: restart nginx
    service: name=nginx state=restarted

Kolmas näide

---
- hosts: linode
  remote_user: yourusername
  become: yes
  become_method: sudo
  tasks:
    - name: "Install Apache, MySQL, and PHP5"
      apt: name=Mall:Item state=present
      with_items:
        - apache2
        - mysql-server
        - python-mysqldb
        - php5
        - php-pear
        - php5-mysql

    - name: "Turn on Apache and MySQL and set them to run on boot"
      service: name=Mall:Item state=started enabled=yes
      with_items:
        - apache2
        - mysql

    - name: Create a test database
      mysql_db: name=testDb
                state=present

   - name: Create a new user for connections
     mysql_user: name=webapp 
                 password=mypassword 
                 priv=*.*:ALL state=present 

Ansible sisaldab lisaks suurt hulka mooduleid praktiliselt kõige tegemiseks. Moodulite nimekirja näeb

# ansible-doc -l

Näiteks saab importida mooduli abil postgresi dump faili

---
- hosts: postgres-server
  tasks:
  - name: Restore db server
    postgresql_db: name=example state=import target=/example.sql

https://github.com/randohinn/KnowHow/blob/master/docs/Vorgurakendused/ansible.rst

https://github.com/asjalik/ansible

http://docs.ansible.com/ansible/latest/proxmox_module.html

http://docs.ansible.com/ansible/latest/mysql_db_module.html