|
|
@@ -1,12 +1,20 @@
|
|
|
## ADDED Requirements
|
|
|
|
|
|
### Requirement: Ansible inventory defines relay and landing server groups
|
|
|
-The inventory SHALL define two host groups: `relay` and `landing`, each containing the respective server's connection details (IP, SSH user, SSH key).
|
|
|
+The inventory SHALL define two host groups: `relay` and `landing`, each containing the respective server's connection details (IP, SSH user, SSH key). The `ansible_user` SHALL be a configurable placeholder supporting both root and non-root users.
|
|
|
|
|
|
#### Scenario: Inventory is valid
|
|
|
- **WHEN** the inventory file is parsed by Ansible
|
|
|
- **THEN** two groups `relay` and `landing` are available, each with at least one host
|
|
|
|
|
|
+#### Scenario: Non-root user with sudo
|
|
|
+- **WHEN** `ansible_user` is set to a non-root user (e.g., `ubuntu`)
|
|
|
+- **THEN** Ansible connects as that user and uses `become` for privilege escalation
|
|
|
+
|
|
|
+#### Scenario: Root user
|
|
|
+- **WHEN** `ansible_user` is set to `root`
|
|
|
+- **THEN** Ansible connects as root directly and `become` is a no-op
|
|
|
+
|
|
|
### Requirement: Base packages are installed on all servers
|
|
|
The base role SHALL install essential packages: `curl`, `wget`, `vim`, `htop`, `unzip`, `ufw`, `fail2ban`, `unattended-upgrades`.
|
|
|
|