Ansible installieren
Nach einem Update des apt- Repositories wird zunächst pip installiert
apt update apt install python3-pip
pip3 Version prüfen
ansible@server:~$ pip3 --version pip 18.1 from /usr/lib/python3/dist-packages/pip (python 3.7) ansible@server:~$
pyhton Version prüfen
Python 3.7.3 ansible@server:~$
ansible mit pip3 installieren
pip3 install ansible
ansible Version prüfen
ansible@server:~$ ansible --version ansible 2.10.4 config file = /etc/ansible/ansible.cfg configured module search path = ['/home/atom/.ansible/plugins/modules', '/usr/share/ansible/plugins/modules'] ansible python module location = /usr/local/lib/python3.7/dist-packages/ansible executable location = /usr/local/bin/ansible python version = 3.7.3 (default, Jul 25 2020, 13:03:44) [GCC 8.3.0] ansible@server:~$
nano für YAML konfigurieren, falls noch keine syntax- Datei vorhanden
ls /usr/share/nano/
YAML syntax Datei erstellen
nano /usr/share/nano/yaml.nanorc
# Supports YAML files syntax "YAML" ".ya?ml$" header "^(---|===)" "%YAML" ## Keys color magenta "^\s[$A-Za-z0-9_-]+\:" color brightmagenta "^\s@[$A-Za-z0-9_-]+\:" ## Values color white ":\s.+$" ## Booleans icolor brightcyan " (y|yes|n|no|true|false|on|off)$" ## Numbers color brightred " [[:digit:]]+(.[[:digit:]]+)?" ## Arrays color red "[" "]" ":\s+[|>]" "^\s*- " ## Reserved color green "(^| )!!(binary|bool|float|int|map|null|omap|seq|set|str) " ## Comments color brightwhite "#.*$" ## Errors color ,red ":\w.+$" color ,red ":'.+$" color ,red ":".+$" color ,red "\s+$" ## Non closed quote color ,red "['\"][^['\"]]*$" ## Closed quotes color yellow "['\"].*['\"]" ## Equal sign color brightgreen ":( |$)"
Verzeichnisstruktur und Berechtigungen erstellen
cd ~ mkdir playbooks && mkdir playbooks/inventory && mkdir playbooks/groupvars && cd ~/playbooks
ansible konfigurieren
nano ~/playbooks/ansible.cfg
[defaults] inventory = hosts host_key_checking = False
ansible hosts konfigurieren
[hosts] server1.myplaylab.net server2.myplaylab.net [hosts:vars] ansible_python_interpreter=/usr/bin/python3
update.yml playbook erstellen (Quelle)
nano ~/playbooks/update.yml
---
- hosts: hosts
become: true
become_user: root
tasks:
- name: Update apt repo and cache on all Debian/Ubuntu boxes
apt: update_cache=yes force_apt_get=yes cache_valid_time=3600
- name: Upgrade all packages on servers
apt: upgrade=dist force_apt_get=yes
- name: Check if a reboot is needed on all servers
register: reboot_required_file
stat: path=/var/run/reboot-required get_md5=no
- name: Reboot the box if kernel updated
reboot:
msg: "Reboot initiated by Ansible for kernel updates"
connect_timeout: 5
reboot_timeout: 300
pre_reboot_delay: 0
post_reboot_delay: 30
test_command: uptime
when: reboot_required_file.stat.exists
Install Ansible on Debian
Sample Ansible Setup
Ansible security best practices
Ansible and Ansible Tower: best practices from the field