Skip to main content
Nguyen Lam
💬
0 discussions

Hướng dẫn cài đặt Ansible trên OVH

1. Điều kiện tiên quyết

  • Thông tin và private key của remote server OVH để đăng nhập.
  • Nắm được kiến thức cơ bản về ansible, nginx, docker, certbot.
  • Một Domain hoặc subdomain

2. Đối tượng đọc

  • Customer Success Engineer

3. Nội dung chi tiết

3.1. : Set up ansible GUI

Lưu đoạn code này dưới tên file docker-compose.yml.

services:
mysql:
restart: unless-stopped
image: mysql:8.0
hostname: mysql
volumes:
- semaphore-mysql:/var/lib/mysql
environment:
MYSQL_RANDOM_ROOT_PASSWORD: 'yes'
MYSQL_DATABASE: semaphore
MYSQL_USER: semaphore
MYSQL_PASSWORD: semaphore
semaphore:
restart: unless-stopped
ports:
- 3099:3000
image: semaphoreui/semaphore:latest
environment:
SEMAPHORE_DB_USER: semaphore
SEMAPHORE_DB_PASS: semaphore
SEMAPHORE_DB_HOST: mysql # for postgres, change to: postgres
SEMAPHORE_DB_PORT: 3306 # change to 5432 for postgres
SEMAPHORE_DB_DIALECT: mysql # for postgres, change to: postgres
SEMAPHORE_DB: semaphore
SEMAPHORE_PLAYBOOK_PATH: /tmp/semaphore/
SEMAPHORE_ADMIN_PASSWORD: changeme
SEMAPHORE_ADMIN_NAME: admin
SEMAPHORE_ADMIN_EMAIL: admin@localhost
SEMAPHORE_ADMIN: admin
SEMAPHORE_ACCESS_KEY_ENCRYPTION: gs72mPntFATGJs9qK0pQ0rKtfidlexiMjYCH9gWKhTU=
SEMAPHORE_LDAP_ACTIVATED: 'no' # if you wish to use ldap, set to: 'yes'
SEMAPHORE_LDAP_HOST: dc01.local.example.com
SEMAPHORE_LDAP_PORT: '636'
SEMAPHORE_LDAP_NEEDTLS: 'yes'
SEMAPHORE_LDAP_DN_BIND: 'uid=bind_user,cn=users,cn=accounts,dc=local,dc=shiftsystems,dc=net'
SEMAPHORE_LDAP_PASSWORD: 'ldap_bind_account_password'
SEMAPHORE_LDAP_DN_SEARCH: 'dc=local,dc=example,dc=com'
SEMAPHORE_LDAP_SEARCH_FILTER: "(\u0026(uid=%s)(memberOf=cn=ipausers,cn=groups,cn=accounts,dc=local,dc=example,dc=com))"
depends_on:
- mysql # for postgres, change to: postgres
volumes:
semaphore-mysql: # to use postgres, switch to: semaphore-postgres

Đây là đoạn code giúp cho Docker trên server tải code về và triển khai. Lệnh thực thi:

$ docker-compose up -d 

Lệnh này sẽ thực thi file yml tên docker-compose và chạy ngầm ở server.

3.2. : Set up và reverse proxy

Bước này ta sẽ kết nối port chúng ta đã set up ở file docker-compose.yml (Mặc định đang chạy ở port 3099) với domain hoặc subdomain.

Thông thường config nginx sẽ nằm ở /etc/nginx/sites-available/default.

$ nano /etc/nginx/sites-available/default

Sau đó dán đoạn này vào cuối file

server {
server_name ansible.gcalls.vn;
location / {
proxy_pass http://localhost:3099;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection 'upgrade';
proxy_set_header Host $host;
proxy_cache_bypass $http_upgrade;
}

listen 443 ssl; # managed by Certbot
ssl_certificate /etc/letsencrypt/live/ansible.gcalls.vn/fullchain.pem; # managed by Certbot
ssl_certificate_key /etc/letsencrypt/live/ansible.gcalls.vn/privkey.pem; # managed by Certbot
include /etc/letsencrypt/options-ssl-nginx.conf; # managed by Certbot
ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem; # managed by Certbot

}

Bước cuối cùng ta restart lại service nginx

$ sudo systemctl restart nginx

Tài liệu này hướng dẫn kỹ sư mới cách cài đặt giao diện ansible với server, nếu có góp ý xin vui lòng điền vào form bên dưới.