Playbooks contain Plays, we sometimes refer to the files that contain plays as playbook, it is also the 'list of plays that i'm currently running'.
Plays map hosts to tasks.
Tasks perform an action (this action is normally a module).
A module is a plugin/script that follows certain Ansible input/output specs
Modules can be written in any language, Ansible only ships with python and powershell modules.
Roles are 'reusable subsets of a play', mainly they group tasks and resources to accomplish a certain goal, they have no host mapping and require being in a play.
You don't really need to use these to start, they are just a way of organizing, reusing and sharing.
There are more plugins and other stuff you'll learn as you start dealing with more complex issues.
I personally would use a template to handle /etc/resolv.conf, but if you don't wan't to assume ownership of the full file, there are other modules that can just deal with the changes you want (replace, blockinfile, etc)