%YAML 1.2 --- version: 1.1 vps: # vps target server system variables domain_name: description: The domain name of the VPS examples: - example.fr ssh_key: description: vps ssh private key examples: - ./sshkeys/myssh_privatekey nginx: description: pedagogic html static file server help: |- This is a complete Ansible playbook to configure Nginx with basic authentication using htpasswd. This playbook installs Nginx, configures a static website, and secures access with basic authentication. steps: - Installation of Nginx: The playbook installs Nginx and ensures it is started and enabled. - Creation of the website directory: A directory is created to host the website files. - Creation of a simple homepage: A simple HTML page is created for the website. - Installation of apache2-utils: This package is necessary to use the htpasswd command. - Creation of the htpasswd file: A .htpasswd file is created with a username and password. - Configuration of the Nginx site: The nginx_site.conf.j2 template is used to configure Nginx with basic authentication. - Activation of the Nginx site: The site is enabled by creating a symbolic link in the sites-enabled directory. - Testing the Nginx configuration: The Nginx configuration is tested before restarting the service. - Restarting Nginx: Nginx is restarted to apply the changes. dependencies: - ubuntu 24.04 linux distribution domain_name: description: domain name examples: - example.fr type: domainname default: variable: __.vps.domain_name email: description: email for the domain name help: This is for certbot examples: - contact@exemple.fr type: mail htpasswd_file: description: htpassword user credential file name type: unix_filename params: types: - file default: /etc/nginx/.htpasswd users: description: nginx authenticated user credentials type: leadership username: description: nginx user type: unix_user password: description: nginx password type: secret ...