初识ansible

Ansible 一种集成 IT 系统的配置管理、应用部署、执行特定任务的开源平台,是 AnsibleWorks 公司名下的项目,该公司由 Cobbler 及 Func 的作者于 2012 年创建成立。

Ansible 基于 Python 语言实现,由 Paramiko 和 PyYAML 两个关键模块构建。

Ansible 特点:

  1. 部署简单,只需在主控端部署 Ansible 环境,被控端无需做任何操作。
  2. 默认使用 SSH(Secure Shell)协议对设备进行管理。
  3. 主从集中化管理。
  4. 配置简单、功能强大、扩展性强。
  5. 支持 API 及自定义模块,可通过 Python 轻松扩展。
  6. 通过 Playbooks 来定制强大的配置、状态管理。
  7. 对云计算平台、大数据都有很好的支持。 >> 提供一个功能强大、操作性强的 Web 管理界面和 REST API 接口 —- AWX 平台。

1.安装ansible

yum install -y ansible

2.配置文件说明

ls -l /etc/ansible/ 
total 36
-rw-r--r-- 1 root root 19315 Jun 16 05:17 ansible.cfg 
-rw-r--r-- 1 root root 1035 Jul 10 14:40 hosts 
drwxr-xr-x 2 root root 4096 Jun 16 05:17 roles

ansible.cfg     ansible的配置文件

inventory = /etc/ansible/hosts 配置inventory文件

library = /usr/share/ansible 配置ansible模块目录

forks =5 默认最多几个进程同时工作

Sudo_user = root

Remote_port =22

Host_key_checking = False 是否检车ssh主机秘钥

Timeout = 60 ssh超时时间

log_path = /var/log/ansible.log 默认不记录日志

hosts为Inventory文件

如果inventory 指向一个目录,如下所示

inventory = /root/inventory

目录下面可以创建已hosts文件命名的,该文件放置的时单个主机

也可以创建已组命名的文件,如group,该文件内的主机为该组下的主机

命令可以使用–list-hosts查看

Ansible hostgroup –list-hosts

Inventory文件简单配置

[hostgroup]

Host1  ansible_ssh_user=root  ansible_ssh_port=22,ansible_ssh_pass = '123456'

Host2

192.168.0.[1:10] 表示10个ip

[Hostgroup:children]  多个主机组

Hostgroup1

Hostgroup2

[hostgroup:vars]  定义主机组变量

Http_port =80

ansible简单使用

-i 指定 inventory文件 可不写,默认为/etc/ansiable/hosts 后面跟组名或者主机名

-u 指定用户

-m 模块 默认是command模块

-a 模块命令

-k 提示输入密码

-f 一次性并发的进程 forks

-P 0 返回默认job id,通过 -m async_status -a ‘jid=’ 来查询该任务

ansible all 表示所有主机

ansible优化

开始ssh长连接

Openssh 5.6版本以上支持

sh_args = -o ControlMaster = auto -o ControPersist =5d 设置长连接时间为5天

开启pipelining

pipelining = True

开启accelerate

[accelerate]

accelerate_port = 5099

accelerate_timeout = 30

accelerate_connect_timeout = 5.0

设置facts缓存

gathering = smart

fact_caching_timeout = 86400

fact_caching = jsonfile/redis/memcached 可以使用redis,memcached或者json文件

fact_caching_connection = /dev/shm/ansible_fact_cache

fact_caching_connection = localhost:6379:0:admin admin为redis密码


初识ansible
http://www.jcwit.com/article/205/
作者
Carlos
发布于
2018年7月24日
许可协议