ansible

本文介绍Ansible自动化运维工具的基础知识,包括其特点、安装部署流程及常见模块的应用。Ansible无需在客户端安装软件,通过SSH协议实现远程管理,支持批量操作。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

  1. 批量管理服务知识介绍
    a:ansible是一个基于Python开发的自动化运维工具
    b:ansible是一个基于ssh协议实现远程管理的工具
    c:ansible软件可以实现多种批量管理操作
  2. 批量管理服务特征介绍
    a:ansible软件服务端(管理端):不需要启动任何服务,默认服务端不需要任何配置
    b:ansible客户端(受控端):没有客户端软件安装
  3. ansible软件安装部署
    a:ansible软件自动化环境架构规划
    管理主机:
    10.0.0.61 m01
    受控主机:
    10.0.0.41 backup
    10.0.0.31 nfs01
    10.0.0.7 web01
    Linux系统6.9
    b:ansible软件自动化部署条件
    建议基于ssh密钥方式建立远程连接
    a ssh密钥对创建(管理主机)
    ssh-keygen -t dsa
    影响免交互创建密钥对创建因素:
    1)需要指定私钥存放路径
    -f /root/.ssh/id_dsa
    2)需要进行私钥文件密码设定
    -N/-P
    -N “”/-P “”

免交互创建密钥对方法
ssh-keygen -t dsa -f /root/.ssh/id_dsa -N ""
b 分发公钥文件(管理主机进行分发)
ssh-copy-id -i /root/.ssh/id_dsa.pub 172.16.1.31
影响免交互批量分发密钥因素
1)需要有确认连接过程,需要输入yes/no
-o StrictHostKeyChecking=no
sshpass -p123456 ssh-copy-id -i /root/.ssh/id_dsa.pub "-o StrictHostKeyChecking=no 172.16.1.31"

2)需要解决密码问题
sshpass -p123456 ssh-copy-id -i /root/.ssh/id_dsa.pub 172.16.1.31
免交互批量分发公钥脚本:
#!/bin/bash
rm /root/.ssh/id_dsa
ssh-keygen -t dsa -f /root/.ssh/id_dsa -N “”

for ip in 31 41 7
do
sshpass -p123456 ssh-copy-id -i /root/.ssh/id_dsa.pub “-o StrictHostKeyChecking=no 172.16.1.$ip”
done
4. ansible软件下载安装
ansible管理主机软件安装:
yum install -y ansible
ansible受控主机软件安装:(可选)
yum install -y libselinux-python

d ansible软件受控主机添加配置
cat /etc/ansible/hosts
[oldboy]
172.16.1.7
172.16.1.31
172.16.1.41
5. ansible软件应用过程
ansible软件模块
ansible-doc -l|wc -l
ansible 管理主机信息或者主机组信息 -m 模块名称 -a 相关模块参数
命令类型模块:
第一个模块:command
参数:chdir—在执行莫个命令前,先切换目录
参数:creates—判断一个文件是否存在,如果已经存在了,后面的命令就不会执行
参数:removes—判断一个文件是否存在,如果不存在,后面的命令就不会执行
参数(必须要有的):free_form—表示执行command模块时,必须要有linux合法命令信息
ansible 172.16.1.41 -m command -a "ls"
第二个模块:shell模块(万能模块)
ansible 172.16.1.41 -m shell -a "ls;pwd"
说明:shell模块可以满足command模块所有功能,并且可以支持识别特殊字符信息 < > | ;
第三个模块:script—专门运行脚本模块
文件类型模块:
第一个模块:copy----复制模块
参数:backup—对数据信息进行备份
ansible 172.16.1.41 -m copy -a "src=/tmp/file01.txt dest=/tmp/ backup=yes"
参数:src—定义要推送数据信息
参数:dest—定义将数据推送到远程主机什么目录中
参数:owner—设置复制后的文件属主权限
参数:group—设置复制后的文件属组权限
参数:mode—设置复制后的文件权限(600 755)

第二个模块:file----文件属性修改/目录创建/文件创建
ansible 172.16.1.41 -m file -a "dest=/tmp/file01.txt owner=oldboy group=oldboy mode=600"
参数:state—用于指定创建目录或文件
创建文件
ansible 172.16.1.41 -m file -a "dest=/tmp/file01.txt state=touch"
创建目录:
ansible 172.16.1.41 -m file -a "dest=/tmp/dir01 state=directory"
包管理模块类型
模块:yum—安装软件包模块
name:执行要安装软件的名称,以及软件的版本
state:installed安装 absent(卸载)
ansible 172.16.1.41 -m yum -a "name=iftop state=installed"
ansible 172.16.1.41 -m yum -a "name=iftop state=absent"
list:指定软件名称,查看软件是否可以安装,以及是否已经安装过了
ansible 172.16.1.41 -m yum -a "list=iftop"
系统模块类型
模块:service—管理服务状态模块
name: 指定要管理的服务名称(管理的服务一定在chkconfig中可以看到)
state:stopped started restarted reloaded
enabled:yes表示服务开机自启动 no表示服务开机不要自动启动
ansible 172.16.1.41 -m service -a "name=crond state=started enabled=yes"
cron—定时任务模块
添加定时任务
ansible 172.16.1.41 -m cron -a "minute=0 hour=0 job='/bin/sh /server/scripts/test.sh &>/dev/null'"
ansible 172.16.1.41 -m cron -a "name=oldboy02 minute=0 hour=0 job='/bin/sh /server/scripts/test.sh &>/dev/null'"
删除定时任务
ansible 172.16.1.41 -m cron -a "name=oldboy02 minute=0 hour=0 job='/bin/sh /server/scripts/test.sh &>/dev/null' state=absent"
ansible 172.16.1.41 -m cron -a "name=oldboy01 state=absent"
注释定时任务
ansible 172.16.1.41 -m cron -a "name=oldboy01 minute=0 hour=0 job='/bin/sh /server/scripts/test.sh &>/dev/null' disabled=yes"
ansible 172.16.1.41 -m cron -a "name=oldboy01 job='/bin/sh /server/scripts/test.sh &>/dev/null' disabled=no"
总结ansible颜色信息:
绿色:查看远程主机信息,不会对远程主机系统做任何修改
红色:执行操作出现异常错误
黄色:对远程主机系统进行修改操作
粉色:警告或者忠告信息

ansible软件剧本
编写剧本规范:
http://docs.ansible.com/ansible/latest/reference_appendices/YAMLSyntax.html
遵循pyyaml
①. - 用法说明,表示列表显示的内容
水果信息:
- 苹果
- 香蕉
- 西瓜
②. : 用法说明:
姓名: 张三
性别: 男
人员信息:

  • 运维人员: sa
  • 开发人员: dev
  • 存储人员: dba
    ③. 空格 用法说明:
    对内容进行分级时,需要有两个空格表示分级
    软件安装步骤:
    • 服务端安装步骤:
      第一个里程碑: 检查软件是否安装
      第二个里程碑: 编写配置文件内容
    • 客户端安装步骤:
      补充:必须使用空格分隔ansible剧本级别,一定不要使用tab键进行分割
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值