roles的结构

创建roles的步骤:

1,创建以roles命名的目录,

2,在roles目录中分别创建以各角色名称命名的目录,如webservers等,

3,在每个角色命名的目录中分别创建files、handlers、meta、tasks、templates和vars等目录,用不到的目录可以创建为空目录,也可以不创建,

4,在playbook文件中,调用各角色。

ansible创建数据库主主 ansible创建文件夹_文件复制

 

roles中各目录应当包含的文件:

tasks目录:至少创建一个名为main.yml的文件,其定义了此角色的任务列表,此文件可以使用include包含其他的位于此目录中的tasks文件。

files目录:存放由copy或者script等模块调用的文件。

templates目录:templates模块会自动在此目录中寻找Jinjia2模板文件。

handlers目录:此目录中包含一个main。

yml文件:用于定义此角色用到的各handler,在handler中使用include包含的其他的handler文件也应该位于此目录中。

vars目录:包含一个main.yml文件,用于定义此角色用到的变量。

meta目录:包含一个main.yml文件,用于定义此角色的特殊设定及其依赖关系。

default目录:为当前角色定义默认变量时使用此目录,包含一个main.yml文件。

 

 

 

playbooks的常用模块及参数

command模块:运行命令

shell模块:运行命令

hostname模块:管理主机名

user模块:管理用户账号

yum模块:程序包

service模块(name,state,enabled):管理linux系统中的服务,

copy模块:将文件从本地或者远程服务器拷贝到远程服务器上的某一个位置,也可以从本地的某一个文件夹拷贝到另外一个文件夹,

fetch模块:可以将远程位置的文件复制到本地,

cron模块:管理计划任务进程,

file模块:管理文件属性,

blockinfile模块:该模块将插入/更新/删除由自定义标记线包围的多行文本块,

pause模块(minutes,seconds):暂停一定时间或者提示用户进行某些操作,

assemble模块(src,dest,group,owner,mode):将多个零散的文件合并成一个大文件,

template模块(backup,force,src,dest,group,owner,mode):可以使用变量来接收远程主机上setup收集到的facts信息,针对不同配置的主机,定制配置文件,

setup模块:获取facts,

set_fact模块:自定义facts,可以通过template或者变量的方式在playbook中使用,

wait_for模块(host,port,path):等待某些操作完成以后再进行后续操作,

add_host模块(name,groups):动态的添加主机到主机组,

group_by模块:动态的创建主机组,

debug模块(msg):用于在调试中输出信息,

fail模块(msg):终止当前play的运行,