Ansible常用命令

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Ansible常用命令相关的知识,希望对你有一定的参考价值。

前言

Ansible命令行工具会向指定的主机通过ssh连接发送命令。这些主机在ansible中被称为资产inventory,接下来我们会介绍inventory的配置方式

一. Inventory 配置

资产配置可以使用可以使用IP或主机名,资产配置文件为 /etc/ansible/hosts

分组

将同一个类别的主机放入一个组中,使用[group_name]元素定义,示例如下:

[dbserver]
192.168.200.135
node2

注意:如果使用主机名,要求能够解析主机名,我们可以通/etc/hosts解析或则DNS解析

未分组的主机

我们需要将主机列表放在[group_name]元素之上即可,示例:

node1
node2
[dbserver]
192.168.200.135
node2

注意:主机可以在不同的组和未分组的主机列表中重复使用

主机名通配

www[001:009].example.com   #匹配www001.example.com 到 www009.example.com
192.168.200.13[6:9]        #匹配192.168.200.136 到192.168.200.139

二. ansible-doc的使用

ansible没有任何功能,所用的功能都由对应的模块实现,ansible-doc命令列出可用的模块以及模块使用的方法

基本语法格式:

ansible-doc [-l] [-s] [module...]

options说明:

-l 显示所有可用模块
-s 查看某一模块的参数

示例:

技术分享图片

技术分享图片

三. ansible的使用

1. ansible使用语法格式

__ansible < host-pattern > [-m module_name] [-a args]__

< host-pattern> : 尖括号表示不可省

  1. 在资产文件中的组名
  2. 资产文件中的IP或主机名
  3. all文件资产文件中的所有主机

[-m module_name] :中括号表示此选项可省,此参数为模块名

-a args :模块对应的参数,有些模块没有参数。

2. ansible中常用模块使用方法

ping:探测主机是否存活,无参数

技术分享图片

command : 远程执行命令,但不支持管道。它是默认命令可不指明模块
技术分享图片

技术分享图片

shell :远程执行命令,与command的不同在于可以使用管道

技术分享图片
cron :用于设置crontab

用法:
job   执行的命令
state 添加crontab还是删除,present(添加),absent(删除),默认是添加
name 设置crontab条目的名称
minute,hour,day,month 设置运行的时间

示例:

添加一个crontab条目

技术分享图片

到对应主机上查看crontab条目

技术分享图片

删除crontab条目

技术分享图片

copy : 拷贝文件到远程主机

用法
src :本地文件路径,可以是绝对和相对
dest= :不可省,如果src是目录,则dest也是目录。只能是绝对路径
group :指明文件属组
mode   :指明权限
owner :指明所有者
content :直接写出内容,并将其复制给远程主机

示例:

复制本地文件到远端主机

技术分享图片

技术分享图片

直接写出要复制到远端主机的内容

技术分享图片

file

用法
1. 创建链接文件
path=/PATH/TO/SOMEFILE src=/PATH/TO/SOMEFILE state=link
path指向的路径生成一个链接文件,链接文件指向src指向的路径。

2. 创建 目录
path=/PATH/TO/SOMEFILE state=directory

3. 删除文件
path=/PATH/TO/SOMEFILE state=absent
  1. 创建连接文件

技术分享图片

技术分享图片

  1. 创建 目录

技术分享图片

  1. 删除文件

技术分享图片

fetch :从远端主机获取文件

用法:
src=远端主机上的文件。
dest=保存文件的目录

示例:

技术分享图片

注意:获取的文件存放的路径为dest_dir/IP|address/src_file。

group:添加或删除组

用法:
gid :指明组ID
name:指明组名
state:创建或删除,present(创建,默认选项),absent(删除)
system:yes表明创建系统用户,默认是false

示例:

技术分享图片
user :管理用户账号

用法:
name= :用户的名称
uid :指明用户id号
state :present创建用户,absent删除用户
createhome :默认为yes,如果为no则不创建用户家目录
home :设置用户家目录
group :指明用户主组
groups : 指明用户附加组
password :用户加密后的值
shell : 设置用户使用的shell

示例:

技术分享图片

技术分享图片
yum:使用yum管理安装包

用法:
name= : 指明管理程序包包名
state :present,installed表示安装程序包,latest表明安装最新版本;absent和removed表示卸载安装包。默认是安装最新版本

示例:
技术分享图片

技术分享图片

技术分享图片

service : 管理服务

用法:
name= :管理服务的名称
enabled : 是否开机启动
state : started/stopped启动或停止服务;restart重启服务;reloaded重新加载配置文件,注意如果服务没有起来会启动服务。

示例:

技术分享图片

技术分享图片

以上是关于Ansible常用命令的主要内容,如果未能解决你的问题,请参考以下文章

ansible常用命令大全

Ansible自动化运维之ansible命令运行方式及常用参数和常用模块

Ansible概述及常用命令模块

Ansible概述及常用命令模块

Ansible Ad-Hoc 常用命令

ansible常用命令