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

Ansible入门学习之基础元素介绍

一、Ansible目录结构介绍

        1.通过rpm   -ql   ansible获取ansible所有文件存放的目录

                有配置文件目录    /etc/ansible/

                     执行文件目录   /usr/bin/

       

                其中  /etc/ansible/ 该文件目录的主要功能是  inventory主机信息配置,ansible工具功能配置。

                ansible自身的配置文件是ansible.cfg,其中所有的配置内容均可以在命令行通过参数的形式传递或定义在playbooks中。

二、Ansible命令用法详解

        1.Ansible命令行执行的方式有Ad-Hoc(临时命令执行)、Ansible-playbook(Ad-Hoc的集合)两种方式,web化执行方式有Tower(10台以内免费)。

        2.Ansible默认使用公私钥认证。

            ssh-keygen -N " " -b 4096 -t rsa -C "test@qq.com" -f /root/.ssh/stanley.rsa

            随机生成公私钥对

             ssh-copy-id -i  /root/.ssh/stanley.rsa  root@localhost

             为本机添加密钥认证

        3.Ansible 的命令格式:ansible <host-pattern> [options](可选项)

             其中<host-pattern> 是Inventory中定义的主机或者主机组,一般可以是ip,hostname等

             例如:ansible  all  -m  ping -u test        表示以test用户的身份执行ping命令

                       ansible  all  -m ping  -u test  --sudo        表示以test的身份sudo到root身份执行ping存活检测

                       ansible  all -m ping  -u test  -b        表示以test身份至root身份执行ping进行存活检测,上面的同效果命令的操作在新版本中已经被-b所替换

三、Ansible命令使用场景介绍

        1.ansible一般用在非固化或者临时一次性的操作的命令中(非固化/临时一次性操作:没有规律或者是临时要做的任务)

            例如:ansible web1  -m ping  检查服务器web1的存活情况

        2.ansible-galaxy 为github的pip功能

              命令格式如下:

                

        3.ansible-pull(默认使用push模式)

         适用的场景是:数量巨大的机器需要配置;在刚启动没有网络的主机上运行ansible

        4.ansible-doc 模块名        用来查看文档的用法说明

        5.ansible-playbook             通过读取预先编写的playbook文件实现批量管理,是ansible的任务集

        例如:ansible-playbook        playbook.yml                表示执行playbook.yml中所有的任务集合

        6.ansible-vault                用于配置文件加密

        例如:ansible-vault     encrypt  a.yml        加密a.yml

        7.ansible-console                用来虚拟一个终端

四、Ansible Inventory配置及详解

        1.定义主机和组

        [组名],支持将同一个主机归并到多个不同的组中且以行作为单位分割配置

        2.定义主机变量

        

        上述示例是修改web服务的端口为808

        3.自定义组变量

        

4.其他inventory参数列表

五、Ad-Hoc命令集

        1.使用场景:

                空闲时期关闭所有不必要的服务器并对其进行健康检测

                临时更新Apache和Nginx的配置文件并将其分发到所有需要更新该配置的web服务器

                需要使用Ansible-playbook的场景

                对新的服务器进行安装完系统之后的一些列固化的初始工作

                定期对生产环境发布更新程序代码

        2.Ad-Hoc命令集用法介绍

                

        例如:ansible web --list                表示列出web组所有的主机列表

                    ansible  10.20.40.61  -B 5  -P 2 -T 2 -m command  -a 'sleep  20'  -u  root

                   上述命令表示以root执行sleep 20,设置最大连接超时时长为2且为后台运行的模式,执行过程中每2秒输出依次进度如果5s还没有还未执行完就终止该任务。

                     为所有的服务器安装ntp服务并设置为开机启动

                     ansible  apps  -s -m yum  -a  ''name=ntp state=present''

                     ansible apps  -m  service  -a  "name=ntpd  state=started  enabled=yes"

                     上述这两条命令分别表示给所有主机安装ntp服务然后启动ntp服务并设置为开机启动

六、Ad-Hoc组管理和特定主机变更

        1.一般我们需要会将负责相同场景应用的主机划分为一个组便于统一管理,这是就需要组管理并且可以对组中特定的主机进行变更。

        2.组配置需要编辑/etc/ansible/hosts,下图是简化后的web服务架构:

        

        3.配置Proxy和web servers实践

            ansible  proxy  -m yum -a "name=nginx  state=present"        利用ansible安装nginx

            ansible  app  -m  yum -a "name=nginx  state=present"           

            ansible   app  -m  yum  -a  "name=php  state=present"        安装nginx和php

             ……                    同上述命令安装  mysql-python  python-setuptools依赖包

            ansible   app  -m  pip   -a  "name=django  state=present"         安装Django

            同上述安装nginx命令安装后端的数据库redis

             以下命令为安装mariadb的命令:

        以上配置命令即可配置完所有主机的应用需求

        4.Ad-Hoc特定主机变更

        通过limit参数限定主机做变更

        ansible  app  -m  command  -a  "service  ntpd  status"  --limit  "192.168.37.158"

            上述命令的作用是在app组中查看192.168.37.158的状态

        ansible  "192.168.37.158:192.168.37.159"  -m  command  -a  "service  ntpd  status"

            上述命令的作用是查看上述两个ip地址对应的主机的ntp服务的状态

七、Ad-Hoc用户与组管理

        1.ansible系统用户模块

            linux系统用户管理:user

            windows系统用户管理:win_user

        2.与用户相关的应用场景

        新增用户:增加test用户并为其创建家目录

            ansibledb -m user -a "name=test  shell=/bin/bash  groups=admins,testgroup append=yes  home=/home/test/  state=present" 

        修改用户属组

             ansibledb  -m user  -a  "name=test  groups=testgroup  append=no"

        修该用户的属性

             ansibledb  -m user -a "name=test  expires=19999999"

        删除用户

              ansibledb  -m user  -a "name=test  state=absent  remove=yes"

        变更用户密码

              ansible -m user -a "name=test  shell=/bin/bash  password=igrjiFDF  update_password=lovexiao"             

              password后面的密码是加密后的密文

八、应用层用户管理

        1.新增mysql用户test

             ansible  db -m  mysql_user  -a 'login_host=localhost  login_password=xiao  login_user=root  name=test  password=testxiao priv=zabbix.*:ALL state=present'

        

相关文章:

Ansible入门学习之基础元素介绍

一、Ansible目录结构介绍 1.通过rpm -ql ansible获取ansible所有文件存放的目录 有配置文件目录 /etc/ansible/ 执行文件目录 /usr/bin/ 其中 /etc/ansible/ 该文件目录的主要功能是 inventory主机信息配置&#xff0c;ansible工具功能配置。 ansible自身的配置文件…...

大数据治理实战指南:数据质量、合规与治理架构

&#x1f4dd;个人主页&#x1f339;&#xff1a;一ge科研小菜鸡-CSDN博客 &#x1f339;&#x1f339;期待您的关注 &#x1f339;&#x1f339; 引言 随着企业数字化转型的加速&#xff0c;大数据已成为驱动业务决策的核心资产。然而&#xff0c;数据治理的缺失或不完善&…...

leetcode_链表 234.回文链表

234.回文链表 给你一个单链表的头节点head&#xff0c;请你判断该链表是否为回文链表。如果是, 返回 true ; 否则, 返回false。思路&#xff1a; 找到中间节点(快慢指针法)反转后半部分的链表比较前半部分和后半部分链表 # Definition for singly-linked list. # class List…...

[Dialog屏幕开发] 屏幕绘制(下拉菜单)

阅读该篇文章之前&#xff0c;可先阅读下述资料 [Dialog屏幕开发] Table Control 列数据操作https://blog.csdn.net/Hudas/article/details/145343731?spm1001.2014.3001.5501https://blog.csdn.net/Hudas/article/details/145343731?spm1001.2014.3001.5501https://blog.cs…...

deepseek v1手机端部署

在iPhone上部署DeepSeekR1 1. 安装快捷指令&#xff1a; 打开iPhone上的Safari浏览器&#xff0c;访问[这个链接](https://www.icloud.com/shortcuts/e0bc5445c39d45a78b90e1dc896cd010)下载快捷指令。 下载后&#xff0c;按照提示完成安装。 2. 获取并配置API Key&a…...

CVPR 2024 无人机/遥感/卫星图像方向总汇(航空图像和交叉视角定位)

1、UAV、Remote Sensing、Satellite Image(无人机/遥感/卫星图像) Unleashing Unlabeled Data: A Paradigm for Cross-View Geo-Localization ⭐codeRethinking Transformers Pre-training for Multi-Spectral Satellite Imagery ⭐codeAerial Lifting: Neural Urban Semantic …...

【信息系统项目管理师-选择真题】2015下半年综合知识答案和详解

更多内容请见: 备考信息系统项目管理师-专栏介绍和目录 文章目录 【第1题】【第2题】【第3题】【第4题】【第5题】【第6题】【第7题】【第8题】【第9题】【第10题】【第11题】【第12题】【第13题】【第14题】【第15题】【第16题】【第17题】【第18题】【第19题】【第20题】【第…...

Baklib如何结合内容中台与人工智能技术实现数字化转型

内容概要 在当前快速发展的数字环境中&#xff0c;企业面临着转型的紧迫性与挑战&#xff0c;尤其是在内容管理和用户互动的领域。内容中台作为一种集成化的解决方案&#xff0c;不仅能够提高企业在资源管理方面的效率&#xff0c;还能够为企业提供一致性和灵活性的内容分发机…...

JAVAweb学习日记(八) 请数据库模型MySQL

一、MySQL数据模型 二、SQL语言 三、DDL 详细见SQL学习日记内容 四、DQL-条件查询 五、DQL-分组查询 聚合函数&#xff1a; 分组查询&#xff1a; 六、DQL-分组查询 七、分页查询 八、多表设计-一对多&一对一&多对多 一对多-外键&#xff1a; 一对一&#xff1a; 多…...

自动驾驶---苏箐对智驾产品的思考

1 前言 对于更高级别的自动驾驶&#xff0c;很多人都有不同的思考&#xff0c;方案也好&#xff0c;产品也罢。最近在圈内一位知名的自动驾驶专家苏箐发表了他自己对于自动驾驶未来的思考。 苏箐是地平线的副总裁兼首席架构师&#xff0c;同时也是高阶智能驾驶解决方案SuperDri…...

python——Django 框架

Django 框架 1、简介 Django 是用python语言写的开源web开发框架&#xff0c;并遵循MVC设计。 Django的**主要目的是简便、快速的开发数据库驱动的网站。**它强调代码复用&#xff0c;多个组件可以很方便的以"插件"形式服务于整个框架&#xff0c;Django有许多功能…...

计算机视觉-卷积

卷积-图像去噪 一、图像 二进制 灰度 彩色 1.1二进制图像 0 1 一个点可以用一个bit&#xff08;0/1&#xff09;来表示 1.2灰度图像 0-255 一个点可以用一个byte来表示 1.3彩色图像 RGB 表达一个彩色图像先说它的分辨率p/w&#xff08;宽&#xff09;和q/h&#xff08;高…...

Spring Boot 自定义属性

Spring Boot 自定义属性 在 Spring Boot 应用程序中&#xff0c;application.yml 是一个常用的配置文件格式。它允许我们以层次化的方式组织配置信息&#xff0c;并且比传统的 .properties 文件更加直观。 本文将介绍如何在 Spring Boot 中读取和使用 application.yml 中的配…...

C++ list 容器用法

C list 容器用法 C 标准库提供了丰富的功能&#xff0c;其中 <list> 是一个非常重要的容器类&#xff0c;用于存储元素集合&#xff0c;支持双向迭代器。<list> 是 C 标准模板库&#xff08;STL&#xff09;中的一个序列容器&#xff0c;它允许在容器的任意位置快速…...

《 C++ 点滴漫谈: 二十四 》深入 C++ 变量与类型的世界:高性能编程的根基

摘要 本文深入探讨了 C 中变量与类型的方方面面&#xff0c;包括变量的基本概念、基本与复合数据类型、动态类型与内存管理、类型推导与模板支持&#xff0c;以及类型系统的高级特性。通过全面的理论讲解与实际案例分析&#xff0c;展示了 C 类型系统的强大灵活性与实践价值。…...

C语言初阶牛客网刷题—— HJ34 图片整理【难度:中等】

1. 题目描述 牛客网在线OJ链接 Lily上课时使用字母数字图片教小朋友们学习英语单词&#xff0c;每次都需要把这些图片按照大小&#xff08;ASCII码值从小到大&#xff09;排列收好。请大家给Lily帮忙&#xff0c;通过C语言解决。 输入描述&#xff1a;Lily使用的图片包括 “A…...

小盒科技携手体验家,优化智能教育服务体验,打造在线教育新高度

北京小盒科技有限公司&#xff08;简称“小盒科技”&#xff0c;由“作业盒子”更名而来&#xff09;是一家专注于教育科技的公司&#xff0c;致力于利用人工智能、大数据等先进技术&#xff0c;为中小学教育提供创新的解决方案和产品。 近日&#xff0c;「小盒科技」携手体…...

一个简单的自适应html5导航模板

一个简单的 HTML 导航模板示例&#xff0c;它包含基本的导航栏结构&#xff0c;同时使用了 CSS 进行样式美化&#xff0c;让导航栏看起来更美观。另外&#xff0c;还添加了一些 JavaScript 代码&#xff0c;用于在移动端实现导航菜单的展开和收起功能。 PHP <!DOCTYPE htm…...

HttpClient学习

目录 一、概述 二、HttpClient依赖介绍 1.导入HttpClient4依赖 2.或者导入HttpClient5依赖 3.二者区别 三、HttpClient发送Get请求和Post请求测试 (一)通过HttpClient发送Get请求 (二)通过HttpClient发送Post请求 一、概述 HttpClient是 Apache 软件基金会提供的一…...

二级 二维数组3

对角线之和 题目描述 输入一个矩阵&#xff0c;输出右上-左下对角线上的数字和 输入 输入1个整数N。(N<10)表示矩阵有n行n列 输出 对角线的和 样例 输入复制 4 1 2 3 4 2 3 4 5 4 5 6 7 1 2 3 4 输出复制 14 #include<iostream> using namespace std; int main() {i…...

Vim 调用外部命令学习笔记

Vim 外部命令集成完全指南 文章目录 Vim 外部命令集成完全指南核心概念理解命令语法解析语法对比 常用外部命令详解文本排序与去重文本筛选与搜索高级 grep 搜索技巧文本替换与编辑字符处理高级文本处理编程语言处理其他实用命令 范围操作示例指定行范围处理复合命令示例 实用技…...

挑战杯推荐项目

“人工智能”创意赛 - 智能艺术创作助手&#xff1a;借助大模型技术&#xff0c;开发能根据用户输入的主题、风格等要求&#xff0c;生成绘画、音乐、文学作品等多种形式艺术创作灵感或初稿的应用&#xff0c;帮助艺术家和创意爱好者激发创意、提高创作效率。 ​ - 个性化梦境…...

React 第五十五节 Router 中 useAsyncError的使用详解

前言 useAsyncError 是 React Router v6.4 引入的一个钩子&#xff0c;用于处理异步操作&#xff08;如数据加载&#xff09;中的错误。下面我将详细解释其用途并提供代码示例。 一、useAsyncError 用途 处理异步错误&#xff1a;捕获在 loader 或 action 中发生的异步错误替…...

Linux 文件类型,目录与路径,文件与目录管理

文件类型 后面的字符表示文件类型标志 普通文件&#xff1a;-&#xff08;纯文本文件&#xff0c;二进制文件&#xff0c;数据格式文件&#xff09; 如文本文件、图片、程序文件等。 目录文件&#xff1a;d&#xff08;directory&#xff09; 用来存放其他文件或子目录。 设备…...

shell脚本--常见案例

1、自动备份文件或目录 2、批量重命名文件 3、查找并删除指定名称的文件&#xff1a; 4、批量删除文件 5、查找并替换文件内容 6、批量创建文件 7、创建文件夹并移动文件 8、在文件夹中查找文件...

DockerHub与私有镜像仓库在容器化中的应用与管理

哈喽&#xff0c;大家好&#xff0c;我是左手python&#xff01; Docker Hub的应用与管理 Docker Hub的基本概念与使用方法 Docker Hub是Docker官方提供的一个公共镜像仓库&#xff0c;用户可以在其中找到各种操作系统、软件和应用的镜像。开发者可以通过Docker Hub轻松获取所…...

Redis相关知识总结(缓存雪崩,缓存穿透,缓存击穿,Redis实现分布式锁,如何保持数据库和缓存一致)

文章目录 1.什么是Redis&#xff1f;2.为什么要使用redis作为mysql的缓存&#xff1f;3.什么是缓存雪崩、缓存穿透、缓存击穿&#xff1f;3.1缓存雪崩3.1.1 大量缓存同时过期3.1.2 Redis宕机 3.2 缓存击穿3.3 缓存穿透3.4 总结 4. 数据库和缓存如何保持一致性5. Redis实现分布式…...

【网络安全】开源系统getshell漏洞挖掘

审计过程&#xff1a; 在入口文件admin/index.php中&#xff1a; 用户可以通过m,c,a等参数控制加载的文件和方法&#xff0c;在app/system/entrance.php中存在重点代码&#xff1a; 当M_TYPE system并且M_MODULE include时&#xff0c;会设置常量PATH_OWN_FILE为PATH_APP.M_T…...

C# 表达式和运算符(求值顺序)

求值顺序 表达式可以由许多嵌套的子表达式构成。子表达式的求值顺序可以使表达式的最终值发生 变化。 例如&#xff0c;已知表达式3*52&#xff0c;依照子表达式的求值顺序&#xff0c;有两种可能的结果&#xff0c;如图9-3所示。 如果乘法先执行&#xff0c;结果是17。如果5…...

云原生周刊:k0s 成为 CNCF 沙箱项目

开源项目推荐 HAMi HAMi&#xff08;原名 k8s‑vGPU‑scheduler&#xff09;是一款 CNCF Sandbox 级别的开源 K8s 中间件&#xff0c;通过虚拟化 GPU/NPU 等异构设备并支持内存、计算核心时间片隔离及共享调度&#xff0c;为容器提供统一接口&#xff0c;实现细粒度资源配额…...