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'

        

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/bicheng/69136.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【pytorch 】miniconda python3.11 环境安装pytorch

ubuntu24.04 miniconda python3.11 环境安装pytorch 组件:langgraph本身不需要有一些模型是需要的:python3.11环境:报错ModuleNotFoundError: No module named ‘torchaudio’ ModuleNotFoundError: No module named ‘torchaudio’File "/root/miniconda3/envs/05_ep_…

Antd React Form使用Radio嵌套多个Select和Input的处理

使用Antd React Form使用Radio会遇到嵌套多个Select和Input的处理&#xff0c;需要多层嵌套和处理默认事件和冒泡&#xff0c;具体实现过程直接上代码。 实现效果布局如下图 代码 <Formname"basic"form{form}labelWrap{...formItemLayoutSpan(5, 19)}onFinish{on…

11 蚂蚁链技术特性

概览 蚂蚁链通过引入P2P网络、共识算法、虚拟机、智能合约、密码学、数据存储等技术特性&#xff0c;构建一个稳定、高效、安全的图灵完备智能合约执行环境&#xff0c;提供账户的基本操作以及面向智能合约的功能调用。 区块结构 一个区块包含区块头和区块体&#xff0c;区块…

如何使用 pytest-html 创建自定义 HTML 测试报告

关注开源优测不迷路 大数据测试过程、策略及挑战 测试框架原理&#xff0c;构建成功的基石 在自动化测试工作之前&#xff0c;你应该知道的10条建议 在自动化测试中&#xff0c;重要的不是工具 测试 Python 代码对于提高代码质量、检测漏洞或意外行为至关重要。 但测试结果又该…

【华为OD-E卷 - VLAN资源池 100分(python、java、c++、js、c)】

【华为OD-E卷 - VLAN资源池 100分&#xff08;python、java、c、js、c&#xff09;】 题目 VLAN是一种对局域网设备进行逻辑划分的技术&#xff0c;为了标识不同的VLAN&#xff0c;引入VLAN ID(1-4094之间的整数)的概念。 定义一个VLAN ID的资源池(下称VLAN资源池)&#xff0…

【C++高并发服务器WebServer】-5:内存映射与进程通信

本文目录 一、内存映射与进程通信二、匿名映射与进程通信 一、内存映射与进程通信 内存映射Memory-mapped I/O指的是将磁盘文件的数据映射到内存&#xff0c;用户通过修改内存就能够修改磁盘文件&#xff0c;如下图所示&#xff08;进程地址空间指的是虚拟地址空间&#xff09…

使用vscode + Roo Code (prev. Roo Cline)+DeepSeek-R1使用一句话需求做了个实验

摘要 使用vscode、Roo Code和deepseek-reasoner进行了一个实验&#xff0c;尝试使用一句话需求来生成小红书封面图片。工具根据需求提供了详细的架构方案&#xff0c;包括技术栈选择、核心模块划分、目录结构建议等。然后&#xff0c;工具自动化地完成了开发和测试&#xff0c;…

C语言初阶牛客网刷题—— JZ11 旋转数组的最小数字【难度:简单】

1. 题目描述 牛客网在线OJ链接 有一个长度为 n 的非降序数组&#xff0c;比如 [1,2,3,4,5] &#xff0c;将它进行旋转&#xff0c;即把一个数组最开始的若干个元素搬到数组的末尾&#xff0c;变成一个旋转数组&#xff0c;比如变成了 [3,4,5,1,2] &#xff0c;或者 [4,5,1,2,3…

Coze,Dify,FastGPT,对比

在当今 AI 技术迅速发展的背景下&#xff0c;AI Agent 智能体成为了关键领域&#xff0c;Coze、Dify 和 FastGPT 作为其中的佼佼者&#xff0c;各有千秋。 平台介绍 - FastGPT&#xff1a;由环界云计算公司发起&#xff0c;是基于大语言模型&#xff08;LLM&#xff09;的开源…

如何解压7z文件?8种方法(Win/Mac/手机/网页端)

7z 文件是一种高效的压缩文件格式&#xff0c;由 7 - Zip 软件开发者所采用。它运用独特的压缩算法&#xff0c;能显著缩小文件体积&#xff0c;便于存储与传输各类数据&#xff0c;像软件安装包、大型资料集等。但要使用其中内容&#xff0c;就必须解压&#xff0c;因为处于压…

【Docker】ubuntu中 Docker的使用

之前记录了 docker的安装 【环境配置】ubuntu中 Docker的安装&#xff1b; 本篇博客记录Dockerfile的示例&#xff0c;docker 的使用&#xff0c;包括镜像的构建、容器的启动、docker compose的使用等。   当安装好后&#xff0c;可查看docker的基本信息 docker info ## 查…

豆包MarsCode 蛇年编程大作战 | 高效开发“蛇年运势预测系统”

&#x1f31f; 嗨&#xff0c;我是LucianaiB&#xff01; &#x1f30d; 总有人间一两风&#xff0c;填我十万八千梦。 &#x1f680; 路漫漫其修远兮&#xff0c;吾将上下而求索。 豆包MarsCode 蛇年编程大作战 | &#x1f40d; 蛇年运势预测 在线体验地址&#xff1a;蛇年…

【转帖】eclipse-24-09版本后,怎么还原原来版本的搜索功能

【1】原贴地址&#xff1a;eclipse - 怎么还原原来版本的搜索功能_eclipse打开类型搜索类功能失效-CSDN博客 https://blog.csdn.net/sinat_32238399/article/details/145113105 【2】原文如下&#xff1a; 更新eclipse-24-09版本后之后&#xff0c;新的搜索功能&#xff08;CT…

求平均年龄(信息学奥赛一本通-1059)

【题目描述】 班上有学生若干名&#xff0c;给出每名学生的年龄&#xff08;整数&#xff09;&#xff0c;求班上所有学生的平均年龄&#xff0c;保留到小数点后两位。 【输入】 第一行有一个整数n&#xff08;1≤n≤100&#xff09;&#xff0c;表示学生的人数。其后n行每行有…

macos的图标过大,这是因为有自己的设计规范

苹果官方链接&#xff1a;App 图标 | Apple Developer Documentation 这个在官方文档里有说明&#xff0c;并且提供了sketch 和 ps 的模板。 figma还提供了模板&#xff1a; Figma

C++ —— 智能指针 unique_ptr (上)

C —— 智能指针 unique_ptr &#xff08;上&#xff09; 普通指针的不足普通指针的释放智能指针智能指针 unique_ptr智能指针初始化错误用法get()方法返回裸指针智能指针不支持指针的运算&#xff08;、-、、- -&#xff09; 普通指针的不足 new和new [] 的内存需要用delete和…

C++异步future

&#x1f30e; C11异步futrue 文章目录&#xff1a; C11异步futrue future介绍     应用场景     future操作       std::async函数模版       std::packaged_task类模版       std::promise类模版 &#x1f680;future介绍 std::future是C11标准库…

# AI绘图中的Embedding、CLIP、Flux中的Clip与LCM SDXL加速生成解析

AI绘图中的Embedding、CLIP、Flux中的Clip与LCM SDXL加速生成解析 在现代AI绘图和深度学习中&#xff0c;涉及了多个复杂的概念和技术&#xff0c;这些技术在图像生成、训练加速以及多模态学习等方面起着至关重要的作用。在这篇博客中&#xff0c;我们将讨论几个关键概念&…

linux下jsoncpp编译

折腾了一顿&#xff0c;我使用ubuntu16.04编译的jsoncpp&#xff0c;由于使用的芯片工程需要16.04&#xff0c;无法使用最新的ubuntu系统。 发现jsoncpp编译时&#xff0c; CMake Error: Could not find CMAKE_ROOT !!! CMake has most likely not been installed correctly. …

洛谷 P2846 [USACO08NOV] Light Switching G C语言

题目描述 Farmer John tries to keep the cows sharp by letting them play with intellectual toys. One of the larger toys is the lights in the barn. Each of the N(2≤N≤105) cow stalls conveniently numbered 1…N has a colorful light above it. At the beginnin…