ansible技术栈 一
#### Role角色
复习总结 Role角色
下载安装包
yum install -y tree #安装查看目录包
ansible一键创建role角色目录
ansible-galaxy init ~/ansible/roles/名称

ansible-role角色模板官方

下载role角色模板方法

ansible常用指令总结
1、ansible-playbook --syntax-check play.yml #检测yml文件语法2、ansible-playbook +文件 #执行文件语法3、ansible --version #查看版本4、ansible --help #看帮助5、rpm -qc ansible #查看配置文件6、ansible 组名 --list-hosts #查看组内主机列表:7、gather_facts: false #是否执行setup模块,搜集对方机器的信息8.ansible-doc -s fetch” #命令,查看一下fetch模块的用法9.ansible-playbook --check test.yml #模拟运行不会执行10.
ansible常用模块详解
1.远程复制备份模块:copy模块参数详解:src=:指定源文件路径dest=:目标地址(拷贝到哪里)owner:指定属主group:指定属组mode:指定权限,可以以数字指定比如0644backup:在覆盖之前将原文件备份,备份文件包含时间信息。有两个选项:yes|no2.软件包管理 yum模块ansible 组名 -m yum -a "name=httpd state=latest" -ostate= #状态是什么,干什么state=absent 用于remove安装包state=latest 表示最新的state=removed 表示卸载3.服务管理service模块1、ansible 组名 -m service -a "name=httpd state=started" #启动2、ansible 组名 -m service -a "name=httpd state=stopped" #停止3、ansible 组名 -m service -a "name=httpd state=restarted" #重启4、ansible 组名 -m service -a "name=httpd state=started enabled=yes" #开机启动5、ansible 组名 -m service -a "name=httpd state=started enabled=no" #开机关闭4.文件模块fileowner:修改属主group:修改属组mode:修改权限path=:要修改文件的路径recurse:递归的设置文件的属性,只对目录有效 yes:表示使用递归设置state:touch:创建一个新的空文件directory:创建一个新的目录,当目录存在时不会进行修改循环:迭代,需要重复执行的任务;对迭代项的引用,固定变量名为”item”,使用with_item属性给定要迭代的元素;handlers:由特定条件触发的Taskshandlers:处理器notify:触发器自定义vars_files变量变量调用语法:{{ var_name }}
查看Role角色 目录结构
tree + 目录名称 # 可以查看你的目录下面role角色用的哪个yml文件

Role角色目录的创建
roles为自带目录,如果不存在可以创建
步骤1;先创建目录 和目录下面的文件
[root roles]# mkdir -p nginx/{files,handlers,tasks,templates,vars}#创建role角色的外部目录[root@web1 roles]# touch site.yml#创建存放指定角色文件[root@web1 roles]# touch nginx/{handlers,tasks,vars}/main.yml#创建每一个目录下面的yml文件
Role角色目录及文件详解
目录顺序:role_name/ ---角色名称=目录files/:存储一些可以用copy调用的静态文件。tasks/: 存储任务的目录,此目录中至少应该有一个名为main.yml的文件,用于定义各task;其它的文件需要由main.yml进行“包含”调用;handlers/:此目录中至少应该有一个名为main.yml的文件,用于定义各handler;其它的文件需要由(与notify:名字相同,方便notify通知执行下一条命令)通过main.yml进行“包含”调用;vars/:此目录中至少应该有一个名为main.yml的文件,用于定义各variable;其它的文件需要由main.yml进行“包含”调用;templates/:存储由template模块调用的模板文本; (也可以调用变量)site.yml:定义哪个主机应用哪个角色
自己理解目录详解

Ansible Playbook运维常用命令
ansible-playbook // 查看帮助ansible-playbook a.yml --syntax-check //检查yaml文件的语法是否正确ansible-playbook a.yml --list-task //检查tasks任务ansible-playbook a.yml --list-hosts //检查生效的主机ansible-playbook a.yml --start-at-task='Copy Nginx.conf' //指定从某个task开始运行ansible-playbook --syntax-check -e "hosts=c7" xx.yml -s -k // 语法检查
排除某些主机
ansible-playbook -i hostslist ***.yml --limit 192.168.0.1 // 排除单个主机ansible-playbook -i hostslist ***.yml --limit @failed.txt // 排除多个主机
启用并行进程数执行
ansible-playbook update-stg.yml -f 10 -s -k // 启用10个并行进程数执行
启用换行编写
## 备份文件- name: "mkdir backup directory"hosts: "{{ hosts }}"tasks:- name: "mkdir backup dirctory"file: >path=/opt/backup/xxx state=directorymode=0755
