构建Jetty部署yml
新建一个ansibledeployjetty.yml文件,增加以下脚本:
说明
- hosts #对应host中主机内容
- vars #定义变量区域
- 删除ROOT文件夹 使用file: state:absent,好处防止错误删除文件。
- 使用unarchive命令,copy:yes直接拷贝本地文件到远程,并且解压缩后删除文件。
- action: shell 启动jetty服务。
启动部署脚本
|
|
jetty 启动脚本start.sh
|
|
常见模块说明
File模块
功能:用于设置文件属性
- name: 设置文件属性
action: file
force # 需要在两种情况下强制创建软连接,一种是源文件不存在但之后会建立的情况下;另一种是目标连接已存在,需要先取消之前的软连接,有两个选项:yes|no
group # 设置文件或目录的属组
mode # 设置文件或目录的权限
owner # 设置文件或目录的属主
path # 必选项,定义文件或目录的路径
recurse # 递归设置文件的属性,只对目录有效
src # 要被链接到的路径,只应用与state=link的情况
state # directory:如果目录不存在,创建目录;file:即使文件不存在,也不会被创建;link:创建软连接;hard:创建硬连接;touch:如果文件不存在,则会创建一个新的文件,如果文件或目录已存在,则更新其最后修改时间;absent:删除目录、文件或者取消链接文件
Command模块
功能:命令模块,默认模块,用于在远程主机执行命令,缺点:运行的命令中无法使用变量,管道。
- name: 在远程节点执行命令
action #command
chdir #在执行命令之前,先切换到该目录
creates #一个文件名,当这个文件存在,则该命令不执行
executable #切换shell来执行命令,需要使用命令的绝对路径
free_form #要执行的Linux指令,一般使用Ansible的-a参数代替。
removes #一个文件名,这个文件不存在,则该命令不执行
unarchive模块
功能:用于解压文件,模块包含如下选项:
copy #在解压文件之前,是否先将文件复制到远程主机,默认为yes。若为no,则要求目标主机上压缩包必须存在。
creates #指定一个文件名,当该文件存在时,则解压指令不执行
dest #远程主机上的一个路径,即文件解压的路径
grop #解压后的目录或文件的属组
list_files #如果为yes,则会列出压缩包里的文件,默认为no,2.0版本新增的选项
mode #解决后文件的权限
src #如果copy为yes,则需要指定压缩文件的源路径
owner #解压后文件或目录的属主