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

相关推荐
紫晓宁1 天前
jmeter结合ansible分布式压测--3压测执行
分布式·jmeter·ansible
紫晓宁2 天前
jmeter结合ansible分布式压测--1数据准备
分布式·jmeter·ansible
紫晓宁3 天前
jmeter结合ansible分布式压测--2jmter环境准备
分布式·jmeter·ansible
岁岁岁平安5 天前
mysql上课总结(4)(MySQL中数据库的备份与还原(命令行或DataGrip中直接操作))
数据库·mysql·mysqldump·命令行·数据库的备份与还原·.exe
SG.xf6 天前
ansible中的任务执行控制
ansible
赶紧回家去8 天前
Ansible基本使用
运维·ansible
岁岁岁平安8 天前
mysql上课总结(2)(DCL的所有操作总结、命令行快速启动/关闭mysql服务)
数据库·mysql·命令行·权限·dcl·localhost
我就是全世界9 天前
ansible详细介绍和具体步骤
ansible
福大大架构师每日一题9 天前
27.9 调用go-ansible执行playbook拷贝json文件重载采集器
golang·json·ansible·prometheus
SG.xf9 天前
Ansible
运维·ansible