Ansible工具的初步使用

目录

概述

Ansible工具的初步使用

实践

ansible的命令行使用

bash 复制代码
# 模块 shell(执行shell命令)、copy、systemd
# ansible [pattern] -i hosts
# pattern:匹配执行的ansible节点、组名、主机名、all、多个组或主机用逗号合并
# -i hosts: 指定hosts(每个人指定自己的hosts、不改默认,即定义plyabook规则的文件名) /etc/ansible/hosts(默认、一般不做修改)
# -m:模块名
# -a:模块参数
# --diff 比较异同 --check 检测
# ansible nodes -i hosts --list-hosts   --list-hosts:匹配哪些机器,打印出来
# -f --fork 默认为5  指定最大进程数
# -e "" 传入变量
# [root@ks2p-hadoop04 ~]# man ansible  显示帮助文档
# -v -vv -vvv -vvvv 打印ansible详细执行日志
[root@ks2p-hadoop04 ansible]# ansible nodes -i hosts -m shell -a "ls /data/soft"
ks2p-hadoop06 | CHANGED | rc=0 >>
apache-kyuubi-1.8.0-bin
flink-1.17.1
kyuubi.tgz
new.tgz
ks2p-hadoop07 | CHANGED | rc=0 >>
spark-3.0.2-bin-hadoop3.2.tgz
spark-3.0.3-bin-hadoop3.2.tgz
spark-3.1.2-bin-hadoop3.2.tgz
[root@ks2p-hadoop04 ansible]# ansible nodes -i hosts -m copy -a "src=hosts dest=/data/soft/hosts"
ks2p-hadoop06 | CHANGED => {
    "ansible_facts": {
        "discovered_interpreter_python": "/usr/bin/python"
    }, 
    "changed": true, 
    "checksum": "aaaffde09aa44b0e01eaa0559cd841f80a7eaa2b", 
    "dest": "/data/soft/hosts", 
    "gid": 0, 
    "group": "root", 
    "md5sum": "38d63d2eca30455056de0116a850f327", 
    "mode": "0644", 
    "owner": "root", 
    "size": 179, 
    "src": "/root/.ansible/tmp/ansible-tmp-1713236123.87-49670-171904112008748/source", 
    "state": "file", 
    "uid": 0
}
ks2p-hadoop07 | CHANGED => {
    "ansible_facts": {
        "discovered_interpreter_python": "/usr/bin/python"
    }, 
    "changed": true, 
    "checksum": "aaaffde09aa44b0e01eaa0559cd841f80a7eaa2b", 
    "dest": "/data/soft/hosts", 
    "gid": 0, 
    "group": "root", 
    "md5sum": "38d63d2eca30455056de0116a850f327", 
    "mode": "0644", 
    "owner": "root", 
    "size": 179, 
    "src": "/root/.ansible/tmp/ansible-tmp-1713236123.88-49672-160837999053406/source", 
    "state": "file", 
    "uid": 0
}
[root@ks2p-hadoop04 ansible]# ansible nodes -i hosts -m shell -a "ls /data/soft"
ks2p-hadoop06 | CHANGED | rc=0 >>
apache-kyuubi-1.8.0-bin
flink-1.17.1
hosts
kyuubi.tgz
new.tgz
ks2p-hadoop07 | CHANGED | rc=0 >>
hosts
spark-3.0.2-bin-hadoop3.2.tgz
spark-3.0.3-bin-hadoop3.2.tgz
spark-3.1.2-bin-hadoop3.2.tgz

ansible-playbook

ansible-playbook -i hosts test.yml

yaml 复制代码
# 剧本集

- hosts: nodes
  gather_facts: false
  tasks:
    - name: 上传hosts文件
      copy:
        src: hosts
        dest: /data/soft
    - name: hosts存在将不执行
      shell: pwd
      args:
        chdir: /tmp
        creates: /data/soft/hosts # 该文件存在,则不执行
    - name: 打印调试信息
      debug:
        msg: "hello"

- hosts: tbj
  gather_facts: false
  tasks:
    - name: 打印跳板机hostname
      shell: hostname
bash 复制代码
[root@ks2p-hadoop04 ansible]# ansible-playbook -i hosts test.yml

PLAY [nodes] ***********************************************************************************************************************************************************************

TASK [上传hosts文件] *******************************************************************************************************************************************************************
changed: [ks2p-hadoop06]
ok: [ks2p-hadoop07]

TASK [hosts存在将不执行] *****************************************************************************************************************************************************************
ok: [ks2p-hadoop06]
ok: [ks2p-hadoop07]

TASK [打印调试信息] **********************************************************************************************************************************************************************
ok: [ks2p-hadoop06] => {
    "msg": "hello"
}
ok: [ks2p-hadoop07] => {
    "msg": "hello"
}

PLAY [tbj] *************************************************************************************************************************************************************************

TASK [打印跳板机hostname] ***************************************************************************************************************************************************************
changed: [ks2p-hadoop04]

PLAY RECAP *************************************************************************************************************************************************************************
ks2p-hadoop04              : ok=1    changed=1    unreachable=0    failed=0    skipped=0    rescued=0    ignored=0   
ks2p-hadoop06              : ok=3    changed=1    unreachable=0    failed=0    skipped=0    rescued=0    ignored=0   
ks2p-hadoop07              : ok=3    changed=0    unreachable=0    failed=0    skipped=0    rescued=0    ignored=0   

官方文档

Module Index

playbooks

roles

相关推荐
李匠20242 天前
云计算架构学习之Ansible-playbook实战、Ansible-流程控制、Ansible-字典循环-roles角色
学习·云计算·ansible
fenglei20204 天前
Ansible批量配置服务器免密登录步骤详解
运维·git·github·ansible
敖光 SRE4 天前
自动化运维之ansible快速入门
运维·自动化·ansible
大新新大浩浩4 天前
ceph部署-14版本(nautilus)-使用ceph-ansible部署实验记录
ceph·ansible
罗狮粉 997 天前
AlmaLinux使用Ansible自动部署k8s集群
容器·kubernetes·ansible
Lz__Heng7 天前
Ansible 主机清单语法
ansible
沢田纲吉10 天前
Linux 学习加油站(1)
linux·操作系统·命令行
2401_8789617210 天前
ansible自动化运维
运维·自动化·ansible
huhy~10 天前
Ansible服务介绍
ansible
罗狮粉 9912 天前
Ansible在多台服务器上运行python脚本
服务器·python·ansible