自动化运维之Ansible的安装部署与命令模块

Ansible是新出现的自动化运维工具,基于Python开发,集合了众多运维工具(puppet、cfengine、chef、func、fabric)的优点,实现了批量系统配置、批量程序部署、批量运行命令等功能。

Ansible是基于模块工作的,本身没有批量部署的能力。真正具有批量部署的是ansible所运行的模块,ansible只是提供一种框架。

主要包括:

(1)连接插件connection plugins:负责和被监控端实现通信;

(2)host inventory:指定操作的主机,是一个配置文件里面定义监控的主机;

(3)各种模块核心模块、command模块、自定义模块;

(4)借助于插件完成记录日志邮件等功能;

(5)playbook:剧本执行多个任务时,非必需可以让节点一次性运行多个任务。

搭建环境

管理端:CentOS7-1 192.168.177.145

被管理端:centos7-2 192.168.177.135

被管理端:centos7-3 192.168.177.132

Ansible安装

192.168.177.145:

# systemctl stop firewalld.service //关闭防火墙 # setenforce 0 # yum install -y epel-release //安装epel源 # yum install ansible -y //安装Ansible # vim /etc/ansible/hosts [abc] 192.168.177.135 [mysql] 192.168.177.132 # ssh-keygen -t rsa //设置密钥对 # ssh-copy-id root@192.168.177.135 # ssh-copy-id root@192.168.177.132 //配置密钥对 # ssh-agent bash //免交互代理 # ssh-add

自动化运维之Ansible的安装部署与命令模块


自动化运维之Ansible的安装部署与命令模块


自动化运维之Ansible的安装部署与命令模块


192.168.177.135(另一台也一样):

# systemctl stop firewalld.service //关闭防火墙 # setenforce 0 # cd ~/.ssh

自动化运维之Ansible的安装部署与命令模块

Ansible命令行模块 command模块

命令格式:ansible [主机] [-m 模块] [-a args]

# ansible 192.168.177.135 -m command -a 'date' //指定ip执行date # ansible mysql -a 'date' //指定分类执行date


cron模块

用于定义任务计划

两种状态(state):present表示添加(可以省略),absent表示移除。

# ansible-doc -s cron //查看cron模块信息 # ansible abc -m cron -a 'minute="*/1" job="/usr/bin/echo nihao"' //添加周期性计划任务 # ansible abc -a 'crontab -l' # ansible abc -m cron -a 'name="test nihao" state=absent' //移除计划任务,假如该计划任务没有取名字,name=None即可

自动化运维之Ansible的安装部署与命令模块


自动化运维之Ansible的安装部署与命令模块

user模块

用于创建新用户和更改删除已存在的用户

user模块是请求的是useradd, userdel, usermod三个指令

# ansible-doc -s user # ansible mysql -m user -a 'name=zhangsan' //创建zhangsan # ansible mysql -m user -a 'name=zhangsan state=absent' //删除zhangsan

自动化运维之Ansible的安装部署与命令模块


自动化运维之Ansible的安装部署与命令模块

group模块

对用户组进行管理

group模块请求的是groupadd, groupdel, groupmod 三个指令

# ansible mysql -m group -a 'name=test gid=306 system=yes' //创建test组 # ansible mysql -m user -a 'name=wang' //创建用户wang # ansible mysql -m group -a 'name=test1 gid=506 system=yes' //创建test1组 # ansible mysql -m user -a 'name=wang uid=506 group=test1 system=yes' //将wang添加到test1组

自动化运维之Ansible的安装部署与命令模块



自动化运维之Ansible的安装部署与命令模块

copy模块

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/fe222638e4aeebdeeb5b072e25fe32c4.html