GNU/Linux >> Linux Esercitazione >  >> Linux

Come menzionare il carattere jolly nei comandi ansible

Utilizzando ansible sulla riga di comando per eseguire comandi ad hoc, un carattere jolly è molto utile, ad es. per vedere se un file esiste su tutti i sistemi.

Anch'io ho faticato a fare:$ ansible production -a "ls /mypath/*xxx*"

Ma avvolgerlo in bash -c '...' funziona:$ ansible production -a "bash -c 'ls /mypath/*xxx*'"


Un'attività definita in questo modo farebbe il trucco:

- name: Move internal directories and files
  command: bash -c 'mv /tmp/parent-dir/*  /opt/destination/'

Come ha scritto Larsks, la chiave è usare register , ma il codice non funzionava sulla mia attuale versione di ansible. Quindi eccone uno corretto:

- shell: ls -d solr*
  register: dir_name

- command: chdir={{ item }} some_command
  with_items: dir_name.stdout_lines

No. Il chdir= parametro a, ad esempio, il command il modulo non supporta i caratteri jolly.

Puoi ottenere ciò che desideri utilizzando una variabile register per memorizzare l'output di ls comando:

- shell: ls -d solr*
  register: dir_name
- command: some_command
  args:
    chdir: "{{ dir_name.stdout }}"

Ma questa è, francamente, una brutta soluzione. Faresti meglio a usare solo il nome effettivo della directory. Se differisce su host diversi, puoi utilizzare le variabili host per impostarlo in modo appropriato.


Linux
  1. Come usare il comando Su in Linux

  2. Come mandare in crash il tuo sistema:pericolosi comandi Linux

  3. 5 esempi di modem a comando in Linux (come configurare Minicom)

  4. Come limitare i comandi utente in Linux

  5. Come archiviare l'output del comando nell'array in Ansible?

Come correggere facilmente i comandi Bash errati in Linux

Come trovare i comandi più utilizzati su Linux

Come controllare la cronologia dei comandi di Linux in base alle date

3 consigli utili su come utilizzare il comando cronologia in Linux

Come eseguire più comandi Linux in un unico comando

Come eseguire più comandi Linux contemporaneamente nel terminale Linux