ansible模块的使用

ansible

可实现:
1)自动化部署APP
2)自动化管理配置项
3)自动化持续交付
4)自动化云服务管理
ansible的优点:
1)需要ssh和Python即可
2)无客户端
3)功能强大,模块丰富
4)上手太容易,门槛低
5)基于Python的开发
6)使用公司比较多,社区活跃
ansible基于ssh协议来管理机器,被管理主机需要开启ssh服务
ansible执行时配置文件的查找顺序 :
1、首先检测ANSIBLE_CONFIGd变量定义的配置文件
2、其次检测当前目录下的./ansible.cfg文件
3、再次检测当前用户的家目录下~/ansible.cfg文件
4、最后检测/etc/ansible/ansible.cfg文件

/etc/ansible/ansible.cfg是ansible默认的配置文件路径
ansible.cfg配置文件主要的参数
1、inventory :用来指定主机清单路径
2、remote_user = alice //连接受管机的远程用户名(root情况可以省略)
3、roles_path = roles //角色目录(当用到角色时指定的路径)
【app:children】 a1
代表a1组是app组的子组

ansible命令基础

ansible 主机集合 -m 模块名 -a 模块参数
主机集合:多个用逗号分隔
-m: 模块名 默认是command
-a or --args 模块参数:
其他的参数
-i: inventory文件路径,或者可执行的脚本
-k: 使用交互式的登陆密码
-e:定义变量
-v: 显示详细信息

  • 列出要执行的主机
    ansible all --list-hosts
  • 批量检测主机
    ansible all -m ping -k
ansible模块的使用
  • ansible-doc
    相当于shell中的man帮助手册
    ansible-doc -l #列出所有的模块
  • ping模块
    用于测试网络连通性,没有参数
  • command模块(不支持特殊字符的使用【<、>、|、&】)
    ansible默认的模块,用于远程执行命令
ansible all -m command -a ‘uptime’   #查看所有主机的负载
  • shell模块
    用法和 command类似,他是通过/bin/bash来执行指令,支持特殊字符,支持任何的命令,无法执行交互式的命令【vim、top】
ansible all -m shell -a 'uptime'   #查看所有机器的负载

切换目录一般用chdir来 代替cd命令

  • script模块
    在本地写一个脚本,使用script模块批量执行

  • yum模块
    用来远程安装软件包
    -name:软件名 -state:动作
    -install===installed

    -remove===removed

  • service模块
    -name: 服务名
    -enabled: 开机是否启动 yes、no
    -sleep:执行了restarted会在stop和start之间睡眠几秒
    -state:当前服务执行(started、stopped、restarted、reloaded)

  • copy模块
    用于复制文件到远程主机
    -src:源文件路径(当前服务器的文件路径,当后面有/时复制目录下的内容,当没有/时连同目录一起复制)
    -dest: 目标文件路径(远程服务器的文件路径)
    -force: yes/no 是否强制执行(目标服务器有该文件会覆盖)

~]# ansible all -m copy -a 'src=/etc/hostname dest=/etc/hostname'
  • lineinfile模块
    类似于sed的行编辑替换的模块
    -path:目标文件
    -regexp:正则,要修改的行
    -line:最终修改的结果
    **例:**修改my.cnf中,bin-log格式,mixed–>row
~]# ansible db -m lineinfile -a '
path="/etc/my.cnf"
regexp="^binlog-format"
line="binlog-format = row "
'
  • replace模块
    类似于sed的行编辑替换的模块
    -path:目标文件
    -regexp:正则,要修改的行
    -replace:替换后的结果
    **例:**替换指定字符row–>mixed
~]# ansible db -m replace -a '
path="/etc/my.cnf"
regexp="row"
replace="mixed"
'
  • setup模块
    用于获取主机信息,playbook中常用
    -filter: 过滤所需信息
~]# ansible cache -m setup -a 'filter=ansible_distribution'
  • file模块
    文件模块,用于创建文件或者目录
    -path:指定路径
    -state:指定类型(directory、touch【不存在创建】、file【不存在跳过】、link、hard、absent【取消文件、目录、软连接】)
~]# ansible host1 -m file -a "path=/test owner=test group=test mode=0644"

~]# ansible host1 -m file -a "src=/test dest=/testlink owner=root group=root state=link" 
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值