Ansible的安装与部署

  • 实验准备
  • 主控机 ansible 172.25.10.1
  • 受控机
  • 一、Ansible使用的意义
  • 二、Ansible的安装
  • 三、构建Ansible清单
  • 1.直接书写
  • 2.设定受控主机的组
  • 1.单层清单
  • 2.嵌套清单
  • 3.主机的规范化操作
  • 4.指定其他清单文件
  • 四.ansible 基本配置
  • 1.配置文件
  • 2.常用配置参数
  • 五 构建用户级操作环境



实验准备

主控机 ansible 172.25.10.1

受控机

node1 172.25.10.2
node2 172.25.10.3
node3 172.25.10.4
真机 添加一个IP即可连接主控机1

一、Ansible使用的意义

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


二、Ansible的安装

添加epel源

rpm -ivh http://mirrors.aliyun.com/epel/epel-release-latest-6.noarch.rpm
   阿里云

dnf install ansible -y
ansible --viersion 查看基本信息

ansible的基本信息:
/etc/ansible/ansible.conf ##全局配置文件,默认很少修改
/etc/ansible/hosts ##全局主机清单清单文件


三、构建Ansible清单

清单就是ansible的控制主机列表
/etc/ansible/hosts 全局清单

1.直接书写

ansible主机组 python ansible搭建_Ansible


ansible主机组 python ansible搭建_配置文件_02

2.设定受控主机的组

ansible 清单中组名称 [-i 清单文件]  --list-hosts
ansible ungrouped --list-hosts
ansible all --list-hosts

1.单层清单

[list1]

172.25.10.2

[list2]

172.25.10.2

172.25.10.3

[list3]

172.25.10.4

ansible主机组 python ansible搭建_清单文件_03

2.嵌套清单

[westos:children]

list2

list3

ansible主机组 python ansible搭建_ansible主机组 python_04

ansible list1 --list-hosts
  hosts (1):
  172.25.10.2
ansible list2 --list-hosts
  hosts(2)
  172.25.10.2
  172.25.10.3
ansible westos --list-hosts
hosts (3):
  172.25.10.2
  172.25.10.3
  172.25.10.4

3.主机的规范化操作

通过指定主机名称或IP的范围可以简化Ansible主机清单
[list_test]
172.25.10.[2:3]
[开始:结束]
测试:

ansible主机组 python ansible搭建_ansible主机组 python_05

4.指定其他清单文件

vim /mnt/inventory
172.25.10.2
[ansible_test]
172.25.10.3
172.25.10.4

cd /mnt

ansible ansible_test -i inventory  --list-hosts
hosts(2)
	172.25.10.3
	172.25.10.4
ansible ungrouped -i inventory  --list-hosts
hosts(1)
	172.25.10.2

四.ansible 基本配置

1.配置文件

/etc/ansible/ansible.cfg #基本配置文件,找不到其他配置文件此文件生效
~/.ansible.cfg #用户当前目录中没有ansible.cfg此文件生效
./ansible.cfg #优先级最高

2.常用配置参数

> default 						##基本信息设定 
> inventory=					##指定清单路径 
> remote_user=					##在受管主机上登陆的用户名称,未指定使用当前用户
> ask_pass=						##是否提示输入SSH密码,如果公钥登陆设定为false 
> library=						##库文件存放目录
> local_tmp=					##本机临时命令执行目录 
> remote_tmp=					##远程主机临时py命令文件存放目录
> forks=						##默认并发数量
> host_key_checking=			##第一次连接受管主机时是否要输入yes建立host_key
> sudo_user=					##默认sudo用户
> ask_sudo_pass=				##每次在受控主机执行ansible命令时是否询问sudo密码
> module_name=					##默认模块,默认使用command,可以修改为shell 
> log_path=						##日志文件路径
> [privilege_escalation]		##身份信息设定 
> become=						##连接后是否自动切换用户
> become_method=				##设定切换用户的方式,通常用sudo
> become_user=					##在受管主机中切换到的用户,通常为root
> become_ask_pass				##是否需要为become_method提示输入密码,默认为false

五 构建用户级操作环境

[westos@localhost ~]$ vim ansible.cfg

ansible主机组 python ansible搭建_配置文件_06


  1. 添加IP 172.25.10.254 真机可连接主控机与受控机 ↩︎