Day2-上午-Part1: 常用模块:[ping,authorized_keys,file,copy,yum,service,cron,group,user]

  • 2020-03-20
  • 164
  • 0

ansible常用模块Part1


一.ping模块

  • 测试主机是否是通的,用法很简单,不涉及参数:

二.authorized_keys模块

  • 用于向被控端推送公钥,通常用于在ansible第一次连接被控端时向其推送ansible主控端的管理公钥。
  • 常用选项:
    • user: 指定将公钥推送给被控端的哪个用户
    • key:指定被推送的公钥的内容
    • path:默认情况下,会将公钥推送至被控端用户家目录的.ssh/authorized_keys文件中,可通过该配置项自定义该路径
    • state:是推送还是删除,present|absent

  • 上例中的用法是-a使用单引号,中间内部变量全部都是双引号
  • 还可以使用另一种用法就是-a使用双引号,中间内部变量全部都是单引号

ansible 172.26.0.115 -m authorized_key -a "user=’root’ key='{{ lookup(‘file’,’/root/.ssh/id_rsa.pub’)}}’"

三.file模块

  • file模块主要用于远程主机上的文件操作,
  • 常用选项:
    • force:需要在两种情况下强制创建软链接,一种是源文件不存在但之后会建立的情况下;另一种是目标软链接已存在,需要先取消之前的软链,然后创建新的软链,有两个选项:yes|no
    • group:定义文件/目录的属组
    • mode:定义文件/目录的权限,参数传递必须带引号,比如\’mode: 644\’
    • owner:定义文件/目录的属主
    • path:必选项,定义文件/目录的路径[注意是文件/目录的路径,如果是目录,那就是一个目录,如果是文件,那就是文件的路径+文件名]
    • src:要被链接的源文件的路径,只应用于state=link的情况
    • dest:被链接到的路径,只应用于state=link的情况
    • state:
      • directory:如果目录不存在,创建目录
      • file:即使文件不存在,也不会被创建(想要创建文件,用touch),而是返回状态.[默认值]
      • link:创建软链接
      • hard:创建硬链接
      • touch:如果文件不存在,则会创建一个新的文件,如果文件或目录已存在,则更新其最后修改时间
      • absent:删除目录、文件或者取消链接文件

四.copy模块

  • 复制文件到远程主机,copy模块包含
  • 包含选项:
    • backup:如果dest所代表的的目标文件已经存在,在覆盖之前将原文件备份,备份文件包含时间信息。有两个选项:yes|no,[默认是no]
    • content:用于替代src,可以直接设定指定文件的内容(sets the contents of a file directly to the specified value.)
    • dest:必选项。要将源文件复制到的远程主机的绝对路径,如果源文件是一个目录,那么该路径也必须是个目录
    • force:如果目标主机包含该文件,但内容不同,如果设置为yes,则强制覆盖,如果为no,则只有当目标主机的目标位置不存在该文件时,才复制。[默认为yes]
    • others:所有的file模块里的相关文件属性选项都可以在这里使用
    • src:要复制到远程主机的文件在本地的地址,可以是绝对路径,也可以是相对路径。如果路径是一个目录,它将递归复制。在这种情况下,如果路径使用/来结尾,则只复制目录里的内容,如果没有使用/来结尾,则包含目录在内的整个内容全部复制,类似于rsync。
    • validate: validate参数接需要验证的命令。一般需要验证拷贝后的文件,所以%s可以指代拷贝后的文件。当copy module中加入了validate参数,不仅需要成功拷贝文件,还需要validate命令返回成功的状态,整个module的执行状态才是成功。
    • mode:定义文件/目录的权限,参数传递必须带引号,比如\’mode: 644\’

五.yum模块

  • 使用yum包管理器来管理软件包,其
  • 选项有:
    • name:要进行操作的软件包的名字,也可以传递一个url或者一个本地的rpm包的路径
    • disable_gpg_check参数:用于禁用对rpm包的公钥gpg验证,默认值为no,表示不禁用验证,设置为yes表示禁用验证,即不验证包,直接安装,在对应的yum源没有开启gpg验证的情况下,需要将此参数的值设置为yes,否则会报错而无法进行安装。
    • enablerepo参数:用于指定安装软件包时临时启用的yum源,假如你想要从A源中安装软件,但是你不确定A源是否启用了,你可以在安装软件包时将此参数的值设置为yes,即使A源的设置是未启用,也可以在安装软件包时临时启用A源。
    • disablerepo参数:用于指定安装软件包时临时禁用的yum源,某些场景下需要此参数,比如,当多个yum源中同时存在要安装的软件包时,你可以使用此参数临时禁用某个源,这样设置后,在安装软件包时则不会从对应的源中选择安装包。
    • state:状态,可选项如下:
      • absent 或 removed: 这俩选项都是删除软件包(absent and removed will remove the specified package)
      • installed 或 present: 这俩选项都是安装软件包(present and installed will simply ensure that a desired package is installed)
      • latest: 这个选项是更新软件包(latest will update the specified package if it\’s not of the latest available version).
      • None: 默认是None,但是实际情况下是等效于present(present Default is None, however in effect the default action is present unless the autoremove option is enabled for this module, then absent is inferred).

  • name后边可以跟:
    • 软件包的名字
    • @+软件group的名字
    • URL用来远程下载

六.service模块

  • 用于管理服务
  • 该模块包含如下选项:
    • arguments:给命令行提供一些选项
    • enabled:是否开机启动 yes|no
    • name:必选项,服务名称
    • pattern:定义一个模式,如果通过status指令来查看服务的状态时,没有响应,就会通过ps指令在进程中根据该模式进行查找,如果匹配到,则认为该服务依然在运行
    • runlevel:运行级别
    • sleep:如果执行了restarted,在则stop和start之间沉睡几秒钟
    • state:对当前服务执行启动,停止、重启、重新加载等操作(started,stopped,restarted,reloaded)
    • daemon_reload:针对使用systemd的系统,重新加载systemd配置,yes/no[没有找到这个选项]

七.systemd模块

  • daemon_reload:当服务配置文件发生变更时重载服务
  • name:指定服务名称
  • enabled:是否设置开机自启
  • state:管理服务状态,reloaded|restarted|started|stopped[started/stopped are idempotent actions that will not run commands unless necessary. restarted will always bounce the service. reloaded will always reload.]

八.cron模块

  • 用于管理计划任务
  • 包含如下选项:
    • backup:对远程主机上的原任务计划内容修改之前做备份[默认是no]
    • cron_file:如果指定该选项,则用该文件替换远程主机上的cron.d目录下的用户的任务计划
    • day:日(1-31,,/2,……)
    • hour:小时(0-23,,/2,……)
    • minute:分钟(0-59,,/2,……)
    • month:月(1-12,,/2,……)
    • weekday:周(0-7,*,……)
    • job:要执行的任务,依赖于state=present
    • name:该任务的描述
    • special_time:指定什么时候执行,参数:reboot,yearly,annually,monthly,weekly,daily,hourly
    • state:确认该任务计划是创建还是删除,可选参数(absent|present),[默认值是present]
    • user:以哪个用户的身份执行

  • 这里的ad-hoc都是最外层是单引号,里边必要时全部都用双引号

九.group模块

  • gid:指定组id
  • name:指定组名
  • state:创建还是删除组,选项:present|absent[默认present]
  • system:是否将该组创建为系统组,[默认为no]

十.user模块

  • user模块是请求的是useradd, userdel, usermod三个指令
    • home:指定用户的家目录,需要与createhome配合使用
    • groups:指定用户的附加组
    • group:指定用户属组
    • uid:指定用的uid
    • password:指定用户的密码,需要说明的是,在指定password参数时,不能使用明文密码,因为后面这一串密码会被直接传送到被管理主机的/etc/shadow文件中,所以需要先将密码字符串进行加密处理()。然后将得到的字符串放到password中即可

  • name:指定用户名
  • createhome:是否创建家目录 yes|no
  • system:是否为系统用户
  • comment:定义用户描述信息
  • remove:当state=absent时,remove=yes则表示连同家目录一起删除,等价于userdel -r
  • state:是创建还是删除
  • shell:指定用户的shell环境
  • generate_ssh_key: 给用户生成ssh key,与之关联的还有两个参数是ssh_key_bits和ssh_key_file

评论

还没有任何评论,你来说两句吧

津公网安备 12010302001147号 津ICP备18003766号