Ansible第二天学习笔记

ansible学习笔记分享 方法:openssl passwd -1 "your_password"ansible web -m cron -a 'name="test cron job" minute="0" hour="12" weekday="3" job="/bin/echo hello"' #猜一下这个。ansible pxg -m copy -a "src=/root/apache.sh dest=/root/apache.sh" #将管理机root下的脚本拷贝到被管理机的root下。 阅读详情

1. Ansible清单

1.1 清单的作用

作用:定义了ansible服务器管理的一批受管主机,通过执行Ansible模块,在调用过程中直接对清单中的主机进行批量管理

1.2清单文件的位置

清单配置文件的默认位置在 /etc/ansible/hosts,可以通过修改该配置文件来指定不同的默认清单文件。可以使用不同的格式编写此文件,包括INI样式和YAML。

对于默认清单我们一般不使用,通常为了方便每一位管理者的管理,管理者均会在自己的文件夹目录中设置自己的清单目录。

ansible清单文件的优先级

1.首先ANSIBLE_CONFIG环境变量指定的任何文件将覆盖所有其他配置文件,定义了此变量时Ansible将使用变量所指定的配置文件

[root@localhost opt]# ansible --version
ansible 2.9.23
  config file = /opt/ansible.cfg
  configured module search path = [u'/root/.ansible/plugins/modules', u'/usr/share/ansible/plugins/modules']
  ansible python module location = /usr/lib/python2.7/site-packages/ansible
  executable location = /usr/bin/ansible
  python version = 2.7.5 (default, Apr 11 2018, 07:36:10) [GCC 4.8.5 20150623 (Red Hat 4.8.5-28)]
[root@localhost opt]# 

2.其次如果没有设置该变量找执行ansible命令的当前目录中,是否有 ansible.cfg文件
实例://其次使用当前目录下的ansible.cfg文件环境配置

[root@localhost gg]# ansible --version
ansible 2.9.23
  config file = /opt/gg/ansible.cfg
  configured module search path = [u'/root/.ansible/plugins/modules', u'/usr/share/ansible/plugins/modules']
  ansible python module location = /usr/lib/python2.7/site-packages/ansible
  executable location = /usr/bin/ansible
  python version = 2.7.5 (default, Apr 11 2018, 07:36:10) [GCC 4.8.5 20150623 (Red Hat 4.8.5-28)]
[root@localhost gg]# 

3.如果找不到,再查找当前用户的家目录下是否有 .ansible.cfg~/.ansible.cfg
实例://再次使用当前用户家目录下的./ansibe.cfg文件配置

[root@localhost ~]# ansible --version
ansible 2.9.23
  config file = /root/ansible.cfg
  configured module search path = [u'/root/.ansible/plugins/modules', u'/usr/share/ansible/plugins/modules']
  ansible python module location = /usr/lib/python2.7/site-packages/ansible
  executable location = /usr/bin/ansible
  python version = 2.7.5 (default, Apr 11 2018, 07:36:10) [GCC 4.8.5 20150623 (Red Hat 4.8.5-28)]
[root@localhost ~]# 

ansible --version 命令中,会显示检查当前使用的是哪个配置文件;

设置环境变量 export ANSIBLE_CONFIG=

总结:ANSIBLE_CONFIG >> $ANSIBLE_CONFIG/ansible.cfg >> ~/.ansible.cfg>>/etc/ansible/ansible.cfg

ansible查看帮助文档

ansible-doc -l //列出所有核心模块和附加模块
实例:列出所有模块

[root@localhost ~]# ansible-doc -l
fortios_router_community_list                                 Configure community lists in Fo...
azure_rm_devtestlab_info                                      Get Azure DevTest Lab facts    
ecs_taskdefinition                                            register a task definition in e...
avi_alertscriptconfig                                         Module for setup of AlertScript...
tower_receive                                                 Receive assets from Ansible Tow...
netapp_e_iscsi_target                                         NetApp E-Series manage iSCSI ta...
azure_rm_acs                                                  Manage an Azure Container Servi...
fortios_log_syslogd2_filter                                   Filters for remote system serve...
junos_rpc                                                     Runs an arbitrary RPC over NetC...

ansible-doc modulename //查看某个模块的使用方法
ansible-doc -s modulename //查询某个模块的使用比较简洁的信息
实例:查看user模块的使用方法

[root@localhost ~]# ansible-doc -s user
- name: Manage user accounts
  user:
      append:                # If `yes', add the user to the groups specified in `groups'. If
                               `no', user will only be added to
                               the groups specified in `groups',
                               removing them from all other
                               groups. Mutually exclusive with
                               `local'
      authorization:         # Sets the authorization of the user. Does nothing when used with
                               other platforms. Can set multiple
                               authorizations using comma
                               separation. To delete all
                               authorizations, use
                               `authorization='''. Currently
                               supported on Illumos/Solaris.

也可以直接官网进行查看帮助文档

2.模块介绍

Ansible的三个命令模块

command

command:用于在远程主机上执行命令,ansible默认就是使用command模块。
不支持">“,”<“,”|“,”;“,”&"等符号
参数

参数释义
chdir 在执行命令前进入到指定目录中
creates 判断指定文件是否存在,如果存在,不执行后面的操作
removes 判断指定文件是否存在,如果存在,执行后面的操作

控制两台主机使用hostname命令。

[root@master ansible]# cat inventory 
192.168.101.100 
[webservers]
192.168.101.120 ansible_user=root ansible_password=a

[root@master ansible]# ansible all -m command -a "hostname"
192.168.101.100 | CHANGED | rc=0 >>
localhost.localdomain
192.168.101.120 | CHANGED | rc=0 >>
node1

chird

[root@master ansible]# cat inventory 
192.168.101.100 
[webservers]
192.168.101.120 ansible_user=root ansible_password=a

[root@master ansible]# ansible all -m command -a "hostname"
192.168.101.100 | CHANGED | rc=0 >>
localhost.localdomain
192.168.101.120 | CHANGED | rc=0 >>
node1

shell

shell:类似于command模块,但是功能更多
支持">“,”<“,”|“,”;“,”&"等符号
参数:与command相同
实例:

[root@master ansible]# ansible 192.168.101.110 -m shell -a "yum list | grep httpd"
[WARNING]: Consider using the yum module rather than running 'yum'.  If you need to use command
because yum is insufficient you can add 'warn: false' to this command task or set
'command_warnings=False' in ansible.cfg to get rid of this message.
192.168.101.110 | CHANGED | rc=0 >>
centos-logos-httpd.noarch                                         85.8-1.el8                                        appstream 
dmlite-apache-httpd.x86_64                                        1.15.0-4.el8                                      epel      
httpd.x86_64                                                      2.4.37-40.module_el8.5.0+852+0aafc63b             appstream 
httpd-devel.x86_64                                                2.4.37-40.module_el8.5.0+852+0aafc63b             appstream 
httpd-filesystem.noarch                                           2.4.37-40.module_el8.5.0+852+0aafc63b             appstream 
httpd-manual.noarch                                               2.4.37-40.module_el8.5.0+852+0aafc63b             appstream 
httpd-tools.x86_64                                                2.4.37-40.module_el8.5.0+852+0aafc63b             appstream 
keycloak-httpd-client-install.noarch                              1.0-2.el8                                         appstream 
libmicrohttpd.i686                                                1:0.9.59-2.el8                                    baseos    
libmicrohttpd.x86_64                                              1:0.9.59-2.el8                                    baseos    
lighttpd.x86_64                                                   1.4.55-3.el8                                      epel      
lighttpd-fastcgi.x86_64                                           1.4.55-3.el8                                      epel      
lighttpd-filesystem.noarch                                        1.4.55-3.el8                  

raw

raw:用于在远程主机上执行命令,支持管道符与重定向
实例:

[root@master ansible]# ansible 192.168.101.110 -m raw -a "echo '123' > /abc/file1"
192.168.101.110 | CHANGED | rc=0 >>
Shared connection to 192.168.101.110 closed.

[root@master ansible]# ansible 192.168.101.110 -m raw -a "cat /abc/file1"
192.168.101.110 | CHANGED | rc=0 >>
123
Shared connection to 192.168.101.110 closed.
ansible学习笔记 引入变量,可以方便Playbook重用。比如装包的playbook,包名使用变量。多次执行playbook,只要改变变量名即可,不用编写新的playbook。ansible支持10种以上的变量定义方式。常用的变量来源如下:inventory变量。变量来自于主机清单文件facts变量。playbook变量。变量在playbook中定义。变量文件。专门创建用于保存变量的文件。推荐变量写入单独的文件。# 使用inventory变量。 阅读详情

相关推荐

Linux网络编程(HTTP协议)

本篇文章带大家学习Linux网络编程中的HTTP协议,并且后面使用HTTP协议来实现一个完整的实战项目。HTTP(Hypertext Transfer Protocol)是一种用于在Web上进行数据通信的应用层协议。它是一个客户端-服务器协议,用于客户端(例如Web浏览器)向服务器(例如Web服务器)发送请求并获取响应。HTTP协议以明文方式传输数据,运行在TCP/IP协议栈之上,使用默认的80端口进行通信。1.建立连接:客户端与服务器之间建立TCP连接。默认情况下,客户端使用80端口与服务器通信。

m0_49476241的博客 1471

使用C语言库Microhttpd的爬虫程序爬取网易云的视频

这个程序使用了Microhttpd库,使用递归的方式爬取https://music.163.com/的视频。程序会首先创建一个Microhttpd服务器,然后在服务器上监听8080端口。当有客户端连接到服务器并发送请求时,服务器会调用`handle_request`函数处理请求。`handle_request`函数会检查请求的URL是否在根目录下,如果在,则读取并返回该文件的内容。这是一个使用C语言库Microhttpd的爬虫程序,用于爬取https://music.163.com/的视频。

w15189597283的博客 560

博途 V15.1安装步骤

温馨提醒:安装此软件电脑配置至少应满足以下要求 处理器 CoreTM i5-3320M 3.3 GHz 或相当 内存 至少8G 硬盘 300 GB SSD 显示器 15.6' 宽屏显示 (1920 x 1080) 1.双击打开【Siemens v15.1】文件夹。 2.鼠标右击【STEP 7 BasicProfess...

谢谢关注“小鱼教你模数电”,各平台同号 9万+

GNU libmicrohttpd 0.9.29 发布 - 开源中国社区

GNU libmicrohttpd 0.9.29 发布 - 开源中国社区GNU libmicrohttpd 0.9.29 发布

weixin_34208185的博客 109

SIwave:在 SIwave 中释放计算频率扫描的强大功能

AEDT 的电路工具允许注入正确的电压和电流。要使用电路工具,SIwave 必须首先使用 PI 求解器求解结构的 S 参数。

jkh920184196的博客 1476

世界模型和大语言模型结合开发自动驾驶算法

摘要:自动驾驶系统开发中,融合世界模型和大语言模型可显著提升效率和安全性。世界模型负责环境感知与预测(如目标检测、轨迹预测),而大语言模型优化代码生成、决策解释等环节。实施路径包括需求分析(1-2周)、模型开发(2-4个月)、模拟测试(1-2个月)、实车测试(2-3个月)和合规优化(1-2个月),总周期6-12个月。关键技术工具包括PyTorch/TensorFlow、CARLA模拟器和ROS系统,核心设计理念强调模块化、安全优先和敏捷迭代。示例代码展示了YOLO目标检测与大语言模型决策建议的集成方案。该方

ponygame的博客 826

记录:GNU Libmicrohttpd介绍和使用

Libmicrohttpd

zby枣菠鱼的博客 2081

电驱系统功率级“多合一”解决方案

如何提升电驱动系统的产品性能、减小能耗和进一步轻量化,以加强整车市场竞争力,是摆在国内外新能源车企面前的共同课题。为此,具有多年动力总成电子系统开发经验的美国著名半导体及电子解决方案专家——德州仪器(Texas Instrument)提出了多种功率级别“多合一”整合方案和设计思路,助力新能源车企提升技术优势。

yessunday的专栏 1372

学习libmicrohttpd

  该库是GNU系统下的一款C语言http协议服务端,提供http和https服务,支持Linux、Windows等多平台;1 主页     https://www.gnu.org/software/libmicrohttpd/2 介绍2.1 使用范围    a Embedded HTTP server on a cortex M3 (128 KB code space)       嵌入式htt...

来说意义非凡3 6013

2019年数学建模美赛经验总结

北京时间2019年1月29号上午9时,数模美赛结束。美赛结束已经10多天了,我在这次竞赛中负责建模和编程,趁现在记忆还比较清晰,写下这篇博客记录第一次参加数学建模美赛的经历。 补更:2019年4月20日公布成绩,笔者最终获得了美赛一等奖 目录 1、基本情况 2、选题 3、分工合作 4、论文写作 5、建模 6、编程 7、入门资源 ...

Smallactive 7万+

Ubuntu1804 关于ubuntu18.04下载软件仓库信息失败,请检查网络连接 的解决方案

今天电脑在更换软件源的时候遇到了这个问题。出现了如上图所示的错误信息。 尝试了各家优快云的博客之后,发现方法大同小异,均无法解决。 方法大多都是要求更换软件源,如下所示: 打开“Ubuntu软件中心”-->点击“编辑”-->点击“软件源”-->在Ubuntu软件界面,“下载自”默认是“中国的服务器”,改为“主服务器”试试 2.打开更新管理器-》设置-》选择站点-》...

weixin_43729409的博客 1万+

Ansible的学习笔记与总结

Ansible是一种自动化运维工具,基于Python开发的,用于配置管理、应用部署、任务自动化和持续交付,采用YAML语言编写脚本(playbook),简单易用,广泛应用于DevOps和IT自动化领域。playbook使用yaml语法编写的自动化脚本,是由一个或多个"play"组成的列表.可以简单理解为批量部署手册的自动执行版本.

qq_75229677的博客 1087

Java小白入门200例81之Java接口

作者简介 作者名:编程界明世隐 简介:优快云博客专家,从事软件开发多年,精通Java、JavaScript,博主也是从零开始一步步把学习成长、深知学习和积累的重要性,喜欢跟广大ADC一起打野升级,欢迎您关注,期待与您一起学习、成长、起飞! 引言 很多Java初学者问我,新手明明很用心、很努力学习的Java知识,转头又忘记了,很让人犯愁,小白如何能够快速成长、成为大牛呢? 其实要成为大神的技巧只有一个:“多学多练”,于是明哥就整理了比较典型的练习实例,通过练习能够快速提升编码技巧和熟练度,让你在成为大

编程界明世隐的博客 1359

Ansible学习笔记

Ansible学习笔记 1.安装Ansible软件 yum install -y ansible 2./etc/ansible/hosts 该文件代表需要管理的主机列表 格式为: 组名 [test] IP地址或主机名或域名 192.168.1.151 192.168.1.152 test1 test2 OS_controller OS_compute 连续IP可以使用192.168.1.[151:...

huanghong6956的博客 1297

【WRF-Urban】使用 NUDAPT 数据集与 BEP/BEP_BEM 方案的 WRF 配置指南

【WRF-Urban】使用 NUDAPT 数据集与 BEP/BEP_BEM 方案的 WRF 配置指南

WW、forever的博客 1964

霍尼韦尔SoftMaster使用说明

霍尼韦尔SoftMaster使用说明

ansible第二天

ansible第二天

qq_55936261的博客 765

Outlook Express 6 (OE6) for Win7/Win8/Win10

英文版 Outlook Express6.0, 兼容Win7/Win10/WinXP,解压就可用。

ansible学习笔记一

ansible学习笔记一 参考博客: ansible学习 - 51CTO博客 一、安装 1 .下载epel源 wget -O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.repo 安装 yum install -y ansible 二、ansible 命令格式及使用 1,ansible...

weixin_30482181的博客 176

SAP B1中文培訓教材_SDK

公司内部培训资料,对开发工具 ,DIAPI, UIAPI,Add-ON有详细解说

Probability and Statistics - 4th edition

Probability and Statistics - 4th edition

Ansible常用模块

bash无论在命令行上执行,还是bash脚本中,都需要调用cd、ls、copy、yum等命令;模块就是Ansible的“命令”,模块是ansible命令行和脚本中都需要调用的。常用的Ansible模块有yum、copy、template等。

weixin_53388991的博客 6436

Ansible简介

不是 2.X 版本的 Python.我们不使用 "/usr/bin/env" 机制,因为这要求远程用户的路径设置正确,且要求 "python" 可执行程序名不可为 python以外的名字(实际有可能名为python26). 与 ansible_python_interpreter 的工作方式相同,可设定如 ruby 或 perl 的路径....-M MODULE_PATH, --module-path=MODULE_PATH 要执行的模块的路径,默认为/usr/share/ansible/

jingyu飞鸟 5270

[Ansible] Ansible角色管理

文章摘要:本文介绍了Ansible角色的概念、结构及使用方法。Ansible角色通过标准化目录结构(tasks、handlers、vars等)封装可重用代码,提升自动化效率。详细说明了角色创建、调用、依赖关系的配置方法,并演示了系统角色(如timesync、selinux)的实际应用。此外,还介绍了Ansible Galaxy平台的角色搜索、安装和管理技巧,包括如何部署第三方角色(如haproxy)。文章强调了角色在复杂环境中的优势,包括代码复用、模块化管理和多团队协作,并提供了从基础创建到高级集成的完整实

qq_53232485的博客 1114

ansible-第二天

state: started表示启动 stopped表示关闭 restarted表示重启。如果选nvme硬盘,名称可能是/dev/nvme0n1和/dev/nvme0n2。present表示创建,它是默认选项。absent表示删除。LINUX下KVM虚拟机新加的硬盘,名称是/dev/vdb和/dev/vdc。state:prensent表示创建、它是默认选项。vmware虚拟机新加的硬盘,名称是/dev/sdb和/dev/sdc。lv:创建的逻辑卷名。dev:指定要格式化的设备,可以是分区,可以是逻辑卷。

weixin_65562581的博客 732

ansible-vim与VSCode对比:为什么Vim用户应该选择ansible-vim进行Ansible开发

在Ansible自动化配置管理领域,选择合适的开发工具能显著提升工作效率。对于习惯使用Vim的开发者来说,ansible-vim插件提供了比VSCode更原生的Ansible开发体验。本文将深入对比ansible-vim与VSCode在Ansible开发中的差异,揭示为什么Vim用户应该选择ansible-vim进行Ansible开发。 ## 🔍 核心功能对比:ansible-vim vs V

gitblog_00772的博客 839
上一篇: ansible第一天学习内容
下一篇: ​ 完成四种方式的MySQL安装并记录过程
Dream_of_falling
博客等级 码龄5年 82粉丝 43原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值