Professional Documents
Culture Documents
Dia 1 - Introducció A Ansible
Dia 1 - Introducció A Ansible
Ansible
Xavier Sala
Automatització de sistemes
Automatització de sistemes
Atureu-me
si em passo!
pregunteu
el que no sapigueu!
Programa
Dia 2: Playbooks
Comprovar ús
de recursos
Aplicar
actualitzacions
Gestionar
usuaris i grups
Comprovar fitxers
de registre, logs
Copiar fitxers
quan tenim molts entre servidors
servidors s’ha de
poder Afegir
automatitzar aplicacions Reiniciar
servidors
Gestionar eines
de cron Clonar recursos
r
e , c o n figura
r
t a l· l a r, treu d ’equips
In s r u p s
n g
soft e r tasques
za
Realit istraci
ó
d ’a d m i n
es
t o m a titzad
au
n
e c u r sos e uinari
r r aq
copia ions de m
zac ic a cions
act ualit gar
a p l
m olts
s p l e e n
De
p id a ment alhora
rà mes
siste
Eines de gestió de la configuració
Estat
Hi ha d’haver Firefox instal·lat
Treballen
definint un
estat
Ja té
Firefox
Només actua si
l’estat no quadra
Operacions idempotents
Agent o Agentless
Sense agents
Fa servir
ZeroMQ
Funcionen
amb agents
Master
No necessita
cap servidor
Ansible
S’executa en
sistemes Unix i
pot administrar
Unix, Windows i
dispositius
o en màquines
virtuals, ...
Activar
Windows
Subsystem
for Linux
Instal·lar un Linux de la
Microsoft Store Preparat!
Quasi sempre fa
servir SSH
Servidors
Dispositius
Màquines
virtuals
Autenticació:
- Basic
- Certificat Estacions de
treball
- NTLM
- Kerberos
En Windows pot - CredSSP
fer servir SSH
però...
WinRM
Servidors
Win32-OpenSSH Dispositius
és Beta Màquines
virtuals
Configuració
configuració
d’usuari
.ansible.cfg
/etc/ansible/ansible.cfg
Executar comandes adhoc
màquina mòdul
Pong
Ping
localhost
màquina on
s’executarà
Pong
Ping
inventari
Ubuntet Ubuntot
Inventari
Un inventari és
RICHARD
una llista de
màquines
LINUS
richard.udg.edu
linus.udg.edu
gates.udg.edu
web1.udg.edu GATES
web2.udg.edu
web3.udg.edu
WEB1
WEB2
WEB3
Format INI
fitxer d’inventari
Ubuntet Ubuntot
Els hosts es poden RICHARD
agrupar
[linux]
richard.udg.edu
LINUS
linus.udg.edu
[windows]
gates.udg.edu GATES
[web]
web[1:3].udg.edu
WEB1
WEB2
WEB3
Podem fer servir
patrons
[linux]
richard.udg.edu
nom del fitxer
linus.udg.edu S’executa en les màquines d’inventari
del grup web
[windows]
gates.udg.edu
Pong
Pong Pong
gates
web2 web3
linus web1
richard
Per cada
host
[linux]
richard.udg.edu ansible_user=pep ansible_host=192.168.3.1
linus.udg.edu ansible_user=joan ansible_port=2022
[windows]
gates.udg.edu
[windows:vars]
ansible_connection=winrm
[all:vars]
ansible_ssh_private_key_file~=/home/usuari/ssh/id_ansible
[linux]
richard.udg.edu ansible_user=pep ansible_host=192.168.3.1
linus.udg.edu ansible_user=joan ansible_port=2022
[windows]
gates.udg.edu
[web]
web[1:3].udg.edu
[windows:vars]
ansible_user=u3000666@UDG.EDU
Es pot ansible_connection=winrm
integrar en ansible_winrm_transport=kerberos
dominis AD ansible_winrm_server_cert_validation=ignore
Inventaris dinàmics
Hi ha dues formes de
generar inventaris
dinàmics
Plugins
ansible-doc -t inventory -l
Mòduls
obtenir
crear informació
usuaris
comprimir
dades
copiar arxius
verificar
permisos
fer ping!
apt win_ping
win_chocolatey
win_package
Executar comandes
*
Els de Windows solen
Hi ha diferents els mateixos però
mòduls per executar començats per Win_
comandes en els hosts
remots
Shell Command
Raw Script
Fitxers
També hi ha mòduls
per enviar, modificar
i rebre fitxers
file
copy fetch
lineinfile
template
get_url
unarchive
Programes i paquets
Paquets per
instal·lar software,
llibreries, etc...
apt
homebrew
yum
pacman
dnf
npm
win_chocolatey maven
Gestió dels sistemes remots
O gestionar qualsevol
aspecte del servidor
remot
service
setup
user
cron
iptables
reboot
reboot
És impossible fer una
llista exhaustiva...
índex de mòduls
Exemples
Alguns exemples d’execució de comandes
en màquines fent servir Ansible
Comprova si estan
en marxa?
Pong
Actualitza llista
de paquets
fer
ansible ubuntet -i ./hosts
sudo
-b -K
-m apt
-a “name=joe state=present update_cache=yes”
state = [absent, build-dep, latest, present, fixed]
[wins]
gates.udg.edu
Demana
ansible gates -i ./hosts
contrasenya
-k
-m win_chocolatey
-a “name=7zip.install state=present”
“nginx” ha d’estar iniciat
Sembla que hi
haurà més capítols
2021