Get to the point, Ansible
As you change your Ansible devops code, the time you spend testing each Ansible run increases.
Did you add a new package, configuration file, or service task to your Ansible code? Launch ansible-playbook
and wait while it first runs your 200 other Ansible tasks.
Did Ansible tell you you’ve botched your syntax? Fix it and run ansible-playbook
again!
Testing it faster
An obvious approach would be to comment out the code above your changes. That way Ansible skips the old code, and starts from your new code instead. Comment out your site configuration file, and perhaps parts of your Ansible role. Here is an example:
site.yml
--- - name: Run common roles hosts: all roles: # comment this out # - role: mysite.common # - role: galaxy.ntp - role: mysite.newthing
myroles/mysite.newthing/tasks/main.yml
--- # comment this out too #- include: postgres.yml # #- include_role: # name: mysite.oldthing - name: install packages apt: pkg: - libssl-dev
Testing it easily
Manually commenting and un-commenting is tedious and error-prone!

Did you know Ansible has a command-line flag to skip ahead? You can skip manually commenting and un-commenting code!
ansible-playbook site.yml --start-at-task 'install packages'
Unique names
Do you already have a task named install packages
? Consider adding more description to your task name! However, assuming you can’t rename tasks, you can also include the role name:
ansible-playbook site.yml --start-at-task 'mysite.newthing : install packages'
Don’t quote me
Notice we used single quotes '
and not double quotes "
. If you have any punctuation in your task names, such as “Install packages!”, the single quotes are required!
See also: bash documentation on single quotes, vs double quotes .