虚拟化专栏2_ansible模块的使用

ping模块

ping模块用来检查目标主机是否在线

ansible 主机名 -m ping 

前提是ssh免密钥配置成功

yum

yum模块用来安装软件,服务等,使用命令安装软件包

  • 选项
    name: 安装包的名字
    state:
    ----latest 安装最新版
    ----present 默认安装
    ----installed 安装
    ----absent 卸载
    ----removed 卸载两种方式卸载。
  • 示例
    ansible websvs -m yum -a 'name=httpd state=latest'

service

service模块用来管理centos上的服务的启动、关闭、重启和重载

  • 选项
    name:服务、软件名字
    state:
    ----latest 安装最新版
    ----present 默认安装
    ----installed 安装
    ----absent 卸载
    ----removed 卸载两种方式卸载。
    enabled:设置开机自启,默认为no
  • 示例
    ansible websvs -m service -a 'name=httpd state=started enabled=yes'

command

用来执行Linux命令,但是相对于shell模块来说,command模块不支持特殊的正则表达,如 | 、&& 等。

  • 示例
ansible websvs -m command -a 'echo 111'

shell

shell模块同样也是执行Linux系统命令的模块,shell可支持正则表达,特殊符号等。

ansible websvs -m shell -a 'cd /opt/ && touch index.html'

copy

copy模快用来复制文件到远程主机,copy具有覆盖作用。

  • 选项
    src:文件在ansible主机上的相对路径或绝对路径
    dest:复制到远程主机上的位置
    backup:是否远程主机上的同名文件进行备份,默认为no
    mode:对文件授权
    directory_mode:递归设定目录的权限

  • 例子

ansible websvs -m copy -a 'src=控制主机上文件的路径 dest=远程主机上文件的路径 backup=yes'

unarchive

unarchive模块用来将ansible主机上的软件包解压到远程主机上。确保远程主机上已经安装了unzip。

  • 选项
    copy: 在解压文件之前,是否先将文件复制到远程主机,默认为yes。若为no,必须确保目标主机上压缩包必须存在。
    creates:指定一个文件名,当文件存在时,则解压指令不执行。
    src: 如果copy为yes,则需要指定ansible主机上压缩文件的源路径。
    dest:远程主机上文件的解压路径。
    group:解压后文件或者目录的属组。
    owner:解压后文件或者目录的属主。
    mode:解压后文件的权限。
  • 例子
ansible websvs -m unarchive -a src='ansible主机上压缩包的绝对路径 dest=远程主机文件存储位置的绝对路径 group=www owner=www mode=777'

setup

setup 模块用于收集远程主机的一些基本信息。

  • 选项
    setup:用于远程主机的一些基本信息。
    ----filter:用于进行条件过滤,如果设定,则仅返回过滤条件的信息。常用的过滤关键词有:
    ——ansible_all_ipv4_addresses:仅显示ipv4的信息
    ——ansible_devices:仅显示磁盘设备信息
    ——ansible_distribution:显示是什么系统,例:centos,suse等
    ——ansible_distribution_major_version:显示是系统主版本
    ——ansible_distribution_version:仅显示系统版本
    ——ansible_machine:显示系统类型,例:32位,还是64位
    ——ansible_eth0:仅显示eth0的信息
    ——ansible_hostname:仅显示主机名
    ——ansible_kernel:仅显示内核版本
    ——ansible_lvm:显示lvm相关信息
    ——ansible_memtotal_mb:显示系统总内存
    ——ansible_memfree_mb:显示可用系统内存
    ——ansible_memory_mb:详细显示内存情况
    ——ansible_swaptotal_mb:显示总的swap内存
    ——ansible_swapfree_mb:显示swap内存的可用内存
    ——ansible_mounts:显示系统磁盘挂载情况
    ——ansible_processor:显示cpu个数(具体显示每个cpu的型号)
    ——ansible_processor_vcpus:显示cpu个数(只显示总的个数)
    ——ansible_python_version:显示python版本

  • 例子:获取远程目标主机的主机名

ansible websvs -m setup -a 'filter=ansible_hostname'

get_url

get_url模块主要用于从http、ftp、https服务器上下载文件(类似于wget功能)

  • 选项
    url:指定要下载的文件的URL地址。

  • 例子:在远程主机上下载nginx安装包

ansible webservers -m get_url -a ‘url= http://nginx.org/download/nginx-1.15.7.tar.gz  dest=/root/

file

file模块是用来创建文件、目录、链接文件

  • 选项
    group: 定义文件/目录的数字
    mode: 定义文件/目录的权限
    owner:定义文件/目录的属主
    path:必选项,定义文件/目录的路径
    rescure: 递归设置文件的属性,仅对目录有效
    src: 要被链接的文件的路径,只用于state=link或者hard的情况,创建链接文件时用到
    dest: 被链接到的路径,是用于state=link或者hard的情况,创建链接文件时用到
    state:
    ---- directory:如果目录不存在,则创建目录
    ---- file:即时文件不存在,也不会被创建
    ---- link:创建软链接
    ---- hard: 创建硬链接
    ---- touch: 如果文件不存在,则会创建一个新的文件,如果文件或目录存在,则更新其最后修改时间。
    ---- absent:删除目录、文件或者取消链接文件

  • 示例
    使用file模块创建目录

ansible websvs -m file path=/root/hello state=directory
使用file模块创建文件
ansible websvs -m file -a 'path=/root/hello/world.txt state=touch'
使用file模块创建软链接
ansible websvs -m file -a 'src=/root/hello/world.txt dest=/root/world.txt state=link'
使用file模块创建硬链接
ansible websvs -m file -a 'src=/root/hello/world.txt dest=/root/world.txt state=hard'

user

usr模块用来创建用户

  • 选项
    home:指定用户的家目录
    groups:指定用户组
    uid: 指定UID
    password:设置密码,密码必须是秘文 Openssl passwd
    name: 创建用户的名字
    createhome: 是否创建家目录(yes/no)
    state: 是创建还是删除(present、absent)默认是创建
    shell: 指定用户登录的shell环境
    remove: 删除用户家目录,默认为no,设置为yes即可(state=absent并且remove=yes即为删除用户and家目录)
  • 示例
    使用openssl生成秘文后使用user创建用户
openssl passwd
ansible websvs -m user -a 'name=hello password=xxxx'

验证登录

ssh root@websvs主机的ip 

删除用户,remove默认为no,如果不设置为yes的话就在远程主机/home下存在此用户

ansible websvs -m user -a 'name=hello state=absent remove=yes'

group

group模块用来创建用户组

  • 选项
    gid:指定用户的gid
    name: 指定用户名
    state:创建还是删除,prensent、absent

synchronize

使用rsync同步文件,将主控方目录推送到指定节点的目录下,使用此模块需要先安装rsync

  • 选项
    delete: 删除ansible主机上不存在但是远程主机上存在的多余文件,保持远程主机上的文件与ansible主机上的文件一致。
    src:要与远程主机同步的源主机路径,如果路径使用"/"结尾,则只复制目录里面的内容,如果没有使用“/”来结尾,则包含目录在内的整个文件全部被复制。
    dest: 目标主机上要和源主机同步的路径。
    dest_port:默认目标主机上的端口为22,因为ansible是通过ssh通信的。
    mode: push或者pull,默认是push,即从ansible本机向远程主机上传送文件,pull模式用来从远程主机上取文件。
    rsync_opts:通过传递数组来指定其他rsync选项。
  • 示例
    同步ansible主机和远程主机的文件,将远程主机上与ansible主机上不一致的文件删除,增加远程主机上没有的文件。
ansible websvs -m synchronize -a 'src=/root/hello dest=/root/ delete=yes'

fetch

fetch模块用于从远程主机上获取文件,并将其本地存储在有主机名组织的文件树中。

  • fetch
    src:远程主机上要获取的文件,必须是一个文件,而不是一个目录。
    dest: 保存文件的ansible主机目录。
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值