ansible all -m ping
- опросить всех хостов которые имеются в зоне доступа ansible
ansible all -m ping -u USER
- опросить всех хостов, но от пользователя USER (иначе текущий пользователь системы запуска ansible)
ansible-playbook playbook.yml -u USER
- запустить плейбук от пользователя USER
ansible all -m ping --private-key=~/.ssh/mykey.priv
- выполнить пинг с использованием конкретного ключа
ansible-playbook myplaybook.yml --private-key=~/.ssh/mykey.priv
- выполнить плейбук с использованием конкретного ключа
ansible all -m ping --ask-become-pass
- запросить пароль sudo
ansible-playbook -l SRV-TEST myplaybook.yml
- выполнить
Примеры файлов ansible:
ansible.cfg:
[defaults]
inventory = ./hosts
host_key_checking = false
hosts:
[test]
10.10.10.40
#client01
[clients]
client02 ansible_host=10.10.10.41 ansible_user=root ansible_ssh_private_key_file=/root/.ssh/sshkey
client03 ansible_host=10.10.10.42 ansible_user=root ansible_ssh_private_key_file=/root/.ssh/sshkey
[all_groups:children]
test
#clients
test:
ansible_host: 10.10.10.40
ansible_user: root
ansible_ssh_private_key_file: /root/.ssh/sshkey
dev: taxonein
Примеры файлов опроса:
ping.yml
- name: Ping Servers
hosts: all_groups
become: yes
vars:
packages:
- nano
- mc
- htop
tasks:
- name: Task ping
ping:
- name: Upgrade system
apt:
upgrade: yes
# - name: Install pkgs
# apt:
# pkg: "{{packages}}"
# state: present
- debug:
msg: "{{ansible_distribution}} Version: {{ansible_distribution_version}}"
docker-install.yml
- name: Install Docker
hosts: nodocker
become: yes
vars:
packages_stage1:
- wget
- curl
- ca-certificates
packages_stage2:
- docker-ce
- docker-ce-cli
- containerd.io
- docker-buildx-plugin
- docker-compose-plugin
tasks:
- name: Update packages
ansible.builtin.apt:
name: "*"
state: latest
- name: Install packages
apt:
pkg: "{{packages_stage1}}"
state: present
- name: Add Keyrings
shell: |
install -m 0755 -d /etc/apt/keyrings
curl -fsSL https://download.docker.com/linux/debian/gpg -o /etc/apt/keyrings/docker.asc
chmod a+r /etc/apt/keyrings/docker.asc
- name: Add repository
ansible.builtin.apt_repository:
repo: "deb [arch=amd64 signed-by=/etc/apt/keyrings/docker.asc] https://download.docker.com/linux/debian bookworm stable"
state: present
- name: Update packages
ansible.builtin.apt:
name: "*"
state: latest
- name: Install docker packages
apt:
pkg: "{{packages_stage2}}"
state: present
user-change.yml
- name: User manage
hosts: nodocker
become: yes
vars:
users:
- taxonein
tasks:
- name: Add user
ansible.builtin.user:
name: "{{item}}"
group: sudo
shell: /bin/bash
password: "YOUR-PASSWORD-HASH" #mkpasswd --method=sha-512
loop: "{{users}}"
# - name: Remove user
# ansible.builtin.user:
# name: "{{item}}"
# state: absent
# remove: yes
# loop: "{{users}}"