欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

Ansible自动化运维(1)

程序员文章站 2022-07-05 22:25:42
...

一:ansible介绍

  • Ansible 是个与 Puppet, SaltStack, Chef 并驾齐驱的组态设定 (Infrastructure as Code) 工具,其简单易用的特性让人爱不释手,在 DevOps 界更佔有一席之地。
  • Ansible 提供一种最简单的方式用于发布、管理和编排计算机系统的工具,你可在数分钟内搞定。
  • Ansible 是一个模型驱动的配置管理器,支持多节点发布、远程任务执行。默认使用 SSH 进行远程连接。无需在被管理节点上安装附加软件,可使用各种编程语言进行扩展。

二:ansible特性

  • 拥有模块化的设计,Ansible能够调用特定的模块来完成特定任务 ,本身是核心组件,短小精悍
  • Ansible是基于Python语言实现的,由Paramiko (python 的一个可并发连接 ssh 主机功能库 ) , PyYAML和Jinja2 ( 模板化 ) 三个关键模块实现
  • Ansible的部署比较简单,agentless 无客户端工具
  • 以主从模式工作
  • 支持自定义模块功能
  • 支持playbook剧本,连续任务按先后设置顺序完成

三:ansible环境部署

3.1:ansible工作模式

当 Control Machine (主控端) 可以用 SSH 连上 Managed node,且被连上的机器里有预载 Python 时,Ansible 就可以运作了!
Ansible自动化运维(1)

  • Control Machine 指的是我们主要在上面操作 Ansible 的机器
  • Managed node 则是被 Ansible 操纵的机器

3.2:ansible安装

我们只需在 Control Machine 里安装 Ansible 即可

[aaa@qq.com ~]# yum -y install epel-release
[aaa@qq.com ~]# yum -y install ansible

3.3: ansible 配置

安装好 Ansible 后,我们可以在 /etc/ansible/ 的目录底下找到 Ansible 的配置文件(ansible.cfg)。

[aaa@qq.com ansible]# pwd
/etc/ansible
[aaa@qq.com ansible]# ll
total 24
-rw-r--r-- 1 root root 19985 Oct  8 01:35 ansible.cfg
-rw-r--r-- 1 root root  1016 Oct  8 01:35 hosts
drwxr-xr-x 2 root root     6 Oct  8 01:35 roles

[aaa@qq.com ansible]# cat  ansible.cfg 
	inventory = /etc/ansible/hosts		#这个参数表示资源清单inventory文件的位置
	library = /usr/share/ansible		#指向存放Ansible模块的目录,支持多个目录方式,只要用冒号(:)隔开就可以
	forks = 5		#并发连接数,默认为5
	sudo_user = root		#设置默认执行命令的用户
	remote_port = 22		#指定连接被管节点的管理端口,默认为22端口,建议修改,能够更加安全
	host_key_checking = False		#设置是否检查SSH主机的**,值为True/False。关闭后第一次连接不会提示配置实例
	timeout = 60		#设置SSH连接的超时时间,单位为秒
	log_path = /var/log/ansible.log		#指定一个存储ansible日志的文件(默认不记录日志)

3.3.1: ansible 主机清单

inventory 就单词本身有详细目录、清单和列表的意思。
在这里我们可以把它当成是一份主机列表,我们可通过它定义每个 Managed Node 的代号、IP 位址和群组信息。

#定义一个主机组[组名]把地址或主机名加进去
[test]
10.159.232.1
10.159.232.233
10.159.232.234

批量执行命令"pwd"

[aaa@qq.com ansible]# ansible test -m command -a "pwd"
10.159.232.233 | CHANGED | rc=0 >>
/root
10.159.232.1 | CHANGED | rc=0 >>
/root
10.159.232.234 | CHANGED | rc=0 >>
/root

相关标签: ansible