According to your needs, you can edit all variables in `group_vars` directory and subdirectories.
You can also define host-specific variables (reboot/upgrade enable/disabe, cron hours, specific config, ...) in the host_vars directory (host.example.org is a commented example). Don't forget to update .gitignore if you don't want to publish some host vars.
## Nodes preparation
On the node, with the root account (or sudo) :
* Install SSH, sudo and gentoolkit (if Gentoo) OR python-apt (if Debian) OR python-yum (if CentOS) ...
* Enable and start SSH service.
* Configure the ansible user :
```bash
# Create an ansible user
useradd -m -s /bin/bash ansible
# Add sudoers rights to ansible user
echo "ansible ALL=(ALL:ALL) NOPASSWD: ALL
" > /etc/sudoers.d/ansible
# Check the sudo configuration
su - ansible
sudo -i # If OK, you're root here
exit
exit
# Add SSH public key of the account used on the Ansible server (or local machine) to the ansible user on the remote node to deploy
su - ansible
mkdir -p .ssh
vi .ssh/authorized_keys # Here add pubkey
```
> Note : this procedure can vary slightly if you're not using a Debian or CentOS node.
On the Ansible server (or local machine), check the SSH connection :
```bash
ssh ansible@<YOUR_MANAGED_NODE>
exit
```
## Deployment
From the Ansible server (or your local machine), you can deploy specific playbooks using the following command :
> * --diff option can be added to see the difference applied.
> * --check option can be added to test the deployment without really do any action on the remote node (in some cases it fails even if the deployment will go well).
Playbook deployment :
* playbook_general_deploy.yml
### playbook_general_deploy.yml
This playbook deploys general configuration : tools (useful packages), auto reboot, auto upgrade, sudo users, NTP client and DNS resolvers.