Ansible是一款简单的运维自动化工具,只需要使用ssh协议连接就可以来进行系统管理,自动化执行命令,部署等任务。

Ansible的特点

1、ansible轻量级无客户端agentless,只需要双方支持ssh

2、ansible playbook 采用yaml配置,对于自动化任务执行统一了脚本格式

3、学习成本低,快速上手

4、完整的模块化扩展,支持开发能容丰富

Ansible组成结构

Ansible
Ansible的命令工具,核心执行工具;一次性或临时执行的操作都是通过该命令执行。

Ansible Playbook
任务剧本(又称任务集),编排定义Ansible任务集的配置文件,由Ansible顺序依次执行,yaml格式。

Inventory
Ansible管理主机的清单,默认是/etc/ansible/hosts文件。

Modules
Ansible执行命令的功能模块,Ansible2.3版本为止,共有1039个模块。还可以自定义模块。

Plugins
插件,模块功能的补充,常有连接类型插件,循环插件,变量插件,过滤插件,插件功能用的较少。

API
提供给第三方程序调用的应用程序编程接口。



安装与快速使用 

curl -o /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo  && yum clean all && yum makecache

yum -y install ansible

ansible --version

————————————————————————————————————————

配置主机Inventory     /etc/ansible/hosts

临时指定inventory   /etc/ansible-web

[root@C7-local ~]# cat /etc/ansible/hosts
# This is the default ansible 'hosts' file.
[web]
192.168.9.243
192.168.9.242
192.168.9.241

[db]
192.168.17.214
192.168.17.220
192.168.17.248

————————————————————————————————————————

查看主机列表  
ansible all --list-hosts
ansible web --list
ansible all -m ping -i /etc/ansible-web

查看主机存活状态
ansible web -m ping -o
匹配apache组nginx组两个组所有的机器(并集)
ansible 'web:db' -m ping -o 
执行非内置命令
ansible web -m shell -a 'yum clean all ; yum makecache' -o

Ansible Playbooks常用模块

file模块  在目标主机创建文件或目录,并赋予其系统权限

- name:create a file
file: 'path=/root/test.txt state=touch mode=0755
owner=user group=user'
 
copy模块  实现Ansible服务端到目标主机的文件传送
- name:copy a file
copy:'remote_src=no src=roles/testbox/files/test.sh
dest=/root/test.sh mode=0644 force=yes'
 
Stat模块    获取远程文件状态信息
- name:check if test.sh exists
stat: 'path=/root/test.sh'
register:script_stat
 
Debug模块    打印语句到Ansible执行输出
-debug:msg=test.sh exists
when:script_stat.stat.exists
 
Command/Shell模块    用来执行Linux目标主机命令行 
- name:run the script
command:"sh/root/test.sh"
-name:run the script
shell:"echo'test'>/root/test.txt"
 
Template模块    实现Ansible服务端到目标主机的jinja2模板传送
- name:write the nginx config file
   template:src=roles/testbox/templates/nginx.confj2
dest=/etc/nginx/nginx.conf
 
Packaging模块    调用目标主机系统包管理工具(yum,apt)进行安装
- name:ensure nginx is at the latest version 
yum:pkg=nginx state=latest
 
Service模块    管理目标主机系统服务
- name:start nginx service
service:name=nginx state=started
 
ansible-playbook -i inventory/testenv ./deploy.yml
 
 

Ansible-playbook执行慢

 gather_facts: no


PS:

Ansible快速入门

Ansible文献资料

Ansible中文权威指南

Ansible批量执行命令慢的解决思路

Ansible执行速度优化指北

Ansible-快速启动的更多相关文章

  1. ansible 快速入门

    安装 $ sudo apt-get install software-properties-common $ sudo apt-add-repository ppa:ansible/ansible $ ...

  2. 8. 利用Ansible快速构建MGR | 深入浅出MGR

    GreatSQL社区原创内容未经授权不得随意使用,转载请联系小编并注明来源. 目录 1. 安装ansbile 2. 配置ansible 3. 建立ssh信任 4. 测试ansible 5. 使用ans ...

  3. Win7快速启动栏

    http://jingyan.baidu.com/article/456c463bbc1d140a583144cf.html 1. 在任务栏上右键 -> 工具栏 -> 新建工具栏.   在 ...

  4. Atitit 控制中心快速启动面板quick launcher

    Atitit 控制中心快速启动面板quick launcher contralPanel.bat aaaControlPanel.contrlx /AtiPlatf_auto/src_atibrow/ ...

  5. 使用Yeoman快速启动AngularJS项目开发

    本博客停止更新,请访问新个人博客:owenchen.net 前言 博客迁移到了BAE上,http://owenchen.net/,以后的文章会首发在自己的博客上,随后在博客园发布. 很久没有写文章了, ...

  6. 神逸之作:国产快速启动软件神品ALTRun

    http://xbeta.info/altrun.htm 作者: ET民工和塞壬 日期: 2010-09-15 分类: windows 标签: quick-launch <神逸之作:国产快速启动 ...

  7. win7和win8如何设置快速启动栏

    a.在任务栏上右键 -> 工具栏 -> 新建工具栏 -> 跳出选择文件夹对话框,在文件夹里面(光标山洞处)输入这个路径,然后按回车: %userprofile%\AppData\Ro ...

  8. Linux系统快速启动方案

    =========================        基本常识       ========================= Linux系统基本启动流程: 1. CPU从ROM(如果有的 ...

  9. win7 系统如何设置快速启动栏

    a.在任务栏上右键 -> 工具栏 -> 新建工具栏 -> 跳出选择文件夹对话框,在文件夹里面(光标山洞处)输入这个路径,然后按回车: %userprofile%\AppData\Ro ...

  10. win+r 快速启动应用程序

    如何使用WIN+R快捷键快速启动应用程序呢?其实很简单 首先随便在一个盘上建一个新文件夹,随便取什么名字,最好是英文格式,小编以D盘为例,如图 2. 打开文件夹,单击右键,选择“新建”,单击“快捷方式 ...

随机推荐

  1. Github仓库master分支到main分支迁移指南

    1 概述 2020年10月1日后,Github会将所有新建的仓库的默认分支从master修改为main,这就导致了一些旧仓库主分支是master,新仓库主分支是main的问题,这在有时候会带来一些麻烦 ...

  2. k8s 运行单实例 mysql

    配置文件mysql.yaml --- apiVersion: v1 kind: Service metadata: name: mysql-01 spec: ports: - port: 3306 s ...

  3. 功能:Linux运行jar包Shell脚本

    一.删除jar进程 # 删除指定jar的进程 ps -ef | grep java | grep testJar.1.0.1 | grep -v grep | cut -c 9-15 | xargs ...

  4. 关于Eclipse Debug断点调试出现 Search not found 页面的解决办法

    1. 在代码中鼠标右键 Debug AS ---> Debug Configurations... ----> 找到Source选项  ---> 点击add ---> 选择 j ...

  5. Ubuntu下修改Nexus 5的boot.img--改user模式为debug模式

    博客地址:http://blog.csdn.net/qq1084283172/article/details/52422205 在学习Android逆向的时候,总会用到Android的调试模式.一般情 ...

  6. 【转】浅谈自动特征构造工具Featuretools

    转自https://www.cnblogs.com/dogecheng/p/12659605.html 简介 特征工程在机器学习中具有重要意义,但是通过手动创造特征是一个缓慢且艰巨的过程.Python ...

  7. HashMap 的数据结构

    目录 content append content HashMap 的数据结构: 数组 + 链表(Java7 之前包括 Java7) 数组 + 链表 + 红黑树(从 Java8 开始) PS:这里的& ...

  8. 事后分析$\beta$

    项目 内容 课程:北航-2020-春-软件工程 博客园班级博客 要求 事后分析 我们在这个课程的目标是 提升团队管理及合作能力,开发一项满意的工程项目 这个作业在哪个具体方面帮助我们实现目标 组织组员 ...

  9. pass在if中

    pass在if中是停止if成立后的操作. 如 num=1 while num<=100: if num==50: pass        #当作先占位 elif num>=60 and n ...

  10. 16.分类和static

    1.案例驱动模式 1.1案例驱动模式概述 (理解) 通过我们已掌握的知识点,先实现一个案例,然后找出这个案例中,存在的一些问题,在通过新知识点解决问题 1.2案例驱动模式的好处 (理解) 解决重复代码 ...