linux---集群架构初探(9)Ansible入门

Ansible简介

Ansible是一种自动化运维工具,基于Python开发,模块化工作,实现了批量系统配置、批量程序部署、批量运行命令等功能,其提供了框架,本身并无批量部署的能力,真正实现功能的是其运行的模块,不需要在远程主机上安装client/agents,因为基于ssh通讯。

批量管理工具历史

08年之前:SSH+脚本  08~10年:CFEngine  10~13年:Puppet  14~17年:saltstack  17~现在:ansible

Ansible优点与作用

优点:简单、方便、容易学习、功能强大。

作用:用来批量远程管理服务器,这里的远程主机是任何可以通过SSH登陆的主机。

涉及管理操作:复制文件、安装服务、服务启动停止、配置管理等等。

Ansible特点:基于Python,由Paramiko和PyYAML两个关键模块构建。

       无服务端,无进程,

Ansible架构简介

1.连接插件connectior plugins用于连接主机,用来连接被管理端

2.核心模块 core modules连接主机实现操作,它依赖于具体的模块来做具体的事情

3.自定义模块 custom modules,根据自己的需求编写具体的模块

4.插件 plugins,完成模块功能的补充

5.剧本 playbooks, ansible的配置文件,将多个任务定义在剧本中,由 ansible自动执行

6.主机清单 inventor,定义 ansible需要操作主机的范围

安装Ansible

服务器端(m01):

yum install ansible -y

yum install libselinux-python -y

客户端(web01、web02 这个一般系统都自带):

yum install libselinux-python -y

ansible程序目录结构:

  • 配置文件: /etc/ansible/
  • 执行文件目录: /usr/bin/
  • lib依赖库: /usr/lib/python2.7/site-packages/ansible/
  • help文件: /usr/lib/python2.7/site-packages/ansible

配置文件

服务器端:

主机列表配置文件:/etc/ansible/hosts

ansible配置文件:/etc/ansible/ansible.cfg

测试(web01、web02已经做好秘钥认证,backup使用用户名密码)

注:第一次使用该命令时会报错,因为此时m01服务器秘钥文件/root/.ssh/known_hosts中还没有backup的信息,需要先用ssh远程登录以下:ssh 172.16.1.41

总结:使用秘钥认证连接,需保证已经向远端服务器发送公钥文件并保存在~/.ssh/authorized_keys中

使用密码连接,需保证本地~/.ssh/known_hosts文件中有对方对应的秘钥(可通过ssh连接自动生成)

取消ssh第一次连接时需要输入yes/no提示的2种方法:

1.更改/etc/ansible/ansible.cfg中的第71行,取消注释,host_key_checking = False

2.更改/etc/ansible/ansible.cfg中的第375行

原文地址:https://www.cnblogs.com/1016391912pm/p/13063489.html