IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 系统运维 -> Ansible基础 -> 正文阅读

[系统运维]Ansible基础

Ansible


什么是ansible
Ansible是一个自动化统一配置管理工具,自动化主要体现在Ansible集成了丰富模块以及功能组件,可以通过一个命
令完成一系列的操作,进而能减少重复性的工作和维护成本,可以提高工作效率。

同类型软件对比

1.puppet 学习难,安装ruby环境难,没有远程执行功能 2.ansible 轻量级,大规模环境下只通过ssh会很慢,串行的
3.saltstack 一般选择salt会使用 C/S 结构的模式, salt-master 和 salt-minion ,并行的,大规模批量操作的情况
下,会比Ansible速度快一些,底层使用的是 zero-MQ 消协队列

自动化运维优势

1.提高工作效率
2.提高工作准确度
3.减少维护成本
4.减少重复性工作

Ansible优缺点

优点
1.远程执行 批量执行远程命令,可以对多台主机进行远程操作
2.配置管理 批量配置软件服务,可以进行自动化方式配置,服务的统一配置管理,和启停
3.事件驱动 通过Ansible的模块,对服务进行不同的事件驱动 比如: 1)修改配置后重启 2)只修改配置文件,不重
启 3)修改配置文件后,重新加载 4)远程启停服务管理
4.管理公有云 通过API接口的方式管理公有云,不过这方面做的不如 saltstack . saltstack本身可以通过saltcloud管
理各大云厂商的云平台。
5.二次开发 因为语法是Python,所以便于运维进行二次开发。
6.任务编排 可以通过playbook的方式来统一管理服务,并且可以使用一条命令,实现一套架构的部署
7.跨平台,跨系统 几乎不受到平台和系统的限制,比如安装 apache 和启动服务
缺点
1.受到ssh的限制
2.串行执行任务

Ansible的架构

在这里插入图片描述
1、连接插件 connection plugins 用于连接主机 用来连接被管理端
2、核心模块 core modules 连接主机实现操作, 它依赖于具体的模块来做具体的事情
3、自定义模块 custom modules 根据自己的需求编写具体的模块
4、插件 plugins 完成模块功能的补充
5、剧本 playbook ansible的配置文件,将多个任务定义在剧本中,由ansible自动执行
6、主机清单 inventor 定义ansible需要操作主机的范围

最重要的一点是 ansible是模块化的 它所有的操作都依赖于模块

Ansible执行流程

环境准备
在这里插入图片描述

安装

# 1.安装ansible
[root@m01 ~]# yum install -y ansible
# 2.ansible的配置文件
[root@m01 ~]# vim /etc/ansible/ansible.cfg
# 3.ansible配置文件读取顺序
1$ANSIBLE_CONFIG
2、./ansible.cfg
3、~/.ansible.cfg
4、/etc/ansible/ansible.cfg
# 4.ansible配置文件
[root@m01 ~]# cat /etc/ansible/ansible.cfg
#inventory   = /etc/ansible/hosts   #主机列表配置文件
#library    = /usr/share/my_modules/ #库文件存放目录
#remote_tmp   = ~/.ansible/tmp     #临时py文件存放在远程主机目录
#local_tmp   = ~/.ansible/tmp     #本机的临时执行目录
#forks     = 5            #默认并发数
#sudo_user   = root          #默认sudo用户
#ask_sudo_pass = True           #每次执行是否询问sudo的ssh密码
#ask_pass   = True           #每次执行是否询问ssh密码
#remote_port  = 22           #远程主机端口
#poll_interval = 15  #对于Ansible中的异步任务, 这个是设置定义,当具体的poll
interval 没有定义时,多少时间回查一下这些任务的状态, 默认值是一个折中选择15秒钟.这个时间是个回查频率和
任务完成叫回频率和当任务完成时的回转频率的时钟。
host_key_checking = False         #跳过检查主机指纹
log_path = /var/log/ansible.log      #ansible日志

Ansible Inventory(主机清单)

/etc/ansible/hosts 是ansible默认主机资产清单文件,用于定义被管理主机的认证信息, 例如ssh登录用户名、
密码以及key相关信息。Inventory文件中填写需要被管理的主机与主机组信息。还可以自定义Inventory主机清单的
位置,使用-i指定文件位置即可。

ansible语法

anisble [主机名] -m 指定模块
ansible all -m ping

ansible连接方式一:基于密码连接

假如密码都设置为1

[root@m01 ~]# vim /etc/ansible/hosts
[zls_web]
172.16.1.7 ansible_ssh_port=22 ansible_ssh_user=root ansible_ssh_pass='1'
172.16.1.8 ansible_ssh_port=22 ansible_ssh_user=root ansible_ssh_pass='1'
[zls_db]
172.16.1.51 ansible_ssh_port=22 ansible_ssh_user=root ansible_ssh_pass='1'
[zls_lb]
172.16.1.5 ansible_ssh_port=22 ansible_ssh_user=root ansible_ssh_pass='1'
172.16.1.6 ansible_ssh_port=22 ansible_ssh_user=root ansible_ssh_pass='1'
[zls_nfs]
172.16.1.31 ansible_ssh_port=22 ansible_ssh_user=root ansible_ssh_pass='1'
[zls_backup]
172.16.1.41 ansible_ssh_port=22 ansible_ssh_user=root ansible_ssh_pass='1'

ansible连接方式二:基于主机名连接(变量)

[webs]
web0[1:2]
[webs:vars]
ansible_ssh_pass='1'
ansible_ssh_user=root
ansible_ssh_port=22

ansible连接方式三:基于秘钥连接

# 1.在ansible管理端生成秘钥对
[root@m01 ~]# ssh-keygen
# 2.下发公钥
[root@m01 ~]# ssh-copy-id -i ~/.ssh/id_rsa.pub root@172.16.1.5
[root@m01 ~]# ssh-copy-id -i ~/.ssh/id_rsa.pub root@172.16.1.6
[root@m01 ~]# ssh-copy-id -i ~/.ssh/id_rsa.pub root@172.16.1.7
[root@m01 ~]# ssh-copy-id -i ~/.ssh/id_rsa.pub root@172.16.1.8
[root@m01 ~]# ssh-copy-id -i ~/.ssh/id_rsa.pub root@172.16.1.31
[root@m01 ~]# ssh-copy-id -i ~/.ssh/id_rsa.pub root@172.16.1.41
[root@m01 ~]# ssh-copy-id -i ~/.ssh/id_rsa.pub root@172.16.1.51
[root@m01 ~]# ssh-copy-id -i ~/.ssh/id_rsa.pub root@172.16.1.61
# 3.主机清单
[root@m01 ~]# vim /etc/ansible/hosts
[xxx]
172.16.1.7
172.16.1.8
172.16.1.5
172.16.1.6
172.16.1.31
172.16.1.41
172.16.1.51
[root@m01 ~]# ansible xxx -m ping

ansible连接方式四:主机名+IP+免密

[root@m01 ~]# vim /etc/ansible/hosts
[web_group]
web01 ansible_ssh_host=172.16.1.7
web02 ansible_ssh_host=172.16.1.8
[lb_group]
lb01 ansible_ssh_host=172.16.1.5
lb02 ansible_ssh_host=172.16.1.6
[nfs_group]
nfs ansible_ssh_host=172.16.1.31
[bakcup_group]
backup ansible_ssh_host=172.16.1.41
[db_group]
db01 ansible_ssh_host=172.16.1.51
  系统运维 最新文章
配置小型公司网络WLAN基本业务(AC通过三层
如何在交付运维过程中建立风险底线意识,提
快速传输大文件,怎么通过网络传大文件给对
从游戏服务端角度分析移动同步(状态同步)
MySQL使用MyCat实现分库分表
如何用DWDM射频光纤技术实现200公里外的站点
国内顺畅下载k8s.gcr.io的镜像
自动化测试appium
ctfshow ssrf
Linux操作系统学习之实用指令(Centos7/8均
上一篇文章      下一篇文章      查看所有文章
加:2021-08-11 12:50:23  更:2021-08-11 12:52:56 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/25 18:19:28-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码