ansible概念及使用

1. ansible概念

absible 简介
absible是一款自动化运维工具,基于Python开发,集合了众多运维工具(puppet、cfengine、chef、func、fabric)优点,实现了批量系统配置、批量程序部署、批量运行命令等功能。ansible是基于模块工作,本身没有批量部署的能力。真正具有批量部署的是ansible所运行的模块,ansible只是提供一种框架。主要包括:
(1)连接插件connection plugins:负责和被监控端实现通信;
(2)host inventory : 指定操作的主机,是一个配置文件里面定义监控的主机;
(3)各种模块核心模块、command模块、自定义模块;
(4)借助于插件完成记录日志邮件等功能;
(5)playbook:剧本执行多个任务时,非必须可以让节点一次运行多个任务
ansible 架构图:
ansible概念及使用_第1张图片

2. ansible安装

2.1 yum安装

通过Yum安装命令:yum install ansible -y
通过yum卸载命令:yum -y remove ansible
通过命令:rpm -ql ansible | sed -n ‘1,20p’ 能够查看前面20行的列表,如下图:
ansible概念及使用_第2张图片

2.2 修改Hosts文件

通过切换目录,查看/etc/ansible/hosts的文件,进行修改。
ansible概念及使用_第3张图片

2.3 主机受信设置

生成公钥命令:ssh-keygen -t rsa -P ‘’
传送公钥到受信主机:ssh-copy-id -i .ssh/id_rsa.pub [email protected]
如图:
ansible概念及使用_第4张图片
验证是否已经受信命令:ansible all -m ping
ansible概念及使用_第5张图片

3 ansible简单应用

ansible基本语法格式:
ansible < host-pattern > [-f forks] [-m module-name] [-a args]
如果没有标注模块,默认使用command模块

3.3 模块应用

1查看某个模块的帮助信息命令:ansible-doc -s copy
ansible概念及使用_第6张图片

3.3.1 常用模块使用

copy模块使用
在这里插入图片描述
cron模块使用
在这里插入图片描述
ansible概念及使用_第7张图片
group模块使用
在这里插入图片描述
组的创建命令:
在这里插入图片描述
user模块使用
获取帮助命令:
在这里插入图片描述
yum模块使用
获取帮助:
ansible概念及使用_第8张图片
安装命令:
在这里插入图片描述
service模块使用
ansible概念及使用_第9张图片
ansible概念及使用_第10张图片

4 playbook使用

playbook使用的是yaml语言,
在这里插入图片描述
ansible概念及使用_第11张图片
ansible概念及使用_第12张图片
ansible概念及使用_第13张图片
ansible概念及使用_第14张图片
ansible概念及使用_第15张图片

4.1 简单实例

编写一个test.yaml文件如下:

  • hosts: all
    remote_user: root
    tasks:
    • name: add a group
      group: gid=1000 name=testgroup system=no
    • name: exccute a command
      command: date
      注意事项:
  1. 所有的冒号后面都要加空格
  2. hosts后面的值是在hosts文件中配置的一组主机
  3. 所有的任务都要有名字和模块名称
  4. command模块是一个特殊的模块,直接跟bash命令就可以。

执行执行命令: ansible-playbook test.yaml
ansible概念及使用_第16张图片

5 总结

本篇文章带着做了如下工作:

  1. 了解ansible概念
  2. 安装了ansible
  3. 配置了ansible inventory文件(在配置文件/etc/ansible/hosts)
  4. 了解ansible核心模块及应用
  5. 创建一个基本的Playbook来运行多个任务(tasks),并使用了处理程序(handlers)
    ansible是用python开发的一款便捷式的自动化运维工作,可以在python语言中直接调用ansible,也有更灵活的方式使用ansible就是利用ansible shell。

你可能感兴趣的:(study,Python)