菜单

Ansible自动化运维工具基本用法

duckflew
发布于 2022-06-30 / 249 阅读
0
0

Ansible自动化运维工具基本用法

Ansible分享

安装

yum -y install epel-release
yum -y install ansible

配置被控主机地址

vim /etc/ansible/host
[webserver]
172.16.1.[4:5]

相关命令

ansible

核心命令

ansible 主机组 -m 模块名  -a '参数内容'
# 默认模块为command模块
ansible-doc

文档工具

ansible-doc -s 模块名

用于查询模块的具体作用以及参数列表 不加-s表示详细文档

ansible-galaxy
ansible-playbook

任务计划脚本编排工具 重点下面单独展开说

ansible-console

交互工具

ansible-vault

加密解密

常用模块

  • command

  • ping

  • shell

    执行shell命令,相较于command 支持*通配符 管道符等一些稍微复杂的指令

  • script

    执行控制端的一些脚本

  • copy

    复制文件到被控端

  • fetch

    从被控主机获取文件

  • file

    设置文件属性

    examples:

    #创建空文件
    ansible all -m file -a 'path=/data/test.txt state=touch'
    ansible all -m file -a 'path=/data/test.txt state=absent'
    ansible all -m file -a 'path=/data/test.txt owner=wang mode=755'
    # 创建目录
    ansible all -m file -a 'path=/data/mysql state=directory owner=wang group=mysql'
    
  • unarchive

    解包解压缩

    实现有两种用法:

    • 将ansible主机上的压缩包传到主机后解压到特定目录,设置copy=yes
    • 将远程主机上的某个压缩包解压缩到指定路径下,设置copy=no
  • archive

    打包压缩

  • hostname

    管理主机名

    ansible node1 -m hostname -a 'name=web1'
    
  • cron

    计划任务 支持时间有:minute,hour day ,month,weekday

image-20220630170548158

  • yum

    管理软件包

    ansible all -m yum -a 'name=httpd state=present' #安装
    ansible all -m yum -a 'name=httpd state=absent' #删除
    
  • service

    启动 关闭服务

    ansible all -m service -a 'name=httpd state=stared enable=yes'
    ansible all -m service -a 'name=httpd state=stopped'
    ansible all -m service -a 'name=httpd state=reloaded'
    ansible all -m service -a 'name=httpd state=restarted'
    
  • user

    管理用户

    ansible all -m user -a 'name=user1 comment "test user" uid=2048 home=/app/user1 group=root'
    
  • group

    管理组

    # 创建组
    ansible all -m group -a 'name=nginx gid=88 system=yes'
    # 删除组
    ansible all -m group -a 'name=nginx state=absent'
    
  • lineinfile

    ansible在使用sed进行替换的时候进程会遇到需要转义的问题,而且ansible在遇到特殊符号的时候存在问题,无法正常进行替换 ansible提供了两个模块可以方便的进行替换 lineinfile和replace模块

    功能 相当于sed 可以修改文件内容

    image-20220630171924919

  • replace

    类似sed命令 主要也是基于正则进行匹配和替换

    image-20220630171954155

  • setup

    setup模块用来收集主机的系统信息 这些fact信息可以以变量的形式使用,但是如果主机较多,会影响执行速度,可以是哦用gather_facts: no 来禁止ansible手机facts信息

image-20220630172153430


评论