hti 发表于 2018-7-29 07:01:46

Ansible常用命令

前言

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


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

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

  
192.168.200.135
  
node2
  

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

未分组的主机
  我们需要将主机列表放在元素之上即可,示例:
  

node1  
node2
  

  
192.168.200.135
  
node2
  

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

主机名通配
  

www.example.com   #匹配www001.example.com 到 www009.example.com  
192.168.200.13      #匹配192.168.200.136 到192.168.200.139
  

二. ansible-doc的使用
  ansible没有任何功能,所用的功能都由对应的模块实现,ansible-doc命令列出可用的模块以及模块使用的方法
  基本语法格式:
  ansible-doc [-l] [-s]
  options说明:
  

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

  示例:



三. ansible的使用

1. ansible使用语法格式
  __ansible < host-pattern > [-m module_name] [-a args]__
  < host-pattern> : 尖括号表示不可省


[*]在资产文件中的组名
[*]资产文件中的IP或主机名
[*]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
  


[*]创建连接文件




[*]创建 目录



[*]删除文件

  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重新加载配置文件,注意如果服务没有起来会启动服务。
  

  示例:

页: [1]
查看完整版本: Ansible常用命令