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,一经查实,立即删除!

相关文章

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;区块…

【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…

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

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

豆包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…

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

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

C++异步future

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

洛谷 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…

批量创建ES索引

7.x from elasticsearch import Elasticsearch# 配置 Elasticsearch 连接 # 替换为你的 Elasticsearch 地址、端口、用户名和密码 es Elasticsearch([http://10.10.x.x:43885],basic_auth(admin, XN272G9THEAPYD5N5QORX3PB1TSQELLB) )# # 测试连接 # try: # # 尝试获取集…

大厂案例——腾讯蓝鲸DevOps类应用的设计与实践

蓝鲸体系架构图 蓝鲸CICD应用功能架构 降低DEVOPS门槛—开发者中心 CICD应用需要的后台服务 系列阅读 12306亿级流量架构分析&#xff08;史上最全&#xff09;实现电商平台从业务到架构的治理体系基于主数据驱动的数据治理什么时候需要分表分库&#xff1f;-CSDN博客

React和Vue有什么区别,如何选择?

React和Vue有什么区别&#xff0c;如何选择&#xff1f; React 和 Vue 是当前最受欢迎的前端框架之一&#xff0c;两者在开发者中都有极高的声誉。它们都旨在帮助开发人员构建用户界面&#xff0c;但在实现方式和适用场景上有所不同。如果你正考虑在项目中选择 React 或 Vue&a…

uart、iic、spi通信总线

一、uart uart一种异步串行通信协议&#xff0c;用于在两个设备之间传输数据。它将数据按位发送&#xff0c;不需要时钟信号进行同步。在uart通信中&#xff0c;数据通过两根线路传输&#xff1a;发送线&#xff08;TX&#xff09;和接收线&#xff08;RX&#xff09;。它主要用…

LMI Gocator GO_SDK VS2019引用配置

LMI SDK在VS2019中的引用是真的坑爹,总结一下经验,希望后来的人能少走弯路.大致内容如下: &#xff08;1&#xff09; 环境变量 &#xff08;2&#xff09;C/C 附加包含目录 E:\GWQ\Gocator\GO_SDK\Gocator\GoSdk E:\GWQ\Gocator\GO_SDK\Platform\kApi &#xff08;3&#…

QT QTableWidget控件 全面详解

本系列文章全面的介绍了QT中的57种控件的使用方法以及示例,包括 Button(PushButton、toolButton、radioButton、checkBox、commandLinkButton、buttonBox)、Layouts(verticalLayout、horizontalLayout、gridLayout、formLayout)、Spacers(verticalSpacer、horizontalSpacer)、…

C# OpenCV机器视觉:红外体温检测

在一个骄阳似火的夏日&#xff0c;全球却被一场突如其来的疫情阴霾笼罩。阿强所在的小镇&#xff0c;平日里熙熙攘攘的街道变得冷冷清清&#xff0c;人们戴着口罩&#xff0c;行色匆匆&#xff0c;眼神中满是对病毒的恐惧。阿强作为镇上小有名气的科技达人&#xff0c;看着这一…

立创开发板入门ESP32C3第八课 修改AI大模型接口为deepseek3接口

#原代码用的AI模型是minimax的API接口&#xff0c;现在试着改成最热门的deepseek3接口。# 首先按理解所得&#xff0c;在main文件夹下&#xff0c;有minimax.c和minimax.h, 它们是这个API接口的头文件和实现文件&#xff0c;然后在main.c中被调用。所以我们一步步更改。 申请…

2025.1.21——六、BUU XSS COURSE 1 XSS漏洞|XSS平台搭建

题目来源&#xff1a;buuctf BUU XSS COURSE 1 目录 一、打开靶机&#xff0c;整理信息 二、解题思路 step 1&#xff1a;输入框尝试一下 step 2&#xff1a;开始xss注入 step 3&#xff1a;搭建平台 step 4&#xff1a;利用管理员cookie访问地址 三、小结 二编&#…