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

  1. 什么是 Ansible?

    • Ansible是一款自动化运维工具,其主要功能是帮助运维实现IT工作的自动化、降低人为操作失误、提高业务自动化率、提升运维工作效率。
    • 实现了批量系统配置、批量程序部署、批量运行命令等功能。
    • ansible puppet saltstack 主流的三种。
    • ansible 自动化运维工具 被红帽收购 阿里巴巴在用saltstack python开发。
    • 无客户端,只需安装SSH、Python即可。
    • 支持Windows,但仅支持客户端,服务端必须是Linux系统。
    • 基于OpenSSH通信,底层基于SSH协议(Windows基于PowerShell)。
    • 幂等性:允许重复执行N次,没有变化时,只会执行第一次。
  2. 架构图
    流程图

Ansible:核心
Core Modules:核心模块,Ansible自带的模块。
Custom Modules:自定义模块,上途中错写成Costome,如果核心模块不足以完成某种功能,可以自行添加自定义模块(支持现在主流的大部分编程语言,甚至于shell)
Plugins:插件,支持使用插件的方式对ansible本身的功能进行扩展,模块是用来实现任务的,增强ansible平台自己的功能就需要使用插件(loggin插件记录日志,email插件发送邮件),其中最常用的是:连接插件(Connectionr Plugins)ansible基于连接插件连接到各个主机上,虽然默认情况下ansible使用ssh连接到各个主机上,但它还支持其它的连接方法。
Host Inventory:主机群,主机清单,定义ansible管理的主机,还可以存放一下针对不同主机的变量,也可以写入主机的用户名和密码
Playbooks:ansible的任务配置文件,将多个任务定义在剧中本,由ansible自动执行
Ansible工作原理:把我们执行的命令翻译为shell命令,通过openssh拷贝到目标主机 /root/.ansible/tmp/下,然后再执行,执行完成后删除tmp文件

二、 安装 Ansible

  1. 控制节点
  • 控制节点应是Linux或UNIX系统。不支持将Windows用作控制节点,但Windows系统可以是受管主机。
  • 控制节点需要安装Python3(版本3.5或以上)或Python2(版本2.7或以上)。
  1. 安装
    安装 Ansible文档连接
# 提供yum源
curl -o /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-8.repo

# 安装
[root@hhr ~]# yum -y install  epel-release 
[root@hhr ~]# yum -y install ansible

# 查看版本信息
[root@hhr ~]# ansible --version
ansible 2.9.23
  config file = /etc/ansible/ansible.cfg	//配置文件
  configured module search path = ['/root/.ansible/plugins/modules', '/usr/share/ansible/plugins/modules']	//配置模块搜索路径
  ansible python module location = /usr/lib/python3.6/site-packages/ansible
  executable location = /usr/bin/ansible
  python version = 3.6.8 (default, Dec  5 2019, 15:45:45) [GCC 8.3.1 20191121 (Red Hat 8.3.1-5)] 

三、 Ansible的简单使用

  1. Ansible
–version 显示版本
-v --verbose 详细信息
-a ‘Arguments’, --args=‘Arguments’ 命令行参数
-m NAME, --module-name=NAME 执行模块的名字,默认使用 command 模块,所以如果是只执行单一命令可以不用 -m参数
-i PATH, --inventory=PATH 指定库存主机文件的路径,默认为/etc/ansible/hosts.
-u Username, --user=Username 执行用户,使用这个远程用户名而不是当前用户
-U --sud-user=SUDO_User sudo到哪个用户,默认为 root
-k --ask-pass 登录密码,提示输入SSH密码而不是假设基于密钥的验证
-K --ask-sudo-pass 提示密码使用sudo
-s --sudo sudo运行
-S --su 用 su 命令
-l --list 显示所支持的所有模块
-s --snippet 指定模块显示剧本片段
-f --forks=NUM 并行任务数。NUM被指定为一个整数,默认是5。 #ansible testhosts -a “/sbin/reboot” -f 10 重启testhosts组的所有机器,每次重启10台
–private-key=PRIVATE_KEY_FILE 私钥路径,使用这个文件来验证连接
all 针对hosts 定义的所有主机执行
-M MODULE_PATH, --module-path=MODULE_PATH 要执行的模块的路径,默认为/usr/share/ansible/
-o --one-line 压缩输出,摘要输出.尝试一切都在一行上输出。
-t Directory, --tree=Directory 将内容保存在该输出目录,结果保存在一个文件中在每台主机上。
-B 后台运行超时时间
-b, –become 代替旧版的sudo 切换
-P 调查后台程序时间
  1. user 模块
  • name:指定用户名。
  • createhome:是否创建家目录 yes|no。
  • system:是否为系统用户。
  • remove:当state=absent时,remove=yes则表示连同家目录一起删除,等价于userdel -r。
  • state:是创建还是删除。(present,absent)
  • shell:指定用户的shell环境。
  • generate_ssh_key:是否为相关用户生成SSH密钥。 这不会覆盖现有的SSH密钥。
  • ssh_key_bits:可选择指定要创建的SSH密钥中的位数。
  • ssh_key_passphrase:设置SSH密钥的密码。 如果没有提供密码,SSH密钥将默认没有密码。
  • ssh_key_file:指定SSH密钥文件名(可选)。 如果这是一个相对的文件名,那么它将是相对于用户的主目录。
  • ssh_key_type:指定要生成的SSH密钥的类型(可选)。 可用的SSH密钥类型将取决于目标主机上的实现。
[root@hhr ~]# ansible localhost -m user -a "name=hhr state=present "
localhost | CHANGED => {
    "changed": true,
    "comment": "",
    "create_home": true,
    "group": 1001,
    "home": "/home/hhr",
    "name": "hhr",
    "shell": "/bin/bash",
    "state": "present",
    "system": false,
    "uid": 1001
  1. ping模块
[root@hhr ~]# ansible -m ping localhost 
localhost | SUCCESS => {
    "changed": false,
    "ping": "pong"
}
  系统运维 最新文章
配置小型公司网络WLAN基本业务(AC通过三层
如何在交付运维过程中建立风险底线意识,提
快速传输大文件,怎么通过网络传大文件给对
从游戏服务端角度分析移动同步(状态同步)
MySQL使用MyCat实现分库分表
如何用DWDM射频光纤技术实现200公里外的站点
国内顺畅下载k8s.gcr.io的镜像
自动化测试appium
ctfshow ssrf
Linux操作系统学习之实用指令(Centos7/8均
上一篇文章      下一篇文章      查看所有文章
加:2021-07-14 23:19:00  更:2021-07-14 23:20:50 
 
开发: 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 17:55:06-

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