roles的结构
创建roles的步骤:
1,创建以roles命名的目录,
2,在roles目录中分别创建以各角色名称命名的目录,如webservers等,
3,在每个角色命名的目录中分别创建files、handlers、meta、tasks、templates和vars等目录,用不到的目录可以创建为空目录,也可以不创建,
4,在playbook文件中,调用各角色。
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的运行,