September 02, 2026 · by Alex M.
Dacă administrezi mai multe servere sau dorești să elimini sarcinile repetitive din fluxul tău de lucru, Ansible este unealta de care ai nevoie. Este un instrument de automatizare open-source, agentless (nu necesită instalarea unui agent pe serverele gestionate) și extrem de ușor de învățat. În acest ghid, vei afla cum să instalezi și să configurezi Ansible pe un VPS NVMe sau VPS SSD, cu exemple practice.
Ansible este o platformă de automatizare IT dezvoltată de Red Hat, care îți permite să:
Față de soluții precum Puppet sau Chef, Ansible nu necesită instalarea unui agent pe noduri. Comunicarea se face prin SSH, ceea ce îl face ideal pentru orice VPS Linux sau server dedicat.
apt, copy, service)Înainte de a începe, asigură-te că ai:
sudoDacă nu ai încă un server, poți comanda rapid un VPS NVMe CLIQHOST cu Ubuntu preinstalat.
sudo apt update
sudo apt install -y software-properties-common
sudo add-apt-repository --yes --update ppa:ansible/ansible
sudo apt install -y ansible
ansible --version
Output așteptat:
ansible [core 2.16.x]
python version = 3.10.x
jinja version = 3.x.x
sudo dnf install -y epel-release
sudo dnf install -y ansible
Inventarul este inima oricărei configurări Ansible. El definește care servere vor fi administrate și cum sunt grupate.
/etc/ansible/hosts)[webservers]
192.168.1.10
192.168.1.11
[dbservers]
192.168.1.20
[all:vars]
ansible_user=ubuntu
ansible_ssh_private_key_file=~/.ssh/id_rsa
Creează un fișier inventory.yml:
all:
children:
webservers:
hosts:
web01:
ansible_host: 192.168.1.10
web02:
ansible_host: 192.168.1.11
dbservers:
hosts:
db01:
ansible_host: 192.168.1.20
vars:
ansible_user: ubuntu
ansible_ssh_private_key_file: ~/.ssh/id_rsa
ansible all -m ping -i inventory.yml
Răspuns de succes:
web01 | SUCCESS => {
"changed": false,
"ping": "pong"
}
ansible.cfgCreează un fișier ansible.cfg în directorul proiectului tău:
[defaults]
inventory = ./inventory.yml
remote_user = ubuntu
private_key_file = ~/.ssh/id_rsa
host_key_checking = False
retry_files_enabled = False
[privilege_escalation]
become = True
become_method = sudo
become_user = root
Notă:
host_key_checking = Falseeste util în medii de test. În producție, pe un server dedicat managed, menține verificarea activă pentru securitate.
Comenzile ad-hoc sunt utile pentru acțiuni rapide, fără a scrie un playbook:
# Verifică uptime-ul tuturor serverelor
ansible all -m command -a "uptime"
# Instalează un pachet pe toate serverele web
ansible webservers -m apt -a "name=nginx state=present" --become
# Copiază un fișier pe noduri
ansible webservers -m copy -a "src=/local/file.conf dest=/etc/nginx/file.conf"
# Repornește un serviciu
ansible webservers -m service -a "name=nginx state=restarted" --become
# Verifică spațiul pe disc
ansible all -m shell -a "df -h"
Playbook-ul este un fișier YAML care descrie starea dorită a sistemelor tale. Iată un exemplu complet pentru instalarea și configurarea Nginx:
---
- name: Instalare si configurare Nginx
hosts: webservers
become: true
vars:
nginx_port: 80
site_name: "exemplu.com"
tasks:
- name: Actualizare cache APT
apt:
update_cache: yes
cache_valid_time: 3600
- name: Instalare Nginx
apt:
name: nginx
state: present
- name: Copiere configuratie site
template:
src: templates/nginx_site.conf.j2
dest: "/etc/nginx/sites-available/{{ site_name }}"
owner: root
group: root
mode: '0644'
notify: Restart Nginx
- name: Activare site
file:
src: "/etc/nginx/sites-available/{{ site_name }}"
dest: "/etc/nginx/sites-enabled/{{ site_name }}"
state: link
notify: Restart Nginx
- name: Pornire si activare Nginx
service:
name: nginx
state: started
enabled: yes
handlers:
- name: Restart Nginx
service:
name: nginx
state: restarted
templates/nginx_site.conf.j2)server {
listen {{ nginx_port }};
server_name {{ site_name }};
root /var/www/{{ site_name }};
index index.html index.php;
access_log /var/log/nginx/{{ site_name }}_access.log;
error_log /var/log/nginx/{{ site_name }}_error.log;
location / {
try_files $uri $uri/ =404;
}
}
# Dry-run (verificare fara modificari)
ansible-playbook playbook_nginx.yml --check
# Rulare efectiva
ansible-playbook playbook_nginx.yml
# Cu output detaliat
ansible-playbook playbook_nginx.yml -v
Pentru proiecte mai mari, rolurile permit reutilizarea și organizarea codului. Structura unui rol:
roles/
nginx/
tasks/
main.yml
handlers/
main.yml
templates/
nginx_site.conf.j2
defaults/
main.yml
vars/
main.yml
files/
meta/
main.yml
ansible-galaxy init roles/nginx
ansible-galaxy init roles/mariadb
ansible-galaxy init roles/php
---
- name: Configurare stack LEMP
hosts: webservers
become: true
roles:
- nginx
- mariadb
- php
group_vars/
webservers.yml
dbservers.yml
host_vars/
web01.yml
group_vars/webservers.yml:
nginx_worker_processes: 4
nginx_worker_connections: 1024
php_version: "8.2"
# Criptare fișier cu parole/credentiale
ansible-vault create group_vars/all/vault.yml
# Editare fișier criptat
ansible-vault edit group_vars/all/vault.yml
# Rulare playbook cu vault
ansible-playbook site.yml --ask-vault-pass
# sau cu fișier de parolă
ansible-playbook site.yml --vault-password-file ~/.vault_pass
vault.yml (conținut decriptat):
db_root_password: "SuperParola123!"
db_app_password: "AppParola456!"
api_key: "sk-xxxxxxxxxxxx"
---
- name: Securizare initiala VPS
hosts: all
become: true
tasks:
- name: Actualizare sistem
apt:
upgrade: dist
update_cache: yes
- name: Instalare pachete de securitate
apt:
name:
- ufw
- fail2ban
- unattended-upgrades
state: present
- name: Configurare UFW - allow SSH
ufw:
rule: allow
port: "22"
proto: tcp
- name: Configurare UFW - allow HTTP/HTTPS
ufw:
rule: allow
port: "{{ item }}"
proto: tcp
loop:
- "80"
- "443"
- name: Activare UFW
ufw:
state: enabled
policy: deny
- name: Activare fail2ban
service:
name: fail2ban
state: started
enabled: yes
- name: Dezactivare autentificare root prin SSH
lineinfile:
path: /etc/ssh/sshd_config
regexp: '^PermitRootLogin'
line: 'PermitRootLogin no'
notify: Restart SSH
handlers:
- name: Restart SSH
service:
name: ssh
state: restarted
--check înainte de rulare pe servere de producțiename descriptivePentru infrastructuri de producție complexe, o soluție de administrare servere dedicată îți poate economisi timp considerabil.
ansible-project/
├── ansible.cfg
├── inventory/
│ ├── production/
│ │ ├── hosts.yml
│ │ └── group_vars/
│ └── staging/
│ ├── hosts.yml
│ └── group_vars/
├── roles/
│ ├── common/
│ ├── nginx/
│ ├── mariadb/
│ └── php/
├── playbooks/
│ ├── site.yml
│ ├── deploy.yml
│ └── security.yml
└── README.md
Ansible transformă administrarea serverelor dintr-o activitate manuală și repetitivă într-un proces automatizat, reproductibil și documentat. Cu câteva playbook-uri bine scrise, poți configura zeci de servere identic în câteva minute, elimini erorile umane și ai mereu o imagine clară a stării infrastructurii tale.
Pentru a pune în practică tot ce ai învățat, ai nevoie de o infrastructură solidă. Explorează ofertele de VPS NVMe de la CLIQHOST sau contactează-ne pentru un plan de administrare servere personalizat. Avem și resurse suplimentare pe blogul CLIQHOST pentru a-ți aprofunda cunoștințele de Linux și DevOps.
Recenzii reale de la clienți care au ales CLIQHOST pentru performanță, fiabilitate și suport tehnic.
"We moved our online shop from a foreign host and the difference is night and day — pages load instantly and support replies in minutes, in Romanian."
"Migrated 12 client sites to CLIQHOST. Free migration, zero downtime, and the cPanel setup is exactly what my team needed. Highly recommend."
"Our NVMe VPS handles traffic spikes without a sweat. Full root, local datacenter, and billing in MDL — everything we wanted from a provider."