1. ansible简介
ansible是一款基于Python的自动化运维工具,可以对系统进行批量配置、批量程序部署、批量执行命令。宏观的说,ansible是一种框架 ,他的各种模块才真正有批量部署能力。
2. ansible的特点
1.部署简单,只需要在主服务器上操作,被控端无需任何操作
2.使用SSH协议对设备进行管理
3.具有大量的操作模块,功能强大
4.轻量级,只需要在操作的机器上进行更新即可
5.通过playbooks可以实现更多功能
3. ansible 的安装及配置详解
安装
简单的说,两种安装方式 yum和pip
```
yum -y install ansible(前提装好epel源)
(yum -y install epel-release)
pip install ansible(前提安装好python-pip包并安装)
```
配置文件
ansible的配置文件路径:/etc/ansible/ansible.cfg
inventory = /etc/ansible/hosts #这个参数表示资源清单inventory文件的位置
library = /usr/share/ansible #指向存放Ansible模块的目录,支持多个目录方式,只要用冒号
host_key_checking = False #设置是否检查SSH主机的密钥,值为True/False。关闭后第一次连接不会提
示配置实例
timeout = 60 #设置SSH连接的超时时间,单位为秒
log_path = /var/log/ansible.log #指定一个存储ansible日志的文件(默认不记录日志)
ansible-doc帮助命令
```
ansible-doc -l #获取全部模块的信息
ansible-doc -s mod_name #获取指定模块的使用帮助
```
ansible 命令格式
ansible web -m 指定模块名 -a执行的命令
4. 配置主服务器和其他从服务器之间的关系
1.首先要推公钥(步骤如下)
ssh-keygen (生成公钥)
ssh-copy-id +ip地址 (记住,推给谁 连接谁就不需要密码)
这几个命令需要的安装包(yum -y install openssh-clientsansible)
2. cd到/etc/ansible中 然后 mv hosts hosts.bak 再 vim hosts 在其中添加 [web] 下面写被控制主机的ip地址
3. 运用命令 ansible web -m ping ip 命令进行连通性测试
至此配置完成 可以运用下面的各种模块进行部署
5.各种模块简介
1.command模块
这个模块可以直接在远程主机上执行命令 但是shell中的某些功能不能用 比如管道
```
ansible web -m command -a 'ss -ntl'
```
2. shell模块
shell模块可以在远程主机上调用shell解释器运行命令,支持shell的各种功能,例如管道等
```
ansible web -m shell -a 'cat /etc/passwd |grep "keer"'
```
3. copy 模块
这个模块用于将文件复制到远程主机,同时支持给定内容生成文件和修改权限等。
ansible web -m copy -a 'src=~/hello dest=/data/hello'
网友评论