Ansible 实战
플레이북이 200줄을 넘어가면 복사·붙여넣기가 시작되고, 그때부터 자동화는 부채가 됩니다. 롤로 재사용 단위를 만들고, Jinja2 로 설정 파일을 생성하고, 시크릿을 저장소에 안전하게 넣고, 조건과 반복으로 분기를 압축합니다. 끝나면 남이 쓸 수 있는 롤을 만들 수 있게 됩니다.
중급 · 레슨 30 · 实验 10
커리큘럼
角色与复用
- role — 用约定折起来的复用单元 reading
- 做出可复用的 role lab
- 测验:角色与复用 quiz
模板 (Jinja2)
- Jinja2 — 从数据到配置文件 reading
- 用 Jinja2 生成配置文件 lab
- 测验:模板 quiz
密钥 (ansible-vault)
- ansible-vault — 可以放进仓库的密钥 reading
- 把密钥加密后放进仓库 lab
- 测验:密钥管理 quiz
条件与循环
- loop 与 when — 增加的是数据,不是任务 reading
- 用条件与循环把分支压扁 lab
- 测验:条件与循环 quiz
集合(Collection)——比角色更大的分发单位
- 集合:为什么名字里写着来源 reading
- 构建内部集合并以锁定版本的方式分发 lab
- 测验:集合与分发单位 quiz
同一个变量名可以放在二十二个位置
- 变量优先级:先去测,再谈背表 reading
- 用实测而不是文档来立变量优先级表 lab
- 测验:变量优先级 quiz
不停机发布是 playbook 的结构问题
- serial 与 delegate_to:切成批次,把活交出去 reading
- 分批并委托给负载均衡器,做一次不停机发布 lab
- 测验:委托与串行执行 quiz
没有过滤器就自己写一个
- 插件:在哪里运行,就是设计的一半 reading
- 把当初用 shell 凑合的事情做成插件 lab
- 测验:没有过滤器就自己写一个 quiz
剧本慢下来的真正原因
- 不先测量就动手,改的永远是你早就知道的那一处 reading
- 先量清楚剧本为什么慢,再动手改 lab
- 测验:剧本慢下来的真正原因 quiz
让剧本先过一次审
- 规则、配置档、例外,以及把它们串起来的关卡 reading
- 在运行之前就拦住:语法、lint 与前置条件合成一道关卡 lab
- 测验:让剧本先过一次审 quiz