Table of Contents

ansible

basic op

ansible all --list-hosts
 
ansible all -m ping

playbook

helloworld.yaml
- name: helloworld
  hosts: nodes
  tasks:
   - name: Ping my hosts
     ansible.builtin.ping:
   - name: Print message
     ansible.builtin.debug:
       msg: Hello world
ansible-playbook helloworld.yaml
addkeys.yaml
- name: Add ssh key to ubuntu user
  hosts: nodes
  tasks:
  - name: Set authorized key took from file
    authorized_key:
      user: ubuntu
      state: present
      key: "{{ lookup('file', '/root/.ssh/id_ed25519.pub') }}"
ansible-playbook addkeys.yaml

Installa ed avvia un pacchetto (per esempio glusterfs)

glusterfs.yaml
- name: Install glusterFS
  hosts: nodes
  tasks:
  - name: Install package 
    ansible.builtin.apt:
      update_cache: yes
      cache_valid_time: 86400
      name: glusterfs-server
  - name: Start service
    ansible.builtin.systemd:
      state: started
      name: glusterd
ansible-playbook glusterfs.yaml

install

python3 -m pip install --user ansible

config

/etc/ansible/hosts
[all:vars]
ansible_user='ubuntu'
ansible_become=yes
ansible_become_method=sudo
ansible_python_interpreter='/usr/bin/env python3'
 
[nodes]
10.45.0.1
10.45.0.2
10.45.0.3
10.45.0.4
10.45.0.5