加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

Ansible模块

发布时间:2020-12-15 22:58:38 所属栏目:安全 来源:网络整理
导读:1.列出ansible所支持的模块。 ansible-doc -l ? 2.查看模块的详细帮助信息,比如查看 fetch 模块的帮助。 ansible-doc -s fetch ? 3.调用模块,比如调用 ping模块。 ansible 192.168 . 128.83 -m ping ? 4.调用模块的同时传入模块所需要的参数,以 fetch 模

1.列出ansible所支持的模块。

ansible-doc -l

?

2.查看模块的详细帮助信息,比如查看 fetch 模块的帮助。

ansible-doc -s fetch

?

3.调用模块,比如调用 ping模块。

ansible 192.168.128.83 -m ping

?

4.调用模块的同时传入模块所需要的参数,以 fetch 模块为例。

ansible 192.168.128.83 -m fetch -a "src=/testdir/testfile1 dest=/testdir/ansible/"

?

常用模块

command

https://blog.csdn.net/dylloveyou/article/details/80412513

command 模块可以帮助我们在远程主机上执行命令

chdir # 切换目录
creates # 如果存在,则不执行后面的命令
removes # 如果存在,则执行后面的命令
ansible web -a pwd
ansible web -a ls /tmp
ansible web -a creates=/tmp mdkir /data #被忽略,因为/tmp存在
ansible web -a creates=/tmp2 mkdir /data #被执行,因为/tmp2目录不存在
ansible web -a removes=/tmp2 mkdir /data2 #被忽略,因为/tmp2目录不存在
ansible web -a removes=/tmp mkdir /data2 # 被执行,因为/tmp存在

?

shell

https://blog.csdn.net/dylloveyou/article/details/80443497

shell 模块可以帮助我们在远程主机上执行命令。与 command 模块不同的是,shell 模块在远程主机中执行命令时,会经过远程主机上的?/bin/sh?程序处理。

  被管控机创建脚本文件 a.sh

#!/bin/bash
mkdir /wutenglan3

  执行

ansible db -m shell -a ‘echo "1234"|passwd --stdin alex‘
ansible 10.0.0.143 -m shell -a "bash a.sh" # 执行脚本 ansible 10.0.0.143 -m shell -a "/root/a.sh" ansible 10.0.0.143 -m shell -a "/root/a.py" # 执行python文件

?  如果出现这样问题,请修改被管理机文件权限 ?chmod +x a.py

[[email?protected] ~]# ansible 192.168.14.164 -m shell -a‘/root/a.py‘
192.168.14.164 | FAILED | rc=126 >>
/bin/sh: /root/a.py: Permission deniednon-zero return code

?

script ?

https://blog.csdn.net/dylloveyou/article/details/80465000

script 模块可以帮助我们在远程主机上执行 ansible 管理主机上的脚本,也就是说,脚本一直存在于 ansible 管理主机本地,不需要手动拷贝到远程主机后再执行。?

ansible db -m script -a "/root/b.sh" # 执行管控机器上的文件
ansible web -m script -a "creates=/root/a.py /root/b.sh" # 判断被管控机器上的文件是否存在 ,如果存在,就跳过 ansible web -m script -a "removes=/root/a.py /root/b.sh" # 判断被管控机器上的文件是否存在 ,如果存在,就执行?

?

copy (管理主机=>远程)

https://blog.csdn.net/dylloveyou/article/details/80517396

copy 模块的作用就是拷贝文件,将 ansible 管理主机上的文件拷贝到远程主机中。

backup # 备份
content # 内容
dest # 目的地址
group # 文件的属组
mode #文件的权限  R 4 W 2 X 1 owner # 文件的属主 src #文件的源文件地址 ansible web -m copy -a "dest=/tmp/f src=/etc/fstab" #复制单独文件 ansible web -m copy -a "src=/etc/init.d dest=/tmp" #复制文件目录 ansible web -m copy -a "src=/etc/init.d/ dest=/tmp" # 复制文件夹内的所有的文件 ansible db -m copy -a "dest=/tmp/b.sh src=/root/b.sh mode=644 owner=alex" # 复制文件并修改权限和属主 ansible db -m copy -a "src=/etc/init.d dest=/tmp owner=alex" # 修改文件夹的权限或者属主属组时,文件夹内的所有文件的权限也会被修改 # 通过md5来做校验 ansible db -m copy -a "dest=/tmp/b.sh src=/root/b.sh mode=644 owner=alex backup=yes" # 复制文件并将原来的文件做备份 ansible db -m copy -a "dest=/tmp/c.txt content=‘大弦嘈嘈如急雨,小弦切切如私语‘" # 直接往文件里面写入文件,是直接覆盖写入,慎用

?

fetch?(远程=>管理主机)

fetch 模块是从远程主机中拉取文件到 ansible 管理主机

dest #目标地址
src # 源地址
ansible db -m fetch -a "dest=/tmp src=/var/log/cron" # 复制远程被管控机器的文件道管控机器上,以被管控机的ip为目录,并保留原来的目录结构

?

file?

https://blog.csdn.net/dylloveyou/article/details/80560226

file 模块可以帮助我们完成一些对文件的基本操作。比如,创建文件或目录、删除文件或目录、修改文件权限等。

access_time # 创建时间
group # 属组
mode # 权限
owner # 属主
path # 文件的路径
src # 源地址,只有在软连接和硬链接的时候才会使用
state # directory 目录 touch 文件 link 软连接 hard 硬链接 absent 删除 ansible db -m file -a "path=/alex state=directory" # 创建一个目录 ansible db -m file -a "path=/root/alex.txt state=touch" # 创建一个文件 ansible db -m file -a "src=/root/q.txt path=/tmp/q state=link" # 创建软连接,源地址是本机上的文件地址 ansible db -m file -a "path=/tmp/q state=absent" # 删除文件或者文件夹

补充: 链接

软连接  快捷方式          会跟源文件改变     ln -s 
硬链接  硬盘的重复应用      会跟源文件改变    ln 复制 复制了一份 不会跟源文件改变 cp

?

yum

https://blog.csdn.net/dylloveyou/article/details/81674949

yum?模块可以帮助我们在远程主机上通过 yum 源管理软件包

补充:?

rpm 全称 radhat package manager 
yum 区别就是可以解决依赖关系, python写的
1.rpm和yum的区别

[epel]     # 名字
name=Extra Packages for Enterprise Linux 7 - $basearch    描述信息
baseurl=http://mirrors.aliyun.com/epel/7/$basearch       yum源地址
failovermethod=priority
enabled=1     # 当前yum源是否启用,1代表启用,0代表不启用
gpgcheck=0    # 用来检测gpgkey文件,1代表检测,0代表不检查
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-7
2.yum源配置

yum grouplist # 查询包组信息
yum groupinstall -y "Development Tools" # 安装包组
3.安装包组
disable_gpg_check # 禁止检查gpgcheck
disablerepo # 禁用repo源
enablerepo # 启用repo源
name #包的名称
state  remove 卸载 install 安装
ansible web -m yum -a name=python2-pip # 安装python2-pip
ansible web -m yum -a name=python2-pip,redis #用来安装多个包
ansible web -m yum -a name="@Development Tools" # 用来安装包组

?

pip

service

cron

user

group

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读