当前位置: 首页 > news >正文

Ansible学习笔记(一)

1.什么是Ansible

官方网站:https://docs.ansible.com/ansible/latest/installation_guide/intro_installation.html

Ansible是一个配置管理和配置工具,类似于Chef,Puppet或Salt。这是一款很简单也很容易入门的部署工具,它使用SSH连接到服务器并运行配置好的任务,服务器上不用安装任何多余的软件,只需要开启ssh,所有工作都交给client端的ansible负责。

1.1Ansible的特性

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

1.2 安装ansible (基于centos8)

evernotecid://94B1C6F9-346F-484F-9A1C-D78D4FDE377A/appyinxiangcom/32366038/ENResource/p19

1.3 配置ansible

ansible 的主配置文件路径:vim /etc/ansible/ansible.cfg

ansible 的主机清单文件路径:/etc/ansible/hosts

在这里我们 将以下2台机子加入清单,也就说ansible要管理这2台受控机。 可以支持多种方式把不同的主机加入到不同的组里。

[dbserver]
192.168.89.129

[webserver]
192.168.89.130

1.4 ansbile的命令执行过程

1.加载自己的配置文件 默认/etc/ansible/ansible.cfg

2.加载自己对应的模块文件,如command

3通过ansible将模块或命令生成对应的临时py文件,并将该 文件传输至远程
服务器的对应执行用户$HOME/.ansible/tmp/ansible-tmp-数字/XXX.PY文件

给文件+x执行

执行并返回结果

删除临时py文件, sleep 0退出
执行状态:
绿色:执行成功并且不需要做改变的操作
黄色:执行成功并且对目标主机做变更
红色:执行失败

利用ansible实现管理的方式:
1.Ad-Hoc 即ansible命令,主要用于临时命令使用场景
2.Ansible-playbook 主要用于长期规划好的,大型项目的场景,需要有前提的规划

1.5 ansible的帮助手册

ansible发展到今天有很多模块,可以通过使用 ansible 模块名 来查看帮助文档 或者 通过ansible -s 模块名来查看最精简的使用方式
evernotecid://94B1C6F9-346F-484F-9A1C-D78D4FDE377A/appyinxiangcom/32366038/ENResource/p16

2.ansible的使用示例 (ad-hoc)

在使用ansbile之前需要将安装ansible的机器和要被操控的机器之间进行认证,有 密钥和用户名密码2种方式。但是主要是采用密钥方式。

ansible的默认模块是 command ,command模块使用时候有一些限制,所以我们一般将默认的模块变为 shell 模块。更方便我们执行命令
evernotecid://94B1C6F9-346F-484F-9A1C-D78D4FDE377A/appyinxiangcom/32366038/ENResource/p20

1.使用command模块

evernotecid://94B1C6F9-346F-484F-9A1C-D78D4FDE377A/appyinxiangcom/32366038/ENResource/p18

2.使用shell模块

因为我们将默认的模块在配置文件里更改成了shell,所以在执行shell模块的命令时候可以不使用 -m 参数

evernotecid://94B1C6F9-346F-484F-9A1C-D78D4FDE377A/appyinxiangcom/32366038/ENResource/p12

3.copy模块 拷贝文件到受控端

ansible all -m copy -a “src=/data/ansible/test.txt dest=/data/test.txt”
evernotecid://94B1C6F9-346F-484F-9A1C-D78D4FDE377A/appyinxiangcom/32366038/ENResource/p14

4.fetch模块 从受控端拉取文件到管理端

ansible webserver -m fetch -a “src=/data/test.txt dest=/data/test.txt”
evernotecid://94B1C6F9-346F-484F-9A1C-D78D4FDE377A/appyinxiangcom/32366038/ENResource/p15

5.service 模块 管理服务

evernotecid://94B1C6F9-346F-484F-9A1C-D78D4FDE377A/appyinxiangcom/32366038/ENResource/p13

6.yum模块 管理包

ansible dbserver -m yum -a “name=sl”
evernotecid://94B1C6F9-346F-484F-9A1C-D78D4FDE377A/appyinxiangcom/32366038/ENResource/p17

我的博客有分享更多好玩的计算机知识,欢迎访问 vwo50博客站 .

http://www.lryc.cn/news/145852.html

相关文章:

  • 2024毕业设计选题指南【附选题大全】
  • Error: PostCSS plugin autoprefixer requires PostCSS 8 问题解决办法
  • pymongo通过oplog获取数据(mongodb)
  • MySQL数据备份与恢复
  • 基于ssm+vue汽车售票网站源码和论文
  • 【List】List集合有序测试案例:ArrayList,LinkedList,Vector(123)
  • 【javaweb】学习日记Day6 - Mysql 数据库 DDL DML
  • 使用 PyTorch C ++前端
  • 6、NoSQL的四大分类
  • (动态规划) 剑指 Offer 60. n个骰子的点数 ——【Leetcode每日一题】
  • ArrayList与顺序表
  • 【【萌新的STM32-22中断概念的简单补充】】
  • Java 中数据结构HashMap的用法
  • Request对象和response对象
  • 设计模式之桥接模式
  • pom.xml配置文件失效,显示已忽略的pom.xml --- 解决方案
  • 文本编辑器Vim常用操作和技巧
  • 【算法系列篇】位运算
  • 机器学习的测试和验证(Machine Learning 研习之五)
  • RNN循环神经网络
  • 安防视频监控/视频集中存储/云存储平台EasyCVR无法播放HLS协议该如何解决?
  • Docker技术--Docker的安装
  • 客户案例|MemFire Cloud助推应急管理业务,打造百万级数据可视化大屏
  • 蒲公英路由器如何设置远程打印?
  • 国产自主可控C++工业软件可视化图形架构源码
  • 【linux命令讲解大全】022.网络管理工具和命令概述
  • 应急响应流程及思路
  • 网页自适应
  • 什么是Sui Kiosk,它可以做什么,如何赋能创作者?
  • 【MySQL】mysql connect