# Ansible ## List all tags ```shell ansible-playbook -i host.targets -v site.yml --list-tags ``` ## Start at a specific task (life savior) ```shell ansible-playbook -i host.targets -v site.yml --start-at-task "The audacious task" ``` ## List hosts ```shell ansible-playbook -i host.targets -v site.yml --list-hosts ``` ## Limit hosts ```shell ansible-playbook -i host.targets -v site.yml --limit hostname ``` ## Jinja2, templates & carriage return To tell Jinja2 to not mess with carriage return in templates add ```jinja #jinja2: trim_blocks:False --- ``` at the top of the template file ## Import vs include (kudos @href) If you want to exec a sets of tasks when a condition is true, use import_tasks. ```yaml - name: Include init tasks import_tasks: init.yml tags: - init when: proof.stat.exists == False ``` `ìnclude_tasks` will add all tasks to play run, even if the when condition is false. ## Exec task(s) if a specific service is found ```yaml - name: Is Docker running ? service_facts: - name: Push Telegraf docker input config if needed template: src: inputs/input.docker.conf.j2 dest: /etc/telegraf/telegraf.d/input.docker.conf notify: reload telegraf when: "'docker' in services" ```