Ansible常用模块的用法

Ansible命令参数


-v:输出详细信息(可以使用多个v)
-i PATH:指定hosts文件位置
-f NUM :指定开启的进程数(默认为5)
-m MOULE :指定module的名称(默认为command)
-m DIRECTORY:指定module的目录来加载module,默认是/usr/share/ansible
-a MODULE_ARGS:指定module模块的参数
-k:提示输入ssh的密码,而不是使用基于ssh的密钥认证
-u USERNAME:指定移动端的执行用户

Ansible的常用模块


Ansible常用模块的用法

ping模块

/测试被管理主机是否在线
ansible all -m ping

Ansible常用模块的用法

raw模块

raw模块只适用于下列两种场景,第一种情况是在较老的(Python 2.4和之前的版本)主机上,另一种情况是对任何没有安装Python的设备(如路由器)。 在任何其他情况下,使用shell或command模块更为合适。

可以在被管理主机上远程输入命令

ansible 192.168.1.135 -m raw -a 'ifconfig'

Ansible常用模块的用法

yum模块

程序包的安装和卸载
举例安装、卸载zsh

安装
Ansible常用模块的用法
卸载
Ansible常用模块的用法

apt模块

ubuntu/debian的包管理工具
这个模块是ubuntu作为远端节点的OS的时候,用的最多的

– deb: 用于安装远程机器上的.deb后缀的软件包(optional) 
– install_recommends:这个参数可以控制远程电脑上是否只是下载软件包,还是下载后安装,默认参数为true,设置为false的时候只下载软件包,不安装 
– update_cache: 当这个参数为yes的时候等于apt-get update(optional) 
– name: apt要下载的软件包名字,支持name=git=1.6 这种制定版本的模式 
– state:状态(present,absent,latest),表示是安装还卸载 

   present:默认的,表示为安装
   lastest: 安装为最新的版本
   absent:表示删除
Ansible常用模块的用法

pip模块

用于管理Python库依赖项,为了使用pip模块,必须提供参数name或者requirements
– chdir: 执行pip命令前cd进入的目录 
– name:要安装的Python库的名称或远程包的URL。 
– requirements:一个pip requirements.txt文件的路径,它应该是远程系统的本地文件,如果使用chdir选项,则可以将文件指定为相对路径。 
– version:指定的Python库的安装版本。 
– extra_args:额外的参数传递给pip。 
– executable:显式可执行文件或可执行文件的路径名,用于为系统中安装的特定版本的Python运行pip。 例如pip-3.3,如果系统中安装了Python 2.7和3.3,并且想要为Python 3.3安装运行pip。 它不能与“virtualenv”参数一起指定(在2.1中添加)。 默认情况下,它将采用适用于python解释器的版本。 pip3在python 3上,pip2或pip在python 2上。 
– virtualenv:要安装到的virtualenv目录的可选路径。 它不能与’executable’参数一起指定(在2.1中添加)。 如果virtualenv不存在,则将在安装软件包之前创建它。 可选的virtualenv_site_packages,virtualenv_command和virtualenv_python选项会影响virtualenv的创建。 
– virtualenv_command:用于创建虚拟环境的命令或路径名。 例如pyvenv,virtualenv,virtualenv2,~/bin /virtualenv,/usr/local/bin/virtualenv。 
– virtualenv_python:用于创建虚拟环境的Python可执行文件。 例如python3.5,python2.7。 未指定时,将使用用于运行ansible模块的Python版本。 当virtualenv_command使用pyvenv或-m venv模块时,不应使用此参数。 
– state:状态(present,absent,latest, forcereinstall),表示是安装还卸载 
       present:默认的,表示为安装 
       lastest: 安装为最新的版本 
       absent:表示删除 
        forcereinstall:“forcereinstall”选项仅适用于可ansible 2.1及更高版本。

Ansible常用模块的用法
Ansible常用模块的用法
Ansible常用模块的用法

synchronize模块

– 使用rsync同步文件,将主控方目录推送到指定节点的目录下,其参数如下: 
– delete: 删除不存在的文件,delete=yes 使两边的内容一样(即以推送方为主),默认no 
– src: 要同步到目的地的源主机上的路径; 路径可以是绝对的或相对的。如果路径使用”/”来结尾,则只复制目录里的内容,如果没有使用”/”来结尾,则包含目录在内的整个内容全部复制 
– dest:目的地主机上将与源同步的路径; 路径可以是绝对的或相对的。 
– dest_port:默认目录主机上的端口 ,默认是22,走的ssh协议。 
– mode: push或pull,默认push,一般用于从本机向远程主机上传文件,pull 模式用于从远程主机上取文件。 
– rsync_opts:通过传递数组来指定其他rsync选项。

案例:将主控方/root/ddd.py 目录推送到指定节点的/tmp 目录下
Ansible常用模块的用法

template模块

基于模板方式生成一个文件复制到远程主机(template使用Jinjia2格式作为文件模版,进行文档内变量的替换的模块。它的每次使用都会被ansible标记为”changed”状态。) 
– backup: 如果原目标文件存在,则先备份目标文件 
– src:在ansible控制器上的Jinja2格式化模板的路径。 这可以是相对或绝对的路径。 
– dest:将模板渲染到远程机器上的位置。 
force:是否强制覆盖,默认为yes 
– owner:目标文件属主 
– group:目标文件属组 
– mode:目标文件的权限模式,模式可以被指定为符号模式(例如,u + rwx或u = rw,g = r,o = r)

案例:把/templates/foo.j2文件经过填写参数后,复制到远程节点的/etc/file.conf,设置文件权限
Ansible常用模块的用法
Ansible常用模块的用法

copy模块

用于将文件复制到远程主机,同时支持给定内容生成文件和修改权限等。

常见参数:

– src:要复制到远程主机的文件在本地的地址,可以是绝对路径,也可以是相对路径。如果路径是一个目录,它将递归复制。在这种情况下,如果路径使用”/”来结尾,则只复制目录里的内容,如果没有使用”/”来结尾,则包含目录在内的整个内容全部复制,类似于rsync。        
– content:用于替代”src”,可以直接设定指定文件的值 
– dest:必选项。要将源文件复制到的远程主机的绝对路径,如果源文件是一个目录,那么该路径也必须是个目录 
– directory_mode:递归的设定目录的权限,默认为系统默认权限 
– force:如果目标主机包含该文件,但内容不同,如果设置为yes,则强制覆盖,如果为no,则只有当目标主机的目标位置不存在该文件时,才复制。默认为yes 
– others:所有的file模块里的选项都可以在这里使用

Ansible常用模块的用法

user模块、group模块

1.user模块

该模块主要是用来管理用户账号
 ansible-doc -s user
ansible all -m user -a 'name=test' #创建用户

Ansible常用模块的用法
Ansible常用模块的用法
2.group模块

该模块主要用于添加或删除组
ansible mysql -m group -a 'name=mysql gid=330 system=yes'
ansible mysql -a 'tail /etc/group'

Ansible常用模块的用法
Ansible常用模块的用法

ansible mysql -m user -a 'name=test02 uid=330 group=mysql system=yes' 
#新建用户test02;设定UID=306;将test02添加到mysql组
ansible mysql -a 'id test02'

Ansible常用模块的用法
Ansible常用模块的用法

service模块

该模块用于服务程序的管理。
ansible-doc -s service
ansible webserver -m service -a 'name=httpd enabled=true state=started'
#开启httpd服务 ; enabled:开机自启动
ansible webserver -m service -a 'name=httpd enabled=true      state=stopped' #关闭httpd服务

get_url模块

该模块主要用于从http、ftp、https服务器上下载文件(类似于wget),主要有如下选项:

– sha256sum:下载完成后进行sha256 check; 
– timeout:下载超时时间,默认10s 
– url:下载的URL 
– url_password、url_username:主要用于需要用户名密码进行验证的情况 
– dest:将文件下载到哪里的绝对路径。如果dest是目录,则使用服务器提供的文件名,或者如果没有提供,将使用远程服务器上的URL的基本名称。 
– headers:以格式“key:value,key:value”为请求添加自定义HTTP标头。

案例:将http://nginx.org/download/nginx-1.6.3.tar.gz文件下载到指定节点的/tmp 目录下
Ansible常用模块的用法
Ansible常用模块的用法

fetch模块

它用于从远程机器获取文件,并将其本地存储在由主机名组织的文件树中。

– src:远程系统上要获取的文件。 这必须是一个文件,而不是一个目录。 后续版本可能会支持递归提取。 
– dest:保存文件的目录。 例如,如果dest目录是/backup,在主机host.example.com上命名为/ etc/profile的src文件将被保存到/backup/host.example.com/etc/profile。 
– flat:允许您覆盖将目标文件添加到主机名/ path / to / file的默认行为。

案例:ansible webservers -m fetch -a "src=/etc/fstab dest=/root/"
将webservers组中所有主机的/etc/fstab文件拉取到本地
Ansible常用模块的用法

file模块

该模块主要用于设置文件的属性,比如创建文件、创建链接文件、删除文件等。

ansible-doc -s file
touch /opt/file.txt
ansible mysql -m file -a 'path=/opt/file.txt owner=test02     group=mysql mode=666'
#对test文件设置属主、属组、权限

在被管理主机上创建/root/file.txt
Ansible常用模块的用法

unarchive模块

用于解压文件,模块包含如下选项:

– copy:在解压文件之前,是否先将文件复制到远程主机,默认为yes。若为no,则要求目标主机上压缩包必须存在。 
– creates:指定一个文件名,当该文件存在时,则解压指令不执行 
– dest:远程主机上的一个路径,即文件解压的绝对路径。 
– group:解压后的目录或文件的属组 
– list_files:如果为yes,则会列出压缩包里的文件,默认为no,2.0版本新增的选项 
– mode:解压后文件的权限 
– src:如果copy为yes,则需要指定压缩文件的源路径 
– owner:解压后文件或目录的属主

案例:将主机上的tomcat安装包传到被控制管理主机的/usr/local下解压
Ansible常用模块的用法

command模块、shell模块

1.command模块
这个模块可以直接在远程主机上执行命令,并将结果返回本主机。注意,该命令不支持 | 管道命令

命令:ansible [主机] [-m 模块] [-a args]
ansible-doc -l #列出所有安装模块(q退出)
ansible-doc -s yum #列出yum模块描述信息和操作动作
ansible all -m command -a 'date' #查询date
ansible all -a 'ls /' #如果不加-m模块,默认运行command模块

Ansible常用模块的用法
Ansible常用模块的用法
2.shell模块
shell模块可以在远程主机上调用shell解释器运行命令,支持shell的各种功能,例如管道等

ansible-doc -s shell
ansible webserver -m user -a 'name=jerry'
ansible webserver -m shell -a 'echo abc123 | passwd --stdin jerry' 
#创建用户,免交互设置密码

Ansible常用模块的用法
Ansible常用模块的用法

setup模块

该模块主要用于收集信息,是通过调用facts组件来实现的。

facts组件是Ansible用于采集被管机器设备信息的一个功能,我们可以使用setup模块查机器的所有facts信息,可以使用filter来查看指定信息。整个facts信息被包装在一个JSON格式的数据结构中,ansible_facts是最上层的值。
ansible-doc -s setup
ansible mysql -m setup #查看mysql服务器上所有信息

Ansible常用模块的用法

script模块

该模块用于将本机的脚本在被管理端的机器上运行

在自己服务器设置脚本,其他服务器去执行
ansible-doc -s script
#!/bin/bash
echo "this is test script" > /opt/script.txt
chmod 666 /opt/script.txt #设置权限
chmod +x shell.sh #为脚本添加执行权限
ansible all -m script -a 'shell.sh'

Ansible常用模块的用法

cron模块

该模块适用于管理cron计划任务的。

两种状态(state):present表示添加        absent 表示移除
ansible-doc -s cron                      #查看cron模块信息
ansible all -m cron -a 'minute="*/1" job="/usr/bin/echo heihei >> /opt/test.txt" name="test cron"'          
#-a: 指定添加参数     */1:每分钟执行      job:执行内容

Ansible常用模块的用法

ansible mysql -a 'crontab -l'        #查看crontab信息

Ansible常用模块的用法

ansible mysql -m cron -a 'name="test cron" state=absent'(删除)

Ansible常用模块的用法
再次查看信息删除成功
Ansible常用模块的用法

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值