mkdir -p [递归创建目录]
ansible软件包提供一个基本的配置文件,它位于/etc/ansible/ansible.cfg
ansible-galaxy list 【该命令列出本地找到的角色】
yum install rhel-system-roles 【安装RHEL系统角色】
ls -l /usr/share/doc/rhel-system-roles/【访问RHEL系统角色的文档】
假设您在服务器上配置NTP时间同步,可以编写自动化来执行每一个必要的任务。RHEL系统角色中有一个可以执行此操作的角色,那就是 rhel-system-roles.timesync
该角色的详细记录位于/usr/share/doc/rhel-system-roles/timesync
红帽企业Linux中默认roles_path在路径中包含/usr/share/ansible/roles,因为playbook引用这些角色时Ansible会自动找到它们
ansible-galaxy list命令可以管理本地的角色
ansible-galaxy list子命令列出本地找到的角色
创建角色3个流程Ansible
1.创建角色目录结构
2.定义角色内容
3.在playbook中使用角色
列出ansible已经安装的 modules
ansible-doc -l
Playbook是以YAML 格式编写的文本文件,通常以扩展名yml保存。 有两个基本的规则:1. 处于层次结构中的同一级别的数据元素(例如同一列表中的项目)必须具有相同的缩进量。 2.如果仙姑属于其他项目的子项,其缩进量必须大于父项。
也可以通过添加空行来提高可读性。
Playbook 由—开始。文末有肯呢个用…结束标记。
YAML列表中的项目以一个破折号加空格开头。
三个关键:name,hosts,tasks
name是可选的 不是一定要用 但是有助于记录playbook
hosts它指定其运行play中的主机
tasks 指定要为该play运行的任务的列表
ansible-playbook 命令运行playbook
ansible-playbook site.yml
Ansible支持使用loop
魔法变量
hostvars 包含受管主机的变量,可以用于获取另一台受管主机的变量的值。如果还没有为受管主机收集事实,则不会包含该主机的事实。
group_names 列出当前受管主机所属的所有组
事实 | 变量 |
---|---|
短主机名 | ansible_facts[‘hostname’] |
完全限定的域名 | ansible_facts[‘fqdn’] |
主要IPv4地址(基于路由) | ansible_facts['default_ipv4][‘address’] |
安装RHEL系统角色
sudo yum -y install rhel-system-roles
ansible-galaxy init 用来创建新角色的目录结构
ansible-galaxy init apache
RHEL系统角色的文档位于/usr/share/doc/rhel-system-roles-XXXX/
timesync_ntp_servers 变量。 使用的NTP服务器的列表为值。
使用Ansible Galaxy安装角色
ansible-galaxy install -r /home/roles/dddd.yml
ansible-galaxy list ·子命令列出本地的角色
检查所有的inventory hosts
ansible all -m ping
使用Ansible管理软件包
name 提供要安装的软件包名称
state 指明该软件包在收官主机上的预期状态
有三种状态
present 如果尚不存在,Ansible 将安装该软件包
ansent 如果已安装,Ansible 将删除该软件包
latest 如果软件包不是最新,将更新。如果还没安装,Ansible会安装
loop 循环
§lvol 模块可穿件逻辑卷,并且支持放大和收缩这些卷的大小
lv: 逻辑卷的名称
vg: 逻辑卷的父卷组
size: 逻辑卷的大小
filesystem 模块支持穿件文件系统和调整文件系统大小
dev: 块设备名称
fstype: 文件类型