Ansible简介

Ansible 是一种常用的自动运维化工具,基于 python 开发,分布式,无需客户端,轻量级,配置语言采用 YAML。

  1. 模块化:调用特定的模块,完成特殊的任务。
    2.Paramiko (python 对 ssh 的实现),PyYaml,jinja2 (模块语言) 三个关键模块。
  2. 支持自定义模块,可使用任何编程语言写模块。
  3. 基于 python 语言实现。
  4. 部署简单,基于 python 和 SSH (默认已安装),agentless,无需代理不依赖 KPI (无需 SSL)。
  5. 安全,基于 OpenSSH
  6. 幂等性:一个任务执行一次和执行 n 遍效果一样,不因重复执行带来意外情况。
  7. 支持 playbook 编排任务,YAML 格式,编排任务,支持丰富的数据结构。
  8. 较强大的多层解决方案 role。

Ansible 的作用目标:

  1. 自动化部署 APP
  2. 自动化管理配置项
  3. 自动化的持续交付
  4. 自动化的云服务管理

Ansible 的架构:

Ansible简介

Ansible 的工作原理:

Ansible简介

Ansible 命令执行来源:

1> USER,普通用户,即 SYSTEM ADMINISTRATOR
2> CMDB(配置管理数据库) API 调用
3> PUBLIC/PRIVATE CLOUD API 调用 (公有私有云的 API 接口调用)
4> USER-> Ansible Playbook -> Ansibile

利用 ansible 实现管理的方式:

1> Ad-Hoc 即 ansible 单条命令,主要用于临时命令使用场景
2> Ansible-playbook 主要用于长期规划好的,大型项目的场景,需要有前期的规划过程

Ansible-playbook(剧本)执行过程

将已有编排好的任务集写入 Ansible-Playbook
通过 ansible-playbook 命令分拆任务集至逐条 ansible 命令,按预定规则逐条执行

Ansible 主要操作对象

HOSTS 主机
NETWORKING 网络设备
注意事项:
执行 ansible 的主机一般称为主控端,中控,master 或堡垒机
主控端 Python 版本需要 2.6 或以上
被控端 Python 版本小于 2.4 需要安装 python-simplejson
被控端如开启 SELinux 需要安装 libselinux-python
windows 不能做为主控端 ansible 不是服务,不会一直启动,只是需要的时候启动

一:Ansible 的安装

yum install -y epel-release
安装epel源,建议使用下方阿里YUM
rm  -rf /etc/yum.repos.d/*
wget -O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.repo
wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
yum install -y ansible

检测部署是否完成

rpm -ql ansible   列出所有文件
rpm -qc ansible   查看配置文件
ansible --help    查看ansible帮助
ansible-doc -l    看所有模块(A10,华为,docker,EC2,aws等等广大厂商设备)

ansible-doc -s yum
看yum模块,了解其功能
install (present' or ', latest'), or remove (' or `removed')
yum list
Package name
enablerepo

二:免密方式登陆(可选)

ssh-keygen
ssh-copy-id 目标IP地址
推送公钥

三:Ansible基础

3.1:定义主机清单

vim /etc/ansible/hosts
添加到文件最下面
host1
host2
host3
由于本人做了域名解析所以添加的是 host1、host2 未做解析的话添加IP即可

Ansible简介

3.2:测试连通性

ansible host1 -m ping
测试host1连通性
-m 指定模块。什么功能
ping只是其中一个模块。还有shell,yum等等
简洁输出
ansible host1 -m ping  -o

Ansible简介

Ansible简介

3.3:know_hosts

增加用户名选项,增加密码选项

Ansible简介

四:请注意ping和ssh

ping ICMP:网际消息管理协议

关闭host1主机的sshd进程,进行ping连通性测试。

再使用ansible对host1进行联通测试时,却是失败的。

结论ansible的ping,是探测ssh程序是否连接。不是icmp协议

ansible host1 -m ping -u root -k

Original: https://www.cnblogs.com/Jqazc/p/16731771.html
Author: 我真的兔了
Title: Ansible简介

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/611180/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球