155.5. ansible-playbook - run an ansible playbook

定义组

# cat /etc/ansible/hosts
[www]
192.168.2.23
		

创建yml文件

# cat test.yml
---
- hosts: www
  user: root
  tasks:
  - name: no selinux
    action: command /usr/sbin/setenforce 0

  - name: no iptables
    action: service name=iptables state=stopped

  - name: made up task just to show variables work here
    action: command /bin/echo release is $release
		

执行任务

# ansible-playbook test.yml -u root -T 1

PLAY [www] *********************

GATHERING FACTS *********************
ok: [192.168.2.23]

TASK: [no selinux] *********************
ok: [192.168.2.23]

TASK: [no iptables] *********************
ok: [192.168.2.23]

TASK: [made up task just to show variables work here] *********************
ok: [192.168.2.23]

PLAY RECAP *********************
192.168.2.23                   : ok=4    changed=2    unreachable=0    failed=0
		
# ansible-playbook update.yml --list-hosts

playbook: update.yml

  play #1 (all): host count=11
    192.168.2.10
    192.168.2.11
    192.168.2.12
    192.168.2.13
    192.168.2.15
    192.168.6.10
    192.168.6.11
    192.168.6.12
    192.168.6.13
    192.168.6.15
    192.168.2.9
		

155.5.1. 包含文件用法

我们将下面的playbook文件分成三个文件,这样更灵活。

---
- hosts: all
  remote_user: username
  sudo: yes

  tasks:
    - yum: name=wget state=present
      when: ansible_distribution == 'CentOS' or ansible_distribution == 'Red Hat Enterprise Linux'
    - yum: name=gcc state=present
      when: ansible_distribution == 'CentOS' or ansible_distribution == 'Red Hat Enterprise Linux'
			

tasks/cenos.yml

- yum: name=wget state=present
- yum: name=gcc state=present
			

tasks/deban.yml

- apt: pkg=wget state=present
- apt: pkg=gcc state=present
			

playbook.yml

---
- hosts: all
  remote_user: username
  sudo: yes

  tasks:
    - include: tasks/centos.yml
      when: ansible_distribution == 'CentOS' or ansible_distribution == 'Red Hat Enterprise Linux'
    - include: tasks/debian.yml
      when: ansible_distribution == 'Debian' or ansible_distribution == 'Ubuntu'
			

执行playbook

# ansible-playbook playbook.yml
		

原文出处:Netkiller 系列 手札
本文作者:陈景峯
转载请与作者联系,同时请务必标明文章原始出处和作者信息及本声明。

时间: 2024-09-25 17:10:14

155.5. ansible-playbook - run an ansible playbook的相关文章

集群运维自动化工具ansible之使用playbook安装zabbix客户端_服务器其它

之前介绍了关于ansible的安装与使用(包括模块与playbook使用,地址是http://www.jb51.net/article/52154.htm),今天介绍一下如何使用playbook来部署zabbix客户端. ansible服务端的环境为centos 6.5 x86_64系统 ansible客户端环境为centos 6.3 x86_64系统 目前我的playbook只允许centos或redhat 6系列系统来安装zabbix客户端,并且客户端的版本是2.0.6. 下面是playbo

Ansible权威指南.

Linux/Unix技术丛书 Ansible权威指南 李松涛 魏 巍 甘 捷 著 图书在版编目(CIP)数据 Ansible权威指南 / 李松涛,魏巍,甘捷著. -北京:机械工业出版社,2016.11 (Linux/Unix技术丛书) ISBN 978-7-111-55329-8 I. A- II. ①李- ②魏- ③甘- III. 程序开发工具-指南 IV. TP311.561-62 中国版本图书馆CIP数据核字(2016)第258615号 Ansible权威指南 出版发行:机械工业出版社(北

《Ansible权威指南》一1.5 Ansible通信发展史

1.5 Ansible通信发展史 Ansible主推的卖点是其无需任何Daemon维护进程即可实现相互间的通信,且通信方式是基于业内统一标准的安全可靠的SSH安全连接.同时因为SSH是每台Linux主机系统必装的软件,所以Ansible无需在远程主机端安装任何额外进程,即可实现Agentless(无客户端),进而助力其实现去中心化的思想.尽管稳定.快速.安全的SSH连接是Ansible通信能力的核心,但SSH的连接效率一直被诟病,所以Ansible的通信方式和效率在过去的数年中也在不停地改变和提

ansible

ansible        Mr . Neo  Chan , 陈景峰(BG7NYT)   文档尚未完成,请勿转载! 版权 2008, 2009, 2010, 2011, 2012 Copyright Editor Groups, All Rights Reserved 版权声明 转载请与作者联系,转载时请务必标明文章原始出处和作者信息及本声明. 文档出处: http://netkiller.sourceforge.net http://netkiller.github.com   $Date:

使用Jenkins、Docker和Ansible进行持续集成和交付

本文讲的是使用Jenkins.Docker和Ansible进行持续集成和交付,[编者的话]本文介绍了使用Docker.Jenkins等技术实现应用开发,测试到部署的自动化.它是一种探索.重点在于流程中的代码检测.测试.部署.部署后要做的事情没有涉及.会在后面文章中介绍. 本文试图为您介绍一个设置持续集成.交付.部署工作流的可行方式.我会使用Jenkins.Docker.Ansible和Vagrant来设置(配置)两个服务器.一个作为Jenkins的服务器,另一个用来模拟生产环境.前者用来检查代码

使用 Ansible 高效交付 Docker 容器

使用 playbook.插件和 Docker 模块设置和扩展 Ansible 环境 Docker 和它的容器工作流可封装.共享和部署您的应用程序环境.Ansible 是一个与 Docker 高度兼容的自动化工具,它使用一个强大的接口来管理远程服务器上的容器.在本文中,我将探索为何和如何使用 Ansible 的可扩展设计来将 Docker 和 Ansible 的最佳功能合并在一起. Docker 之所以如此流行,是因为它创造了一种采用方便的命令行接口 (CLI) 和 HTTP API 工具来封装.

Ansible一个IT自动化工具,用来配置系统部署软件

Ansible 是通过 Python 语言开发.当前使用 Ansible 的用户有:evernote.rackspace.NASA.Atlassian.twitter 等. Ansible 的目标是操作的最简单和最易用.它也强烈关注安全和可靠性.精简性.OpenSSH 传输的运用(具有一个加速的套接字模式和推模式作为替代)以及语法的易读性. Ansible 可以管理小型的网络环境,也可以用于管理上千人的企业级网络环境,它都能够游刃有余的完成您所交待的任务. Ansible 管理机器上不需要安装代

使用原子主机(Atomic Host)、Ansible 和 Cockpit 部署容器

请注意,我们不能在原子主机上使用 dnf 命令.原子主机并没有设计为通用操作系统,而是更适合容器和其他用途.但在原子主机上设置应用程序和服务仍然非常容易.这篇文章向您展示了如何自动化和简化这个过程. 设置组件 开始之前,请确保你的系统上安装了 Ansible. sudo dnf -y install ansible 首先,我们需要在原子主机上运行 cockpit 容器.在你的机器上从 https://github.com/trishnaguha/fedora-cloud-ansible 下载它的

《Ansible权威指南 》一1.5 Ansible通信发展史

1.5 Ansible通信发展史 Ansible主推的卖点是其无需任何Daemon维护进程即可实现相互间的通信,且通信方式是基于业内统一标准的安全可靠的SSH安全连接.同时因为SSH是每台Linux主机系统必装的软件,所以Ansible无需在远程主机端安装任何额外进程,即可实现Agentless(无客户端),进而助力其实现去中心化的思想.尽管稳定.快速.安全的SSH连接是Ansible通信能力的核心,但SSH的连接效率一直被诟病,所以Ansible的通信方式和效率在过去的数年中也在不停地改变和提