Các bước cài đặt

  1. Install trực tiếp ansible hoặc dùng trong docker, file docker compose:
services:
  soda_ansible:
    image: alpine/ansible
    container_name: soda_ansible
    restart: on-failure:5
    logging:
      driver: 'json-file'
      options:
        max-size: '50m'
    volumes:
      - ./:/app
    working_dir: /app
    command: sleep infinity

  1. Tạo file inventory.yml
all:
  hosts:
    server1:
      ansible_host: ip.server.net
      ansible_user: user
      ansible_ssh_private_key_file: /app/ssh/ssh.pem
      ansible_port: 22

    jump_server:
      ansible_host: ip.server2.net
      ansible_user: user
      ansible_ssh_private_key_file: /app/ssh/ssh.pem
      ansible_port: 22
      ansible_ssh_common_args: "-o ProxyCommand='ssh -W %h:%p [email protected] -i /app/ssh/ssh.pem'"

  1. Tạo file setup_server.yml
---
- name: Run script on remote servers
  hosts: server1
  become: yes # run as sudo root
  tasks:
    - name: Copy script to remote server
      copy:
        src: ../scripts/setup_server.sh
        dest: /tmp/setup_server.sh
        mode: '0755'

    - name: Execute script on remote server
      command: bash /tmp/setup_server.sh

    - name: Execute script on remote server
      shell: |
        pwd
        ls -al
        cat /etc/os-release

  1. Command
ansible-playbook -i inventory.yml setup_server.yml