文档章节

ansible学习笔记-playbook

沙米笔记
 沙米笔记
发布于 2017/12/22 00:21
字数 543
阅读 163
收藏 0

1、palybook简单实例

---
- hosts: all
  user: root
  vars:
      - name: "dxx"
      - age: 15
  tasks:
     - name: echo {{name}}
       shell: echo {{name}}
       notify: 
         - say hello
  handlers:
      - name: say hello
        shell: echo "say hello"


2、变量引用

可在playbook、单个任务中

(1)vars:
       - name: dxx
       - age: 14

(2)vars_files:
       - variables

(3)vars_prompt:
       - name: version
         prompt: please input version
         private: no


3、字典和列表变量的调用

     class.name
      class[0].name

4、task使用3种方法

- name: copy /aaa
  action: copy src=/aaa dest=/bbb/aaa

- name: copy /aaa
  copy: src=/aaa dest=/bbb/aaa

- name: copy /aaa
  copy:
    src: /aaa 
    dest: /bbb/aaa

5、handlers注意

(1)当任务执行完毕后才会通知

(2)无论通知多少次,最终只会通知一次(????具体是哪一次)

(3)没有调用通知,handler也不会执行

6、变量定义设置默认值

work_name="{{ name |default(tom) }}"

7、with_items使用

正确姿势:
with_items:
  - aa: 11
    bb: 22
  - aa: 55
    bb: 66

with_items:
  - {aa: 11,bb: 22}
  - {aa: 55,bb: 66}

错误姿势
with_items:
  aa: 11
  bb: 22

8、roles 角色

(1)作用

 角色允许你将变量、文件、模板、handler、任务放到一个文件夹中,然后包含他们。

 角色中可以包含角色(在建立好一个有效的依赖关系后),也可以传递变量给角色

(2)可包含的文件夹,不使用可以删除

main.yml
roles
   myslq
     files              存放role需要的文件
     tasks              存放playbook的yml文件
     templates          存放模板文件
     handlers           存放调用任务文件(类似编码中定义的外部函数)
     vars               存放role中的变量文件
     meta               
     defaults
   redis
     files
     tasks
     templates
     handlers
     vars
     meta
     defaults

(3)使用方式

---
- hosts: webserver
  roles:
    - { role: start_server }
    - { role: end_server, port: 80}
    - { role: restart_server, when: port is defined }

- hosts: mysql
  roles:
    - { role: start_mysql }

- hosts: redis
  tasks:
    - name: include_role tomcat
      include_role: name=tomcat port=8080

9、条件判断when

(1)when

#when的常用语法
when: foo is defined
when: foo is not defined

when: result|failed
when: result|success
when: result|skipped

vars: 
  trip: true
when: trip

when: ansible_os_family == 'RedHat'
when: not ansible_os_family =="RedHat" or ansible_os_family =="Debian"


#如果包含hi
when: resut.stdout.find('hi') != -1

(2)changed_when

当满足某些条件时,部署状态显示changed。

(3)failed_when

当满足某些条件时,部署状态显示失败。

注意:include_role任务中,使用when,不能包含变量(会报条件状态异常)

          解决方案:通过block来保住include_role,给block设置when条件。

© 著作权归作者所有

沙米笔记
粉丝 29
博文 43
码字总数 45024
作品 0
深圳
程序员
私信 提问
Ansible权威指南笔记(粗略)

# 在托管节点上安装 python 解释器 ansible myhost --sudo -m raw -a "yum install -y python2 python-simplejson" # 各个平台上安装 ansible http://www.ansible.com.cn/docs/intro_install......

sktj
2018/01/10
0
0
Ansible-playbook 基本语法与实例(学习笔记十九)

1、安装apache,做初始配置,并启动服务: 这个是你选择的主机 hosts: webservers 这个是变量 vars: 远端的执行权限 remote_user: root tasks: 利用yum模块来操作 name: ensure apache is a...

sktj
2018/03/27
0
0
03-Ansible管理命令_Ansible

一、Ansible 管理命令 Ansible 管理命令有如下几个: (1)ansible:这个命令是日常工作中使用率非常高的命令之一,主要用于临时一次性操作; (2)ansible-doc:Ansible 模块文档说明,针对...

xiaomin0322
2018/09/04
92
0
笔记一: ansible 安装配置

更新日期: 2016-11-30 1.安装相关模块 (1)、setuptools模块安装 (2)、PyYAML模块安装 (3)、Jinja2模块安装 (4)、paramiko模块安装 2.安装ansible 3.配置免密钥登录 (1)生成秘钥 (2)将公钥传输...

ONG_赵佳
2018/06/28
0
0
笔记二:ansible批量设置主机名

更新时间: 2017-2-27 在/etc/ansible/hosts配置主机信息(主机名需先在hosts设置好) 2.修改主机名playbook 3. 执行playbook 4. 查看被管理机的主机名 有不对请指出,多多指教。qq:2632886623...

ONG_赵佳
2018/06/28
0
0

没有更多内容

加载失败,请刷新页面

加载更多

今日头条技术架构分析,看这篇就对了!

点击上方 "程序员小乐"关注, 星标或置顶一起成长 每天凌晨00点00分, 第一时间与你相约 每日英文 Anywhere, it is a good in the past, recall the number of times many, all would be ligh......

吧主
16分钟前
30
0
影响K8S Pod分配和调度策略的两大关键特性

在Kubernetes中有一个最复杂的调度器可以处理pod的分配策略。基于在pod规范中所提及的资源需求,Kubernetes调度器会自动选择最合适的节点来运行pod。 但在许多实际场景下,我们必须干预调度过...

RancherLabs
18分钟前
37
0
Linux笔记

Linux常用命令之chmod修改文件权限777和754 示例:chmod 777 /etc/squid 运行命令后,squid文件夹(目录)的权限就被修改为777(可读可写可执行)。...

owenzhang24
22分钟前
25
0
教你如何在CentOS7系统上安装postgreSQL11

本文教你如何在CentOS7系统上安装postgreSQL11。 1.添加PostgreSQL Yum存储库 sudo yum install https://download.postgresql.org/pub/repos/yum/11/redhat/rhel-7-x86_64/pgdg-centos11-11-......

Linux就该这么学
29分钟前
37
0
欧盟将禁止公共场所人脸识别:谷歌支持,微软反对

   来源:新浪、VB   近日,彭博社披露的一份欧盟人工智能“白皮书”草案显示,欧盟计划对人工智能开发者提出具有法律约束力的新要求,以确保现代科技的开发和使用符合道德规范。    ...

水果黄瓜
32分钟前
11
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部