Split Ansible

Split Ansible



Els tipus de dades de cadena són els més comuns i valuosos en qualsevol treball de desenvolupament. Quan treballem amb Ansible, podem trobar casos en què hem de dividir una cadena en una llista o en diverses cadenes. Afortunadament, el motor de plantilles Jinja2 d'Ansible ofereix un filtre dividit pràctic per aconseguir-ho.

Aquest tutorial explora la funció dividida a Ansible i entén el seu funcionament mitjançant exemples del món real.

Requisits previs:

Per seguir aquesta publicació, assegureu-vos que teniu el següent:







  • Familiaritat amb els llibres de jugades i les tasques d'Ansible
  • Ansible instal·lat a la vostra màquina

Funció Split Ansible

A Ansible, la funció split() ens permet dividir o dividir una cadena en una llista mitjançant un delimitador especificat.



La funció accepta dos paràmetres principals:



  1. La cadena que voleu dividir
  2. El delimitador en què voleu dividir la cadena

La sintaxi és la següent:





{{ 'cadena_per_dividir' | split( 'delimitador' ) }}

Exemples:

Cobrim alguns exemples bàsics d'ús d'aquesta funció en un llibre de jocs del món real.

Exemple 1: Divisió bàsica



Suposem que tenim una cadena 'MySQL, PostgreSQL, SQL Server' i volem dividir-la en una llista de bases de dades. Podem executar el llibre de jugades de la següent manera:

---
- hosts: localhost
tasques:
- nom: exemple de split bàsic
depurar:
msg: '{{ 'MySQL, PostgreSQL, SQL Server' | split(',') }}'

Sortida:

bé: [localhost] => {
'msg': [
'MySQL',
'PostgreSQL',
'Servidor SQL'
]
}

Exemple 2: Divisió dinàmica de variables

Sovint, és possible que hàgim de dividir un valor variable en lloc d'una cadena codificada. Aquí és on podem utilitzar la divisió de variable dinàmica tal com es mostra a continuació:

---
- hosts: localhost
del qual:
usuaris: 'usuari1,usuari2,usuari3'
tasques:
- nom: Divisió del valor de la variable
depurar:
msg: '{{ usuaris | split(',') }}'

Resultat:

bé: [localhost] => {
'msg': [
'usuari 1',
'usuari 2',
'usuari 3'
]
}

Exemple 3: Divisió de camins de fitxers

Un altre ús de la funció dividida és en el processament de camins de fitxers. Un exemple de demostració és el següent:

---
- hosts: localhost
del qual:
camí: '/home/ubuntu/documents/report.txt'
tasques:
- nom: extreu el nom del fitxer de la ruta mitjançant el filtre 'últim'.
depurar:
msg: '{{ (camí | dividit('/')) | darrer }}'

Sortida:

bé: [localhost] => {
'msg': 'report.txt'
}

Això extreu el 'report.txt' del camí donat.

Exemple 4: Ús de Split in Loop

Prenguem un exemple en què volem crear diversos directoris que porten el nom de diferents bases de dades:

---
- hosts: localhost
del qual:
bases de dades: 'MySQL, PostgreSQL, SQL Server'
tasques:
- nom: Crea directoris per a cada base de dades
dossier:
camí: '/tmp/{{ element }}'
estat: directori
bucle: '{{ bases de dades | split(',') }}'

Sortida:

TASCA [Crear directoris per a cada base de dades] ******************************************** ************************
canviat: [localhost] => (element=MySQL)
canviat: [localhost] => (element= PostgreSQL)
canviat: [localhost] => (element= SQL Server)

Conclusió

Heu après sobre la funció dividida a Ansible. Aquesta funció proporciona una manera neta de processar i manipular les dades de la cadena.