一、fetch模块 fetch模块与copy模块类似,但作用相反。用于把远程机器的文件拷贝到本地。...https://docs.ansible.com/ansible/latest/modules/fetch_module.html#fetch-module 将group1组机器的/opt/readme...拷贝到manage01的/opt目录 注意:不管是拷贝多个机器还是一个机器的文件,在管理机本地目录都会按照 IP/路径/文件名 的方式命名,防止冲突 [root@manage01...~]# ansible -m fetch group1 -a "src=/opt/readme dest=/opt" 192.168.98.203 | CHANGED => { "changed...模块
问题 Ansible调用shell远程启动java包,找不到JAVA_HOME或者直接输出为空。...,发现执行ansible-playbook返回为空 export JAVA_HOME=/usr/local/java export JRE_HOME=/usr/local/java/jre export...JAVA_HOME/lib:$JRE_HOME/lib export PATH=$PATH:$JAVA_HOME/bin:$JRE_HOME/bin 其次,在~/.bash_profile中添加环境变量,用ansible...最后…考虑ansible执行的环境变量与登录时使用的环境变量是否有所不同,所以将JAVA_HOME写在/etc/bashrc里面,发现执行结果正常… 原因 由于我的猜测可能是由于ansible执行的时候并没有调用.../etc/profile里面的环境变量配置,只加载/etc/bashrc和~/.bashrc里面环境变量 善意的提醒 建议以后把一些Devops或者持续交付的环境变量全部配置到~/.bashrc或者/etc
bash无论在命令行上执行,还是bash脚本中,都需要调用cd、ls、copy、yum等命令;模块就是Ansible的“命令”,模块是ansible命令行和脚本中都需要调用的。...[student@ansible ~/ansible]$ansible node1 -m service -a "name=httpd state=stopped enabled=no" 10 fetch...fetch -a 'src=/etc/fstab dest=/tmp' # 将某台远程主机的/etc/fstab文件拉取到本地来,存储的名字为/tmp/fstab [student@ansible...~/ansible]$ansible node1 -m fetch -a 'src=/etc/fstab dest=/tmp/ flat=yes' # 将远程主机的/etc/fstab文件拉取到本地来...,存储的名字为/tmp/fstab-node1 [student@ansible ~/ansible]$ansible node1 -m fetch -a 'src=/etc/fstab dest=/tmp
[TOC] 0x00 快速入门 描述:ansible使用ansible-doc --list可以看见所有的模块,ansble-doc -s模块名称显示模块使用详情; ansible-doc --list...ansible-doc --list | grep "ping" 模块名称及作用一览: fetch 模块:进行文件拉取 copy 模块:进行文件/内容的拷贝 file 模块:进行对文件/目录进行创建与操作...group=zsy" WeiyiGeek.示例2.文件内容 fetch 描述: 将远程主机上的文件拉取到本地之中 ansible weiyigeek-226 -m fetch -a "src=/home.../weiyigeek/prometheus/k8s_ca.crt dest=/tmp" ansible weiyigeek-226 -m fetch -a "src=/home/weiyigeek/prometheus...描述:debug模块的作用就是帮助我们进行调试的,debug模块可以帮助我们把信息输出到ansible控制台上,以便我们能够定位问题 debug参数一览表: msg: [debug信息] #设置
[TOC] 0x00 快速入门 描述:ansible使用ansible-doc --list可以看见所有的模块,ansble-doc -s模块名称显示模块使用详情; ansible-doc --list...ansible-doc --list | grep "ping" 模块名称及作用一览: fetch 模块:进行文件拉取 copy 模块:进行文件/内容的拷贝 file 模块:进行对文件/目录进行创建与操作...script模块的常用参数: free_form参数 :必须参数,指定需要执行的脚本,脚本位于ansible主机本地,并没有具体的一个参数名叫free_form,具体解释参考command模块。...描述:debug模块的作用就是帮助我们进行调试的,debug模块可以帮助我们把信息输出到ansible控制台上,以便我们能够定位问题 debug参数一览表: msg: [debug信息] #设置...' cacheable=yes echo {{demo}}" include_var模块 描述:可以在playbook运行中动态的加载被修改了的ansible变量参数文件; 模块参数: file :
一、stat模块 stat模块类似linux的stat命令,用于获取文件的状态信息。...https://docs.ansible.com/ansible/latest/modules/stat_module.html#stat-module 获取/etc/fstab文件的状态信息 [root...@manage01 ~]# ansible -m stat 192.168.98.201 -a "path=/etc/fstab" 192.168.98.201 | SUCCESS => {..."ansible_facts": { "discovered_interpreter_python": "/usr/libexec/platform-python" },...常用模块知识图谱
一、group模块 group模块用于管理用户组和用户组属性。...https://docs.ansible.com/ansible/latest/modules/group_module.html#group-module 参数 说明 name= 组名 state=...persent|absent 创建|删除 system= yes|no 是否为系统组 gid gid #组创建 [root@manage01 ~]# ansible -m group group1 -...: 4444, "name": "admin", "state": "present", "system": false } #删除组 [root@manage01 ~]# ansible...platform-python" }, "changed": true, "name": "admin", "state": "absent" } 二、学习视频 视频:group模块
ansible通过各种模块完成操作,除了ping模块,其他模块可以使用如下命令查看 ansible -l 可以用如下方式来获取ping模块的详细信息和介绍,若看到required表示参数必须要有,大多是模块都会有一些参数必须要有...ansible-doc -s ping 例如copy模块,传输文件,这个肯定要指定当前文件和目的目录 echo “one” > a.txt ansible 192.168.56.108 -m copy...ansible的模块非常多,没必要全都学习,先学习一些简单易用的,了解使用方法和原理后,其他模块可以自行学习。按照分类模块大致分为数据库模块、文件模块、命令模块等等,具体可以查看模块索引
一、hostname模块 hostname模块用于修改主机名(注意: 它不能修改/etc/hosts文件) https://docs.ansible.com/ansible/latest/modules.../hostname_module.html#hostname-module 将192.168.98.203机器的主机名修改为zutuanxue_node3 [root@manage01 ~]# ansible...-m hostname -a "name=zutuanxue_node3" 192.168.98.203 192.168.98.203 | CHANGED => { "ansible_facts...": { "ansible_domain": "", "ansible_fqdn": "zutuanxue_node3", "ansible_hostname...}, "changed": true, "name": "zutuanxue_node3" } 备注:批量修改需要使用playbook剧本 二、学习视频 视频:hostname模块
一、script模块 如何通过ansible执行一个脚本:lamp安装脚本 script模块:用于在远程机器上执行本地脚本。...https://docs.ansible.com/ansible/latest/modules/script_module.html#script-module 在manage01上创建脚本,通过ansible...将脚本分发到被管理端 [root@manage01 ~]# cat ansible_test.sh #!.../log \; #脚本不用给执行权限 [root@manage01 ~]# ansible -m script group1 -a "/root/ansible_test.sh" 192.168.98.203...error.log' 为同一文件", "cp: '/opt/log/access.log' 与'/opt/log/access.log' 为同一文件" ] } 二、学习视频 视频:script模块
管理用户 选项 参数 备注 append yesno 如果为yes,把用户添加到指定的组如果为no,仅将用户添加到指定的组中,并将其从其他组中移除 create_home yesno 是否创建用户家目录...force yesno generate_ssh_key yesno 是否为用户生成ssh密钥,不会覆盖现有的ssh密钥,除非force=yes group 设置用户的组 groups 用户将被添加到的组列表...home 设置用户的家目录 name 必选项 要创建、删除、修改的用户名称 password 把用户的密码设置加密值如果要禁用账户,将其设置为'!'...或'*' password_lock yesno 锁定密码此选项不会禁用用户,只会锁定密码,必须将其设置为False才能解锁锁定的密码 remove yesno 删除与用户关联的目录 shell 指定用户登录...shell uid 设置用户的UID state absentpresent system yesno
一、setup模块 setup模块用于收集远程主机的基本信息(如操作系统类型,主机名,ip,cpu信息,内存信息等) #打印192.168.98.201机器的所有信息 [root@manage01 ~]...# ansible -m setup 192.168.98.201 #使用filter过滤输出 #打印192.168.98.201机器的CPU信息 [root@manage01 ~]# ansible...ansible_all_ipv4_addresses:显示ipv4的信息。...ansible_swaptotal_mb:显示总的swap内存。 ansible_swapfree_mb:显示swap内存的可用内存。 ansible_mounts:显示系统磁盘挂载情况。...ansible_processor:显示cpu个数(具体显示每个cpu的型号)。 ansible_processor_vcpus:显示cpu个数(只显示总的个数)。 二、学习视频 视频:setup模块
环境 [root@workstation ansible]# cat /etc/ansible/hosts [myhosts] 192.168.1.110 192.168.1.111 模块用法 模块...shell模块由于没有加载,所以无法识别; 如果需要使用自定义的环境变量,就需要在最开始,执行加载自定义脚本的语句...." stat模块 显示远程主机文件的超级详细的信息 ansible myhosts -m stat -a "path=/tmp/hosts" yum模块 name...con模块 每天的14.30分执行一下echo hello ansible myhosts -m cron -a "name='say hello' minute='30' hour='14' job=...1: 使用python的crypt模块 使用python的crypt模块 [root@ansible ~]#python >>> import crypt >>> crypt.crypt('ononon
ansible模块定制开发 ansible做为流行的运维自动化工具,异常强大与好用,自身带了诸多的通用模块,在日常工作中,基本能满足需求,但是需求是变化多端的,尤其是在结合业务的时候,ansible就不是很给力了...,这就是需要我们定制开发自己的模块,在ansible运行框架下,更好的服务的我们的业务。...现以pids.py模块进行讲解,该文件位于ansible/modules/system/pids.py,一旦你理解模块的基本开发流程,就可以开发的模块,让自己的能力更上一层楼: #!...模块返回值 在使用ansible-playbook时,我们需要保存模块执行的返回值来进行后续的处理,那如何让模块正常返回内容,同样以pids.py的内容为例,我们可以看到这样的代码: module.exit_json...模块的存放位置 模块开发完成,那ansible是如何找到我们自定义的模块的呢? Ansible自动将在某些目录中找到的所有可执行文件作为模块加载,因此您可以在以下任何位置创建或添加本地模块: 1.
一、copy模块(重点) copy模块用于对文件的远程拷贝操作(如把本地的文件拷贝到远程的机器上) https://docs.ansible.com/ansible/latest/modules/copy_module.html.../目录里的所有文件拷贝到/tmp/目录下 [root@manage01 ~]# ansible group1 -m copy -a 'src=/etc/yum.repos.d/ dest=/tmp/'..._333" 注意:ansible中-a后面的参数里也有引号时,记得要单引双引交叉使用,如果都为双引会出现问题 使用force参数控制是否强制覆盖 如果目标文件已经存在,则不覆盖 [root@manage01...),再远程拷贝新的文件为/tmp/333 [root@manage01 ~]# ansible group1 -m copy -a "src=/etc/fstab dest=/tmp/zutuanxue..._333 backup=yes" 二、学习视频 视频:copy模块
import ansible.runner import ansible.playbook import ansible.inventory from ansible import callbacks...from ansible import utils 远程执行命令 hosts = [hosts] host_inventory = ansible.inventory.Inventory(hosts)...pm = ansible.runner.Runner(module_name = 'command',module_args = cmds,timeout = 600,inventory = host_inventory...,subset = 'all') out = pm.run() 远程传输文件 hosts = [hosts] host_inventory = ansible.inventory.Inventory(hosts...) pm = ansible.runner.Runner(module_name = 'copy',module_args = 'src='+file_path+' dest='+file_path+'
1、 ansible-doc 希望知道更加详细的module的信息,最好的方法是使用ansible自带的ansible-doc的-s选项 [root@node1 ~]# ansible-doc -s raw...模块 ,在远程主机执行主控端的shell/python脚本 shell模块 ,执行远程主机的shell/python脚本 raw模块 ,类似于command模块、支持管道传递 (1)直接执行脚本 [...[root@hadron web_store]# 3、 常用模块之copy 使用copy模块,可以实现向目标机器进行远程copy的能力。...模块 ,在远程主机执行主控端的shell/python脚本。...setup模块,用于收集对象机器的基本设定信息 (1) 不用option的情况会输出所有相关的对象机器的facts [root@node1 ~]# ansible 192.168.80.133 -
基于ansible2.9 选项 参数 备注 archive yesno 启用递归、链接、权限、时间、所有者、组 compress yesno 在传输过程中压缩文件,在大多数情况下,请启用该功能 delete...yesno 删除dest中存在,src中不存在的文件,需要设置recursive=yes dest 必选 目标路径,可以是绝对路径,也可以是相对路径 dest_port 目标端口,目标主机上的ssh...端口号 group yesno 保留组 mode pullpush 模式,指定同步的方向,在push模式下,本地主机是源,在pull模式下,远程主机是源 owner yesno 保留所有者 perms
一、yum模块 yum模块用于使用yum命令来实现软件包的安装与卸载。...https://docs.ansible.com/ansible/latest/modules/yum_module.html#yum-module 参数 说明 name 需要安装软件包的名称 list...= installed, updates, available and repos 列出已安装 需要更新 可获得的 和 yum源 state= absent removed installed..."同步仓库 'dvd' 缓存失败", "rc": 1, "results": [] } 原因就是源不好用,这里是cdrom没有挂载光盘 使用yum安装一个软件(前提:group1的机器上的...", "rc": 0, "results": [ "Removed: vsftpd-3.0.3-28.el8.x86_64" ] } 二、学习视频 视频:yum模块
管理远程主机的定时任务 选项 参数 备注 day 默认值:* 天。1-31、、/2 disabled yesno 注释该定时任务,使任务失效 hour 默认值:* 时。...0-23、、/2 job 默认值:* 要执行的命令或脚本 minute 默认值:* 分。0-59、、/2 month 默认值:* 月。...默认值:* 计划任务别名 state absentpresent 如果为absent,则删除定时任务 user 修改其特定用户,未设置时,默认使用root weekday 默认值:* 计划任务应该在一周的哪一天运行
领取专属 10元无门槛券
手把手带您无忧上云