当前位置: 首页 > news >正文

Ansible相关工具:ansible-doc、ansible

文章目录

  • 管理方式
  • 相关工具
  • ansible-doc命令
    • 用法
    • 案例
  • ansible
    • ansible主配置文件
    • 日志文件
    • 主机清单
  • ansible命令
    • 基本格式:
    • 选项说明:
    • ansible的Host-pattern
      • 或关系
      • 逻辑与
      • 逻辑非
      • 正则表达式
    • ansible命令执行过程
    • ansible 的执行状态

管理方式

利用ansible实现管理的主要方式:

  • Ad-Hoc 即利用ansible命令,主要用于临时命令使用场景.(一行一行代码执行)
  • Ansible-playbook 主要用于长期规划好的,大型项目的场景,需要有前期的规划过程

相关工具

  • /usr/bin/ansible 主程序,临时命令执行工具
  • /usr/bin/ansible-doc 查看配置文档,模块功能查看工具
  • /usr/bin/ansible-galaxy 下载/上传优秀代码或Roles模块的官网平台
  • /usr/bin/ansible-playbook 定制自动化任务,编排剧本工具
  • /usr/bin/ansible-pull 远程执行命令的工具
  • /usr/bin/ansible-vault 文件加密工具
  • /usr/bin/ansible-console 基于Console界面与用户交互的执行工具

ansible-doc命令

用法

ansible-doc [options] [module...]
-l, --list          #列出可用模块
-s, --snippet       #显示指定模块的playbook片段

案例

#列出所有模块
ansible-doc -l  

在这里插入图片描述

#查看指定模块帮助用法
 ansible-doc -s ping

在这里插入图片描述

ansible

此工具通过ssh协议,实现对远程主机的配置管理、应用部署、任务执行等功能

建议:使用此工具前,先配置ansible主控端能基于密钥认证的方式联系各个被管理节点
在这里插入图片描述

ansible主配置文件

 cat /etc/ansible/ansible.cfg

在这里插入图片描述
在这里插入图片描述
host_key_checking = False 当使用密码登录时需要配置此项不然会报错
在这里插入图片描述

日志文件

暂时先将log_path释放出来:
在这里插入图片描述

主机清单

vim /etc/ansible/hosts用于定义被管理主机的认证信息, 例如被管理主机的主机名或IP地址、ssh登录用户名、密码以及key相关信息。
在这里插入图片描述

这里分了两个组,分别是webservers和dbservers,webservers添加了linux101 linux102两台主机,dbservers添加了linux103主机。

ansible命令

基本格式:

ansible <host-pattern> [-m module_name] [-a args]
  • :所属组
  • [-m module_name]:模块
  • [-a args] :参数

选项说明:

–version #显示版本
-m module #指定模块,默认为command
-v #详细过程 –vv -vvv更详细
–list-hosts #显示主机列表,可简写 --list
-k, --ask-pass #提示输入ssh连接密码,默认Key验证
-C, --check #检查,并不执行
-T, --timeout=TIMEOUT #执行命令的超时时间,默认10s
-u, --user=REMOTE_USER #执行远程执行的用户
-b, --become #代替旧版的sudo 切换
–become-user=USERNAME #指定sudo的runas用户,默认为root
-K, --ask-become-pass #提示输入sudo时的口令

 ansible all -m ping

在这里插入图片描述
基于密码进行验证(前提:所有主机密码都相同)

 ansible all -k -m ping

在这里插入图片描述

ssh-keygen -t dsa
ssh-copy-id  192.168.64.101

在这里插入图片描述
基于key验证

ssh-copy-id linux102

在这里插入图片描述
利用sshpass批量实现基于key验证

vim sshpass.sh
#!/bin/bash
ssh-keygen -f /root/.ssh/id_rsa  -P ''
NET=192.168.64
export SSHPASS=123456
for IP in {101..103};do
    sshpass -e ssh-copy-id  $NET.$IP
done
 chmod u+x  sshpass.sh
 ./sshpass.sh

在这里插入图片描述

ansible all --list-host

在这里插入图片描述

ansible webservers  --list-host

hosts (2):
linux101
linux102

ansible dbservers  --list-host

hosts (1):
linux103

如果不是root用户需要基于key验证

ansible all -u yu -k -m ping

在这里插入图片描述

vim /etc/ansible/hosts

新增一个appservers组,将主机linux101加入
在这里插入图片描述

ansible的Host-pattern

用于匹配被控制的主机的列表
All :表示所有Inventory中的所有主机

ansible all –m ping

*:通配符

ansible '*' -m ping

在这里插入图片描述

ansible 'linux10*' -m ping

在这里插入图片描述

或关系

ansible 'linux101:linux103' -m ping

在这里插入图片描述

ansible 'webservers:dbservers' -m ping

在这里插入图片描述

逻辑与

ansible 'webservers:&appservers' -m ping

在这里插入图片描述

逻辑非

ansible 'webservers:!appservers' -m ping

在这里插入图片描述

正则表达式

#  web 或 db 开头的任意主机名
ansible '~(web|db).*' -m ping

在这里插入图片描述

ansible命令执行过程

1.加载自己的配置文件 默认/etc/ansible/ansible.cfg

2.加载自己对应的模块文件,如:command

3.通过ansible将模块或命令生成对应的临时py文件,并将该文件传输至远程服务器的对应执行用户$HOME/.ansible/tmp/ansible-tmp-数字/XXX.PY文件

4.给文件+x执行

5.执行并返回结果

6.删除临时py文件,退出

主机列表中的主机没有下载过ansible,但是还是有.ansible文件目录
在这里插入图片描述

ansible 的执行状态

绿色:执行成功并且不需要做改变的操作
黄色:执行成功并且对目标主机做变更
红色:执行失败

相关文章:

  • 【Power Platform系列】如何在画布应用中调用工作流上传附件
  • QT编程之JSON处理
  • 【VUE2】第五期——VueCli创建项目、Vuex多组件共享数据
  • 使用GitHub Actions实现Git推送自动部署到服务器
  • Diffie-Hellman协议简单介绍
  • Java入职篇(3)——Linux常用指令
  • Ubuntu上部署Flask+MySQL项目
  • 【C++】每日一练(链表的中间结点)
  • 蓝桥云客 挖矿
  • `gradio save_to_cache permission denied`
  • LeeCode题库第1456题
  • Linux应用:进程的回收
  • 2018年全国职业院校技能大赛高职组-计算机网络应用竞赛竞赛样题C卷
  • springboot+springai调用deepseek实现与大模型对话聊天
  • Log4j2漏洞攻略
  • H.264视频编解码:从原理到应用
  • 【日志队列】log日志实时写入队列,流式输出
  • 【Java 基础(人话版)】进制转换
  • 【区块链】以太坊
  • 什么是云原生?
  • 新版城市规划体检评估解读:把城市安全韧性摆在更加突出位置
  • 美国关税压力下,日本经济一年来首次萎缩
  • 舱位已排到月底,跨境电商忙补货!美线订单大增面临爆舱,6月运价或翻倍
  • 李强:把做强国内大循环作为推动经济行稳致远的战略之举
  • 澳大利亚首例“漂绿”诉讼开庭:能源巨头因“碳中和”承诺遭起诉
  • 株洲一重病妇女被要求本人到银行取款时去世?当地警方:正在处理