ansible自动化运维工具

发布于:2025-04-01 ⋅ 阅读:(16) ⋅ 点赞:(0)

一、ansible介绍

实现对IT基础设施的批量管控,加快效率、节省工作时间

1、ansible特性

1、基于python开发、开源

2、基于SSH协议工作

3、no server

4、no agent

5、支持playbook剧本

6、提供API

二、ansible安装部署

1、配置免密SSH

2、安装ansible

 3、查看模块帮助

查看所有模块

查看yum模块

三、主机清单文件  Inventory  ------   /etc/ansible/hosts

1、单个主机

all代表主机清单里的所有机器

2、定义主机组

 定义组时,一台机器可以属于多个组

四、AD HOC

ansible使用模式:

        

ansible pattern -m 模块名称 -a 模块命令

pattern的写法:

        1、IP地址

        2、主机组名

        3、所有        all

        4、多个主机组

五、常用模块

1、ping模块    测试通信  

2、shell 模块        批量执行shell命令

参数:

        1)chdir=        切换目录

3、copy模块

推送文件

        

常用参数:

        1、src=        源文件

        2、dest=        目的文件

        3、mode=        权限

        4、owner=        属主

        5、group=        属组

4、fetch模块

拉取文件

        

常用参数:
    1、src=        源文件
    2、dest=        目的文件
    3、mode=        权限
    4、owner=    属主
    5、group=    属组

 5、file模块

管理文件目录

        

常用参数:       
    path= 指明对哪个文件修改其属性
    owner= 指明文件的属主
    group= 指明文件的属组
    mode= 指明文件的权限
    state=directory|link|absent|touch 表示创建的文件是目录还是软链接   
    src= 指明path=指明的文件是软链接文件,其对应的源文件是谁,必须要在state=link时才有用

 absent删除文件将/tmp/file01文件删除

6、yum模块

管理rpm软件

        

常用参数:

        name=        软件名称

        state=        {present|absent|latest}        安装、卸载、更新

        enablerep=        启用yum仓库

        disablerepo=        禁用yum仓库

状态不写默认为安装present

 7、service模块

管理系统服务

        

常用参数:

        name=        服务名称

        state=        {start|restarted|stopped}        启动、重启、停止

        enabled=        {yes|no}

8、cron模块

管理计划任务

        

minute= 指明计划任务的分钟,支持格式:0-59,*,*/2等,与正常cron任务定义的一样的语法,省略时,默认为*,也就是每分钟都执行
hour= 指明计划任务的小时,支持的语法:0-23,*,*/2等,省略时,默认为*,也就是每小时都执行
day= 指明计划任务的天,支持的语法:1-31,*,*/2等,省略时,默认为*,也就是每天都执行
month= 指明计划任务的月,支持的语法为:1-12,*,*/2等,省略时,默认为*,也就是每月都执行
weekday= 指明计划任务的星期几,支持的语法为:0-6,*等,省略时,默认为*,也就是每星期几都执行
name= 给该计划任务取个名称,必须要给明。每个任务的名称不能一样。
job= 执行的任务是什么,当state=present时才有意义
state=present|absent 表示这个任务是创建还是删除,present表示创建,absent表示删除,默认是present

9、group模块

管理用户组

        

常见参数:
    name= 被管理的组名
    state=present|absent 是添加还是删除,不指名默认为添加
    gid= 指明GID
    system=yes|no 是否为系统组

10、user模块

管理用户

        

常见参数:
    name= 指明要管理的账号名称
    state=present|absent 指明是创建账号还是删除账号,present表示创建,absent表示删除
    system=yes|no 指明是否为系统账号
    uid= 指明用户UID
    group= 指明用户的基本组
    groups= 指明用户的附加组
    shell= 指明默认的shell
    home= 指明用户的家目录
    move_home=yes|no 当home设定了家目录,如果要创建的家目录已存在,是否将已存在的家目录进行移动
    password= 指明用户的密码,最好使用加密好的字符串
    comment= 指明用户的注释信息
    remove=yes|no 当state=absent时,也就是删除用户时,是否要删除用户的家目录

 11、script模块

将脚本推送给被管理端自动执行、执行完成后删除脚本

 12、setup模块

搜集被管控端的状态数据(CPU型号、内存大小、硬盘、IP、操作系统版本),统称为facts变量