ansible自动化运维(1)

Ansible基础入门 文章目录介绍快速入门测试场景一测试场景二ansible资产ansible静态资产资产选择器Ansible Ad-Hoc命令常用模块command & shell 模块script模块copy模块yum_repository模块yum模块systemd模块group模块user模块file模块cron模块debug模块template模块lineinfile模块blockinfile模块 介绍 Ansible是一个IT自动化工具。它能配置系统、部署软件、编排更复杂的IT任务,如连续部署或零停机时间滚动 阅读详情

 一. ansible简介

1. 什么是ansible


ansible是一款开源自动化平台,是一个配置管理工具,自动化运维工具

2. ansible的优点

 

  • 跨平台支持
  • 人类可读自动化: ansible提供linux,Windows,unix和网络设备的无代理支持,适用于物理、虚拟、云和容器环境
  • 完美描述应用:playbook
  • 轻松管理版本控制:playbook是纯文本,可视作源代码
  • 支持动态清单
  • 编排可与其他系统轻松集成:puppet、jenkins
  • 基础架构即代码
  • 减少人为错误

任务:play和playbook设计为具有幂等性,所以在运行playbook时,如果目标主机处于正确状态,则不会进行任何更改。

二. ansible安装
1.在workstation上安装ansible,充当控制节点

yum install -y ansible

2.查看ansible版本信息
ansible --version

3.使用setup模块验证python
ansible -m setup localhost | grep ansible_python_version
        "ansible_python_version": "3.6.8",

三. ansible部署


1. 构建ansible清单(讲解)
什么是清单? --> 定义了ansible将要管理的一批主机

a.静态清单
每行一个,填写主机名或ip,如:
www.westos.org
172.25.254.250

还可以定义主机组:
[webservers]
server1.westos.org
server2.westos.org
172.25.0.1

[dbservers]
node1.westos.org
node1.westos.org

注意:一台主机可以存在于多个主机组

b.定义嵌套组
ansible主机清单可以包含多个主机组构成的组,如:

[webservers]
server1.westos.org
server2.westos.org
172.25.0.1

[dbservers]
node1.westos.org
node1.westos.org

[servers:children]
webservers
dbservers

c.通过范围简化主机规格
可以指定主机名称或ip范围或者数字和字母范围

语法:[START:END]

172.25.[0:4].[0:254]                  #匹配172.25.0.0/24,172.25.1.0/24 ...172.25.4.0/24 四个网段的所有主机 
server[01:10].example.com             #匹配server01.example.com到server10.example.com所有主机,此方式不匹配server1,只匹配server01
[a:c].example.com                     #匹配a.example.com到c.example.com


d.验证清单
[root@workstation ~]# ansible workstation.lab.example.com --list-hosts
'当前主机中没有受管主机'

e.默认清单位置:/etc/ansible/hosts    #一般不使用,而是自己新建

f.动态清单--> 可以从开源社区的脚本中获取

练习
[root@workstation ~]# vim /etc/ansible/hosts

servera.lab.example.com

[webservers]
serverb.lab.example.com

#列出清单中所有受管主机
[root@workstation ~]# ansible all --list-hosts

#列出不属于某个组的主机
[root@workstation ~]# ansible ungrouped --list-hosts

#列出属于webservers组的主机
[root@workstation ~]# ansible webservers --list-hosts

#自定义清单
mkdir deploy-inventory    #建立清单目录

列出主机
[root@workstation deploy-inventory]# ansible all -i inventory --list-hosts

[root@workstation deploy-inventory]# ansible ungrouped -i inventory --list-hosts

[root@workstation deploy-inventory]# ansible www -i inventory --list-hosts    #列出www组中的主机

[root@workstation deploy-inventory]# ansible westos -i inventory --list-hosts    #westos组包含www组和bbs组


2. 管理ansible配置文件
1.配置ansible

配置文件:1.

 #基本配置文件,如果找不到其他配置文件,使用这个,其优先级最低。
                  2. ~/.ansible.cfg      #如果存在此配置并且当前工作目录中也没有ansible.cfg,此文件代/etc/ansible/ansible.cfg
                  3. ./ansible.cfg        #执行ansible命令的目录中如果有ansible.cfg,就用它,不使用上面两个(推荐使用,上面两个不常用)


#显示使用的配置文件


[root@workstation deploy-inventory]# ansible www -i inventory --list-hosts -v
Using /etc/ansible/ansible.cfg as config file
  hosts (1):
    servera.lab.example.com

管理配置文件中的设置:

[defaults]        #部分设置ansible操作的默认值

[privilege_escalation]    #配置ansible如何在受管主机上执行特权升级

例:


[root@workstation deploy-inventory]# vim ansible.cfg
[defaults]
inventory = ./inventory
remote_user = student     #指定登录受管主机的用户,如不指定则使用当前用户名称
ask_pass = false              #是否提示输入ssh密码,做了免密就可以设置为false,否则需为true

[privilege_escalation]
become = true        #连接到受管主机上是否进行身份切换
become_method = sudo    #切换方式,默认为sudo
become_user = root    #切换到的用户
become_ask_pass = false #是否需要为become_method提示输入密码,默认为false


##使用sudo进行权限下放
使用超级用户编辑文件:
[root@workstation ~]# vim /etc/sudoers.d/westos
westos        ALL=(ALL)    NOPASSWD: ALL

3. 运行临时命令

使用临时命令可以快速测试和更改,无需编写playbook

1). 格式

ansible host-pattern -m module [-a 'module arguments'] [-i inventory]

2). 检查能否在受管主机上运行python模块

[root@workstation ~]# ansible all -m ping
serverb.lab.example.com | SUCCESS => {
    "ansible_facts": {
        "discovered_interpreter_python": "/usr/libexec/platform-python"
    },
    "changed": false,
    "ping": "pong"
}

3). 使用临时命令通过模块执行任务
[root@workstation ~]# ansible-doc -l    #列出所有模块

[root@workstation ~]# ansible-doc ping    #查看ping模块帮助文档

#ansible模块

文件模块:             -copy:           将本地文件复制到受管主机
                               -file:              设置文件的权限和其他属性
                               -lineinfile:      确保特定行是否在文件中
                               -synchronize:使用rsync同步内容

系统模块:             -firewalld:      使用firewalld管理任意端口和服务
                               -reboot:         重启
                              -service:        管理服务
                              -user:            添加、删除和管理用户账户

Net Tools模块:    -get_url:        通过http、https、或者ftp下载文件
                              -nmcli:          管理网络
                              -uri:              与web服务交互


4). 举例

使用user模块确保westos用户存在于servera.lab.example.com且uid为1000
[root@workstation ~]# ansible -m user -a 'name=student uid=1000 state=present' servera.lab.example.com

在受管主机上运行命令:

[root@workstation ~]# ansible webservers -m command -a /usr/bin/hostname
serverb.lab.example.com | CHANGED | rc=0 >>    #状态报告,显示主机名称和操作结果
serverb.lab.example.com                #命令输出

[root@workstation ~]# ansible webservers -m command -a /usr/bin/hostname -o    #加上-o参数,单行显示
serverb.lab.example.com | CHANGED | rc=0 | (stdout) serverb.lab.example.com

'注意:command模块允许执行远程命令,但这些命令不是shell处理,所以无法访问shell环境变量,所以不能执行重定向、传送等操作'

使用shell和command的区别:

[root@workstation ~]# ansible localhost -m command -a set
localhost | FAILED | rc=2 >>
[Errno 2] No such file or directory: 'set': 'set'

[root@workstation ~]# ansible localhost -m shell -a set
localhost | CHANGED | rc=0 >>
BASH=/bin/sh
...

使用command模块执行临时命令

[root@workstation deploy-adhoc]# ansible localhost -m command -a 'id'

[root@workstation deploy-adhoc]# ansible localhost -m command -a 'id' -u westos    #通过-u选项使用westos进行连接并执行id命令
'执行上面两条命令时,需要在新建的目录中执行,否则结果不会变'

使用copy模块
1.首先使用student用户,因为student用户没有写权限,会失败

[root@workstation deploy-adhoc]# ansible localhost -m copy -a 'content="westos ansible\n" dest=/etc/motd' -u student

2.使用特权升级
 '注意:此处使用特权升级需要先编辑/etc/sudoers.d/student文件'

[root@workstation deploy-adhoc]# cat /etc/sudoers.d/student
student        ALL=(ALL)    NOPASSWD: ALL

#以root身份运行

[root@workstation deploy-adhoc]# ansible localhost -m copy -a 'content="westos ansible\n" dest=/etc/motd' -u student --become

[root@workstation deploy-adhoc]# cat /etc/motd
westos ansible

使用all参数一次更改servera和localhost

[root@workstation deploy-adhoc]# ansible all -m copy -a 'content="westos ansible\n" dest=/etc/motd' -u student --become


可以看到localhost显示SUCCESS,servera显示CHANGED,因为localhost已经处于正确状态
查看

[root@workstation deploy-adhoc]# ansible all -m command -a 'cat /etc/motd' -u student

 

ansible入门详解---值得收藏 文章目录一、yum安装ansible二、相关文件介绍`2.1.配置文件`a、/etc/ansible/ansible.cfg解释b、/etc/ansible/hosts格式`2.2.可执行文件`三、配置基于root用户Key的验证四、ansible命令执行过程五、执行状态六、常用模块`指定远程主机用户,并sudo到root用户` 参考视频:https://edu.51cto.com/lesson/306549 一、yum安装ansible yum -y install epel-release yum 阅读详情

相关推荐

磁悬浮轴承控制策略设计及性能对比

摘要:针对高速磁悬浮转子控制问题,本文提出多方案对比分析。建立含陀螺效应的5自由度动力学模型,分析陀螺耦合、质量不平衡等关键挑战。对比四种控制策略:基础PID解耦、交叉反馈+自适应陷波、H∞鲁棒+前馈补偿、滑模控制+观测器,从实时性、鲁棒性等维度评估优劣。推荐采用交叉反馈+H∞+自适应陷波的混合方案,通过内环电流环与外环位置环协同,实现陀螺效应动态解耦和扰动抑制。实施步骤包括系统辨识、控制器设计、硬件部署等,需配合实验验证与参数整定。该方案综合性能最优,适用于高转速、强扰动场景。

技术工作者 1773

ansible各模块的使用

启动: source ./hacking/env-setup 查看是否能ping通: ansible all -m ping ansible all -m ping -k(输入密码,最好事先建立免密登录) 查看用法: ansible-doc -l ansible-doc -ping … 列举host组: ansible webservers --list 使用其他用户登录: ansible webservers -u root -m shell -a “ls /root” #其他用户登录执行(需要先

kxq的博客 915

那些年-SAP固定资产导入AS91 OASV

固定资产起初导入步骤: 第一部分:资产数据导入 1)两个日期配置 填写图片摘要(选填) Specify transfer date/last closed fiscal year 这里的日期填写系统切换日期,如果系统是2015-10-01上线,这里填写2015-09-3 填写图片摘要(选填) Specifylast period posted in prv system 这里指定系统切换的上一期间。这里写2015-09 填写图片摘要(选填) ​2)AS91新增 填写固定资产的分类,公司

阿土工作室 7947

ansible命令详解

1.comand模块 (默认模块) 用于在远程主机(被管理的主机)上执行某个命令 注:A. 不能变量$HOME和操作等"<",">","|",";“和”&" #在默认家目录下创建一个 ansible.txt的文件 [root@cdhnode1 ~]# ansible all -m command -a " touch ansible.txt " #指定切换到/home/zx目录下,再创建一个ansible.txt的文件 [root@cdhnode1 ~]# ansibl

不言尘世 2289

Linux系统搭建OpenClaw(原Clawdbot)全流程指南 最新版

工具定位:开源个人 AI 助手,支持文件读取、命令执行、多渠道交互(Telegram / 本地终端等);系统要求:主流 Linux 发行版(Ubuntu/Debian/CentOS 等),Node.js ≥22(核心依赖);安全提示:OpenClaw 为测试版,具备高权限操作能力,建议使用非主力机,配置权限白名单,避免接触敏感数据。

AI时代老码农的第二春 6560

Cocos Creator+微信小游戏:如何用wxDownloader实现资源动态加载与热更新

本文深入探讨了在Cocos Creator开发微信小游戏时,如何利用wxDownloader有效应对主包体积限制,实现资源的动态加载与热更新。文章详细介绍了从项目配置、资源标记到初始化加载的完整流程,并重点解析了基于MD5 Cache的缓存策略与版本控制方案,旨在帮助开发者构建稳健高效的资源管理体系,优化游戏启动速度与更新体验。

css33的专栏 822

【已解决】 “discovered_interpreter_python“: “/usr/bin/python“

最近用ansible-playbook 适配,麒麟、统信服务端操作系统,Centos 8。遇到的问题处理 "discovered_interpreter_python": "/usr/bin/python" 多种解决方法

太阳花先生可爱多的专栏 6281

【AI智能体】QClaw 对接GitHub处理自动化任务实战操作详解

QClaw 对接GitHub处理自动化任务实战操作详解

congge 4867

1Panel自动化运维:Ansible/SaltStack集成

在现代IT架构中,服务器集群的管理复杂度随着规模呈指数级增长。传统人工运维面临效率低下、配置漂移、操作风险高等痛点,而1Panel作为开源服务器运维管理面板,通过集成自动化运维工具链,为用户提供了一站式的集群管理解决方案。本文将详细介绍如何在1Panel中实现Ansible/SaltStack集成,帮助运维人员轻松掌控成百上千台服务器。 ## 自动化运维架构概览 1Panel的自动化运维体系基...

gitblog_00070的博客 586

如何从 VMware 官网下载最新版本的 VMware Workstation

如何从 VMware 官网下载 VMware Workstation

XiaoqiangClub的博客 5892

01 - 什么是SVM

摘要:SVM(共享虚拟内存)技术使CPU和GPU能共享同一虚拟地址空间,简化异构计算编程。传统模型需手动管理CPU/GPU内存和拷贝数据,而SVM允许直接传递指针,自动处理页面迁移和一致性维护。其核心包括统一地址空间、按需迁移、页面故障处理和一致性管理,显著降低编程复杂度并提升性能。通过HMM框架、MMU通知和GPU页面异常等机制实现高效内存共享,支持复杂数据结构,为异构计算带来便利。

图形/计算GPU的驱动与虚拟化技术分享园地 3124

1、ansible自动化运维模块

ansible作用1、实现远程连接主机2、批量配置,批量操作,ansible可以对主机进行组划分,也可以把名下所有的主机进行划分,进行批量的操作。3、远程自动化运维(脚本——playbook)ansible是什么ansible是基于python语言开发的,配置管理和部署应用的工具。批量的配置、部署、管理上百台主机。ansible只要在一台主机上就可以对其他主机进行操作。ansible的工作模式没有固定的客户端这一说法,不是c/s。

qq_44894108的博客 1069

HBase批量导入工具:BulkLoad使用详解

HBase作为分布式NoSQL数据库,在大数据领域有着广泛应用。传统的数据写入方式(如Put操作)在面对海量数据导入时存在性能瓶颈。BulkLoad提供了一种高效的大批量数据导入方案,可以显著提高数据加载速度并降低集群负载。BulkLoad的核心原理和架构与传统写入方式的性能对比详细的使用方法和实现步骤性能优化技巧和最佳实践实际应用案例分析本文首先介绍BulkLoad的基本概念和原理,然后深入讲解其实现机制和关键技术。接着通过实际案例演示BulkLoad的使用方法,并分析性能优化策略。

大数据洞察的博客 1236

1、自动化运维工具——Ansible的安装

Ansible是一款使用Python开发,模块化,依赖于ssh协议实现的自动化统一配置管理工具,自动化主要体现在Ansible集成了丰富模块以及功能组件,可以通过一个命令完成一系列的操作,进而能减少重复性的工作和维护成本,可以提高工作效率。

lingqianhui的博客 1317

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

Apache Kafka 3.1集群自动化运维:Ansible部署终极指南

Apache Kafka 3.1作为高性能的分布式流处理平台,在大规模数据处理场景中扮演着关键角色。本文将详细介绍如何使用Ansible实现Kafka 3.1集群的自动化部署与运维,帮助运维人员快速构建稳定、高效的Kafka服务架构。 ## Kafka集群架构解析 Kafka集群由多个组件协同工作,包括生产者、消费者、连接器和流处理器等核心模块。理解这些组件的交互方式是实现高效运维的基础。

gitblog_00193的博客 776

IDEA的使用指南

IDEA基于java的使用手册,可以最快速的上手,在使用中不断的丰富自己的使用技巧.

Ansible运维自动化1

一、Ansible 简述 Ansible是一款为类Unix系统开发的自由开源的配置和自动化工具。 它用Python写成,类似于saltstack和Puppet,但是有一个不同和优点是我们不需要在节点中安装任何客户端。 它使用SSH来和节点进行通信。Ansible基于 Python paramiko 开发,分布式,无需客户端,轻量级,配置语法使用 YMAL 及 Jinja2模板语言,更强的远程命令执行操作。 功能 Ansible主要功能是帮助运维实现IT工作的自动化、降低人为操作失误、提高业务自动化率、

qwejiaji的博客 284

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

ansible自动化运维1

ansible只需要在任意的控制节点安装一个ansible后,即可通过ssh 连接来控制/etc/ansible/hosts配置的所有节点(所以只要事先建立了控制节点到所有其他主机的免密码登录,即可立马使用ansible) 1, 安装ansible #centos sudo yum - y install ansible #ubuntu sudo apt install ansible -y ...

eyeofeagle的博客 664

自动化运维之1——Ansible的安装及部署

实验环境:一台可以上网的主机(ansible),一台客户机。配置好网络,配置好软件源。 一、ansible对企业运维的意义 二、安装Ansible 由于ansible在镜像软件源中没有,所以需要通过epel源安装。安装过程如下: 三、构建ansible的清单 1、全局清单文件 查看清单 2、指定其他清单文件 查看清单: 3、 查看清单: --inventory 5.构建用户级Ansible操作环境 #创建d...

Zhaohui_Zhang的博客 763

Ansible_自动化运维《Ansible之初识-1》

1.Ansible简介 1.1 Ansible介绍   Ansible 是一个简单的自动化运维管理工具,基于Python开发,集合了众多运维工具(puppet、cfengine、chef、func、fabric)的优点,实现了批量系统配置、批量程序部署、批量运行命令等功能。可以用来自动化部署应用、配置、编排 task(持续 交付、无宕机更新等),采用 paramiko 协议库...

dihexuan8970的博客 187

Ansible自动化运维,(1)模块

etc/ansible/ansible.cfg主配置文件,配置ansible工作特性,也可以在项目的项目中创建此文件,当前目录下如果也有ansible.cfg,则此文件优先生效,建议每个项目目录下,创建独有的ansible.cfg文件。复制/etc/passwd过去,指定属主和属组:ansible web -m copy -a "src=/etc/passwd dest=/opt/ mode=644 group=zhangsan owner=zhangsan"

2301_78327423的博客 1070

《Ansible自动化运维》—1.(ansible与devops)

ansible是基于Python语言实现的,由Paramiko和pyYAML两个关键模块构建的。             Paramiko使用Python写的一个模块,遵循SSH2协议,支持以加密和认证的方式,进行远程服务器的连接。用于连接多个远程服务器进行配置。             YAML是一种直观的能够被电脑识别的的数据序列化格式,容易被人类阅读,并且容易和脚本语言交互。YAML

wating_jx的博客 1161

自动化运维工具ansible 1基础

文章目录介绍简介核心组件特性安装与配置安装查看常用命令查看版本,查看可用命令集查看配置文件配置文件主配置文件,用来指定ansible的全局配置。主机配置文件,用来指定那些主机要被我操控。ansible命令命令的基本格式命令的选项简单命令ansible-doc命令命令的基本格式简单实例ansible执行步骤 介绍 简介 ansible是新出现的自动化运维工具,基于Python开发,集合了众多运维工具...

weixin_44055272的博客 563

PowerPaint-V1 Gradio自动化运维:Ansible部署与监控方案

本文介绍了如何在星图GPU平台上自动化部署PowerPaint-V1 Gradio镜像,实现AI图像生成与编辑功能。通过Ansible工具,用户可快速配置和管理该镜像,应用于智能图片修复、创意艺术设计等场景,显著提升AI应用的部署效率和运维稳定性。

weixin_42596246的博客 244

Yi-Coder-1.5B自动化运维:Ansible剧本生成指南

本文介绍了如何在星图GPU平台上自动化部署【ollama】Yi-Coder-1.5B镜像,赋能Ansible剧本生成与运维自动化。该轻量级代码大模型可精准理解运维语境,将模糊需求(如Nginx反向代理配置)自动转化为结构清晰、可执行、带注释的Ansible YAML,显著提升基础设施即代码(IaC)开发效率与可靠性。

weixin_35649491的博客 423

Ansible 运维自动化工具(1)

传统运维 传统运维工作比较繁琐,尤其是新的系统上线的场景,一切都是从零开始,包括虚拟机的创建,主机名的修改,系统的初始化等等,在机器不多的情况下人工还能应付的过来,如果有上百台机器呢?最初也是用堆人的方法来做的。但这样的方式出错率高,而且有时还会遗漏。只能通过相互检查的方式来验证,但这样就会花费更多的时间,相应的时间/人工成本也会上升。人工的方式因个人部署习惯千差万别,导致一些项目难以维护。 自动运维 •没有专门的工具为我们做这些事情,使用脚本语言(Python,Shell) ...

hjj223635的博客 463

基于Yi-Coder-1.5B的自动化运维:Ansible Playbook生成

本文介绍了如何在星图GPU平台上自动化部署【ollama】Yi-Coder-1.5B镜像,赋能运维人员高效生成Ansible Playbook。该轻量级代码模型可基于自然语言描述快速产出符合生产规范的YAML脚本,典型应用于服务器配置管理、故障恢复标准化及多环境配置同步等自动化运维场景。

weixin_35728286的博客 297
上一篇: shell中的运算
下一篇: python (1)
FYRXP
博客等级 码龄7年 6粉丝 57原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值