Erinevus lehekülje "Ansible" redaktsioonide vahel
96. rida: | 96. rida: | ||
- name: restart nginx | - name: restart nginx | ||
service: name=nginx state=restarted | service: name=nginx state=restarted | ||
+ | |||
+ | --- | ||
+ | - hosts: linode | ||
+ | remote_user: yourusername | ||
+ | become: yes | ||
+ | become_method: sudo | ||
+ | tasks: | ||
+ | - name: "Install Apache, MySQL, and PHP5" | ||
+ | apt: name={{ 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={{ 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 sisaldab lisaks suurt hulka mooduleid praktiliselt kõige tegemiseks. Moodulite nimekirja näeb |
Redaktsioon: 20. august 2017, kell 12:58
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
--- - 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
https://github.com/randohinn/KnowHow/blob/master/docs/Vorgurakendused/ansible.rst
https://github.com/asjalik/ansible