ansible 教程

445课时
9.7K学过
2分

1. 总体介绍

总体介绍

Installation

从Github获取Ansible

需要安装些什么

选择哪一个版本

对管理主机的要求

对托管节点的要求

从源码运行

通过Yum安装最新发布版本

通过Apt (Ubuntu)安装最新发布版本

11 通过 Portage (Gentoo)安装最新发布版本

通过 pkg (FreeBSD)安装最新发布版本

在Mac OSX 上安装最新发布版本

通过 OpenCSW 安装最新发布版本(Solaris)

通过 Pacman 安装最新发布版本(Arch Linux)

通过 Pip 安装最新发布版本

发行版的Tarball

新手上路

前言

你的第一条命令

公钥认证

Inventory文件

主机与组1

主机与组2

主机变量

组的变量

把一个组作为另一个组的子成员

分文件定义 Host 和 Group 变量

分文件定义 Host 和 Group 变量-实例

Inventory 参数的说明

Inventory 参数的说明-实例

动态 Inventory

Cobbler 外部 Inventory 脚本

Cobbler 外部 Inventory 脚本-实例

AWS EC2 外部 inventory 脚本1

AWS EC2 外部 inventory 脚本2

其它 inventory 脚本

使用多个 inventory 源

动态组作为静态组的子组

Patterns

Introduction To Ad-Hoc Commands

Parallelism and Shell Commands1

Parallelism and Shell Commands2

File Transfer

Managing Packages

Users and Groups

Deploying From Source Control

Managing Services

Time Limited Background Operations

Gathering Facts

Ansible的配置文件

获取最新配置文件

环境配置

配置文件不同段详解

通用默认段

action_plugins

ansible_managed

ask_pass

ask_sudo_pass

bin_ansible_callbacks

callback_plugins

command_warnings

connection_plugins

deprecation_warnings

display_skipped_hosts

error_on_undefined_vars

executable

filter_plugins

force_color

force_handlers

forks

gathering

hash_behaviour

hostfile

host_key_checking

inventory

jinja2_extension

library

log_path

lookup_plugins

module_lang

module_name

nocolor

nocows

pattern

poll_interval

private_key_file

remote_port

remote_tmp

remote_user

roles_path

sudo_exe

sudo_flags

sudo_user

system_warnings

timeout

transport

98 vars_plugins

vault_password_file

Paramiko Specific Settings

record_host_keys

OpenSSH Specific Settings

ssh_args

control_path

scp_if_ssh

pipelining

Accelerated Mode Settings

accelerate_port

accelerate_timeout

accelerate_connect_timeout

accelerate_daemon_timeout

accelerate_multi_key

Windows Support

windows下的运行方式

安装管理机

Inventory

Windows System Prep

Getting to PowerShell 3.0 or higher

可用的windows模块

开发者:支持的模块及工作原理

提醒:控制机必须是Linux系统

Windows Facts

Windows Playbook Examples

Windows Contributions

2. Playbooks

Playbooks

Playbooks 简介

Playbook 语言的示例

主机与用户

Tasks 列表

Action Shorthand

Handlers:在发生改变时执行的操作

执行一个 playbook

Ansible-Pull(拉取配置而非推送配置)

提示与技巧

Playbook 角色(Roles) 和 Include 语句

Playbook 角色(Roles) 和 Include 语句-简介

Task Include Files And Encouraging Reuse

Task Include Files And Encouraging Reuse-实例1

Task Include Files And Encouraging Reuse-实例2

Roles1

Roles2

角色默认变量(Role Default Variables)

角色依赖(Role Dependencies)

在 Roles 中嵌入模块

Ansible Galaxy

Variables

合法的变量名

在Inventory中定义变量

在playbook中定义变量

在文件和role中定义变量

使用变量:关于Jinja2

Jinja2过滤器

YAML陷阱

使用Facts获取的信息

关闭Facts

本地Facts(Facts.d)

Fact缓存

注册变量

访问复杂变量数据

魔法变量,以及如何访问其它主机的信息

变量文件分割

命令行中传递变量

变量的优先级:我该在什么地方放置变量1

变量的优先级:我该在什么地方放置变量2

变量的优先级:我该在什么地方放置变量3

条件选择

When 语句

加载客户事件

在roles 和 includes 上面应用’when’语句

条件导入

基于变量选择文件和模版

注册变量

循环

标准循环

嵌套循环

对哈希表使用循环

对文件列表使用循环

对并行数据集使用循环

对子元素使用循环

对整数序列使用循环

57 随机选择

Do-Until循环.

查找第一个匹配的文件

迭代程序的执行结果

使用索引循环列表

循环配置文件

扁平化列表

循环中使用注册器

自定义迭代

最佳实践

Content Organization

Directory Layout.

Use Dynamic Inventory With Clouds

How to Differentiate Stage vs Production

Group And Host Variables

Top Level Playbooks Are Separated By Role

Task And Handler Organization For A Role

What This Organization Enables (Examples)

Deployment vs Configuration Organization

Stage vs Production

Rolling Updates

Always Mention The State

Group By Roles

Operating System and Distribution Variance

Bundling Ansible Modules With Playbooks

Whitespace and Comments

Always Name Tasks

Keep It Simple

Version Control

7. Ansible Tower

课程评价 (0)

请对课程作出评价:
0/300

学员评价

暂无精选评价
1分钟

06 我想报告 Bug

Ansible实际使用中暴露的问题 – 如果和安全相关,请发邮件到 security@ansible.com < security@ansible.com >,而不是发到 Google 讨论组上面 .

有关核心语言的 Bug 应该被报道到 github.com/ansible/ansible < https://github.com/ansible/ansible >.在报告一个 Bug 之前首先检查 bug/issue 查看有关 issue 是否被报告了.

模块相关的 Bugs 应该基于模块的分类发到 ansible-modules-core < https://github.com/ansible/ansible-modules-core > 或者 ansible-modules-extras < https://github.com/ansible/ansible-modules-extras > .这会被列到模块文档的底部.

当你填bug信息的时候,模块请使用 issue template < https://github.com/ansible/ansible/raw/devel/ISSUE_TEMPLATE.md > 提供所有相关的信息,不管你正在填什么类型的表格. (When filing a bug, please use the issue template to provide all relevant information, regardless of what repo you are filing a ticket against.)

知道你ansible的版本,和你运行的具体的命令,你期望什得到什么结果,将会帮助我们和每个人世间,更快的知道问题.

不要使用类似,”我如何做(how do I do this)” 类型的问题.这里都是 IRC 的参与者回答有用的问题,而不是讨论有什么问题的.学会提问.

尊重审稿人,使审稿人有时间帮助更多的忍,请提供 良好注释,语言简洁的playbook,包括playbook的片段和输出内容.有用的信息尽量提出来,省略无用的信息

当在 playbook 分享 YAML 时候,格式可以被保存通过使用 code blocks < https://help.github.com/articles/github-flavored-markdown#fenced-code-blocks >

对于多文件的内容,推荐使用 gist.github.com. 在线 pastebin 内容可能会过期,因此如果他们被长时间的引用,最好时间放久一点.(For multiple-file content, we encourage use of gist.github.com. Online pastebin content can expire, so it’s nice to have things around for a longer term if they are referenced in a ticket.)

如果你不确定你提供的是否为 bug,欢迎到 IRC 邮件列表提问一些相关的事情.

因为我们是一个大文献的项目,如果你确定你有一个 bug ,请确保你打开 issue ,确保我们有这个与你有关的issue记录.不要依靠社区的其他人代替你上传这个bug.

得到你的报告可能会花一些世间,具体信息查看下面的优先级标识.