for d in `ls` ; do ; touch ${d}/main.yml ; done
这个文件应该包罗以下名称对应的内容:
tasks -包罗角色要执行的任务的紧张列表
handlers-包罗处置惩罚程序,此角色甚至该角色之外的任何地方都可以利用这些处置惩罚程序。
defaults-角色的默认变量。
vars-角色的其他变量,
files -包罗可以通过此角色摆设的文件
templates -包罗可以通过此角色摆设的模板。
meta -为此角色定义一些元数据
角色必须至少包罗这些目录之一,但是最好排除任何未利用的目录
role执行:
规则
1,利用兼容的python版本进行编写
2,碰到题目,主动抛出异常
3,返回以unicode编码的字符串,紧张是兼容JinJa2
4,符合ansible的设置和文档标准,可以通过ansible.cfg进行设置
开发mysql_plays插件
数据库预备:
create database if not exists ansible default charset utf8mb4 collate utf8mb4_general_ci;
create user 'ansible'@'%' identified with mysql_native_password by 'Aa!123456';
grant all on ansible.* to 'ansible'@'%';
mysql> create table if not exists playsresult(
-> id int auto_increment primary key,
-> user varchar(16) not null,
-> host varchar(32) not null,
-> category varchar(11) not null,
-> result text,
-> create_time datetime not null default current_timestamp
-> );
log_plays文档改写:
1.获取文档:按上述日记回调插件查看文档方法获取文档
2.进行改写,改option选项,通过异常判断pymsql还是MySQL库,定义mysql连接函数,定义execute_sql函数
3.改写完成保存到/root/.ansible/plugins/callback/目录下
ansible.cfg设置:
将插件写入白名单,并将ini写入
验证:
ansible-doc -t callback mysql_plays