2019-04-24day39Ansible模块基础

Ansible认证:

2019-04-24day39Ansible模块基础_第1张图片


2019-04-24day39Ansible模块基础_第2张图片

实践:


2019-04-24day39Ansible模块基础_第3张图片

ansible服务器越多,价值越大,

要执行脚本,远程的机器上必须要有脚本


2019-04-24day39Ansible模块基础_第4张图片

ansible-doc -l   查看Linux下所有模块的命令,

ansible-doc -s 模块名

shell模块功能说明:

执行一个命令在远程节点上

参数说明:

选项参                                   数选项说明

chdir                                     在执行命令之前,通过cd命令进入到指定目录中

creates                                 定义一个文件是否存在,如果不存在,则运行相应的命令;如果存跳过次步骤

free——form(必有参数)   参数信息中可以输入任何系统命令信息,实现远程管理

removes                               定义一个文件是否存在,如果存在,则运行相应的命令;如果不存在跳过此步骤

说明:shell模块为基本命令模块,可以执行脚本文件,当相应脚本文件需要存在于远程主机节点上,并且shell模块不收变量类似$HOME和参数类似”<”,”>”,”|”,”,”,”;”,”&”

copy模块功能说明:复制文件到远程主机

参数:

选项参数                                选项说明

src                              本地路径文件复制到远程服务器;可以是绝对路径也可以是相对路径

                                   如果路径是一个目录,将湖递归复制,

                                   在这种情况下,如果路径以”/”结束,只将在该目录的内容复制到目的地

                                   否则,如果它不以”/”结束,目录和目录下所有内容都会被复制

                                    以上这种复制方式类似于rsync

dest(必有参数)        文件应该被拷贝到的远程绝对路径信息。

                                     如果src是一个目录,dest也必须是目录

owner                           定义所拥有文件/目录的所属用户名称,类似chown命令功能

group                            定义所拥有文件/目录的所属组名称,类似chown命令功能

mode                             定义文件或目录的权限信息

                                      就像使用/usr/bin/chmod   设定八进制(如 0644)权限一样,取消掉前导零可能会有意想不到的结果。

                                      作为1.8版本,可以指定为符号模式(如u+rwx or  u=w, g=r,o=r)

backup                           件备份文件并且包含时间戳信息,以便能够还原回文件,在某种情况源文件被覆盖错误时。

                                         默认配置为no,并且配置指定信息为yes|no

content                             当使用代替src参数时,将文件的内容直接设置位指定值,远端创建有指定内容文件,并且只能设置简单值。

                                         对于任何复杂或者有格式化的内容,请切换到template模块

force                                 默认为yes,当远程文件内容和源文件内容不同时,将覆盖目录文件

                                         默认为no,文件将只被传输,在目标主机不存在此文件时

                                          别名thirsty

remote_src                        如果为False,将搜索源信息在本地/管理及机器上

                                           如果为True,将到远程/目标主机的机器上搜索

                                            默认为false,目前remote_src不支持递归拷贝

说明:copy模块是远程推送数据模块,只能将数据推送到远程主机上,不能实现拉取数据到本地管理主机。

批量分发host需求:

ansible oldboy  -m  copy  -a  “src=/etc/hosts  dest=/etc/hosts  mode=0644 owner=root  group=root  backup=yes”


script模块:远程节点上运行本地脚本。

file模块参数:

设置文件属性:

选项参数                                选项说明

src                                         要链接的文件路径(只能应用 state=link),创建链接文件时使用

path(必有参数)                  文件路径管理:别名方式:dest,name

owner                                     定义所拥有文件/目录的所属用户名称,类似chown命令功能

group                                      定义所拥有文件/目录的所属组名称,类似chown命令功能

mode                                      定义文件或目录的权限信息;

                                        就像使用/usr/bin/chmod   设定八进制(如 0644)权限一样,取消掉前导零可能会有意想不到的结果。

                                         作为1.8版本,可以指定为符号模式(如u+rwx or  u=w, g=r,o=r)

                                          state如果指定参数为directory

                                        #所有不存在的子目录将会被创建,并且从1.7开始支持设置目录权限

                                             如果指定参数为file

                                         #如果文件不存在将不能被创建,如果想创建可以参考copy和template模块

                                      如果指定参数为link

                                       #符号链接将被创建或更改

                                         如果指定参数为hard

                                          #便会创建出硬链接

                                          如果指定参数为absent

                                           #目录将被递归删除以及文件,而链接将被取消链接。

                                           #请注意,定义文件不存在会失败,知识输出没有发生任何改变的结构

                                               如果指定参数为touch

                                               #如果路径不存在将创建一个空文件,如果文件或目录存在将接受更新的文件访问和修改时间(类似                                                              于”touch ”从命令行工作的方式)

说明:file模块主要用于创建文件或目录数据,以及多存在的文件或目录权限属性进行修改管理。

recurse=yes

递归创建

 file模块功能说明:

功能说明:设置文件属性官方链接:http://docs.ansible.com/ansible/latest/file_module.html

================================================================

替代方案:

ansible oldboy  -m command -a "chmod 777 /etc/hosts warn=false"

ansible oldboy  -m command -a "chmod 644 /etc/hosts warn=false"

ansible oldboy  -m command -a "chown oldboy /etc/hosts warn=false"

ansible oldboy  -m command -a "chown root /etc/hosts warn=false"

创建目录:mkdir /tmp/oldboy_dir

ansible oldboy -m file -a "dest=/tmp/oldboy_dir state=directory"

递归设置权限:

ansible oldboy -m file -a "dest=/tmp/oldboy_dir state=directory mode=644 recurse=yes"

创建文件:touch /tmp/oldboy_file

ansible oldboy -m file -a "dest=/tmp/oldboy_file state=touch"

删除文件:rm -f /tmp/oldboy_file

ansible oldboy -m file -a "dest=/tmp/oldboy_file state=absent"

创建链接文件:ln -s /etc/hosts /tmp/link_file

ansible oldboy -m file -a "src=/etc/hosts dest=/tmp/link_file state=link"

ansible oldboy -m file -a "dest=/tmp/oldboy_file state=touch owner=oldboy group=oldboy mode=000"

ansible oldboy -m file -a "dest=/tmp/oldboy_file state=touch owner=oldboy group=oldboy mode=ugo=rwx"

yum包管理模块:

选项参数                  选项说明

name                      需要安装的软件包名称信息,或包的版本标识信息

state                       是否安装(present or installed latest),或者移除(absent  or  removed)一个包

说明:yum模块的参数功能很多,但日常工作中主要用到就是以上两个模块参数

service 模块功能说明:

选项参数                          选项说明

name                                定义所要管理的服务名称

enable                             确认是否徐彤启动时运维指定的服务,对于state或enable参数在管理服务时至少需要一个

                                        statestated/stopped

                                       以上两个参数属于服务激活操作命令,除非必要,否则不用经常运行这两个参数

                                        restarted

                                        重启操作将是始终支持的服务

                                         reloaded

                                        表示进行平滑重启

systemd模块功能说明:

定时任模块参数:

模块参数                      模块描述

minute                         Minute when  the  job  should  run

                                   运行job任务的分钟时间信息

hour                             Hour when the job should  run

                                   运行job任务的小时时间信息

day                             Day of the month the jobshouldrun

                                   运行job任务的日期时间信息

month                       Month of the week that the job should run

                                   运行job任务的星期时间信息

job                               The command to execute  or, if env is set,the value of environment variable。

                                    Required if state=present。

                                   执行的命令如果env被社会,将作为环境变量的值,但前提是

                                      state=present

                                 定时任务索要完成的操作

注释定时任务用disabled=yes

常用模块                                 模块说明

command(重要模块)           执行命令模块,ansible命令执行默认模块

shell(重要模块)                    执行shell脚本模块

script(重要模块)                   把脚本发到客户端,然后执行;执行脚本命令在远程服务器上

copy(重要模块)                     把本地文件发送到远端

file                                             设定文件属性模块

service                                     系 统服务管理模块(CentOS6)

systemd                                    系统服务管理模块(CentOS7)

cron                                           计划任务管理模块

yum                                            yum软件包安装管理模块

你可能感兴趣的:(2019-04-24day39Ansible模块基础)