Ansible自动化运维工具的使用
 
 
 
host lnventory 管理主机 ip  root账号密码 ssh端口
core modules 核心模块(user server yum等模块)
custom modules 自定义模块 支持任何编程语言
connection plugins 连接插件,Ansible和host通信使用
 
优点:
Stupied Simple ,上手简单,学习曲线平滑
SSH by default ,安全,无需安装客户端
配置简单、功能强大、扩展性强
支持API及自定义模块,可通过Python轻松扩展
通过Playbooks来定制强大的配置、状态管理
提供一个功能强大、操作性强的Web管理界面和REST API接口——AWX平台
幂等性:一个操作重复多次操作 内容不变
 
 
一、ansible安装(只在server端安装)
1、yum -y install epel-release
              yum clean all 
              yum makecache
 
2、yum install ansible
 
二、ansibles配置(无密码登陆)
1、client:ssh-keygen  #生成秘钥文件和私钥文件
 
2、server:scp id_rsa.pub root@192.168.88.5:/root/.ssh/authorized_keys 
     #把id_rsa.pub传到client端并且必须命名为authorized_keys
(ssh-copy-id -i id_rsa.pub root@192.168.88.5)传文件的另一种方法
 
3、server: ssh root@192.168.88.5   #测试是否实现无需密码验证登陆
 
4、serve:定义管控主机
vim /etc/ansible/hosts  
在[webservers]下写入client ip (我这里用了两台client)
 
(www.[1:60].benet.com 用于多台client
    ansible all      测试所有组                )
 
ansible webservers -m ping  #查看client端是否ping通
 
三、ansible常用命令
ansible-doc -l  #查看支持的模块
ansible命令应用基础
        ansible <host-pattern> [options]
      -f forks:启动并发线程数
      -m model_name:要使用的模块
                 -a args:特有的参数
 
 
ansible webservers -m ping  #查看client端是否ping通
ansible webservers -m setup #查看client端信息
ansible webservers -m copy -a "src=/root/test.txt dest=/root/test1.txt"
#copy文件到client端
ansible webservers -m user -a "name=user state=present" #在client端创建用户
ansible webservers -m user -a "name=user state=absent" #在client端删除用户
ansible webservers -m yum -a "name=tree state=latest" #yum安装
ansible webservers -m service -a "name=httpd state=stopped enabled=no" #停止httpd服务
ansible webservers -m script -a "/tmp/test.sh"  #运行脚本
 
#查看时间
ansible webservers -m command 'date' 
ansible webservers -a "date"
 
四、palybook
 
文件名为.yml结尾
用  ansible-playbook xxx.yml  运行
 
1、基础
 
2、变量(把tree给变量packages)
 
3、迭代(item)
 
4、触发器notify
只要  - name: cp http.conf 执行了就会触发handlers
handlers是在所有任务执行完之后才会触发,所有要写在最后
(写在中间不执行)
 
5、模板templates
 
改两台client的httpd的不同端口号
1)cp /etc/httpd/conf/httpd.conf /etc/httpd/conf/httpd.conf.j2
       vim /etc/httpd/conf/httpd.conf.j2  
  (j2是Jinja2  模板文件)
 
2)添加端口号
     vim /etc/ansible/hosts
 
3)vim test5.yml  

 
4)分别在两台client端查看端口号
 
 
6、单个任务执行tags
   例:只执行单个add_user任务
   执行命令 ansible-playbook test6.yml --tags="add_user"
 
 
 
7、角色roles
1)在/root目录下创建ansible_playbooks目录
2)在 ansible_playbooks目录下创建roles目录
3)在roles目录下创建角色名  如:webservsers dbservers
4)在webservsers目录下创建files,handlers,meta,tasks,templates,vars目录(不用到的目录可以不创建)
5)
files里面存放需要调用的文件
 
tasks里面存放要执行任务的文件(文件命名必须为main.yml)
src后的文件会自动到files里调用
 
handlers里面存放触发的任务的文件(文件命名必须为main.yml)
 
6)最后回到ansible_playbooks目录下创建一个site.yml文件
ansible-playbook site.yml 执行之后会自动调用角色webservers目录里面创建的任务
 
 
 
 
 

Ansible自动化运维工具的使用的更多相关文章

  1. Ansible自动化运维工具-上

    [Ansible特点] 1)Ansible与saltstack均是基于Python语言开发的 2)安装使用简单,基于不同插件和模块实现各种软件,平台,版本的管理以及支持虚拟容器多层级的部署 3)不需要 ...

  2. Ansible 自动化运维工具

    Ansible 自动化运维工具 Ansible是什么? Ansible是一个"配置管理工具"也是一个"自动化运维工具" Ansible 作用: Ansible是 ...

  3. Ansible自动化运维工具及其常用模块

    Ansible自动化运维工具及其常用模块 目录 Ansible自动化运维工具及其常用模块 一.Ansible简介 1. Ansible概述 2. Ansible作用 3. Ansible的工作模块 4 ...

  4. Ansible自动化运维工具使用

    概述本文描述自动化运维工具 Ansible 的安装及基础使用方法,包含: Centos 下的安装主机配置Ad-Hoc command(命令行执行)Playbook (任务剧本)Ansible 和 Sa ...

  5. ansible自动化运维工具使用详解

    一. ansible 简介 1. ansible ansible是新出现的 自动化 运维工具 , 基于Python研发 . 糅合了众多老牌运维工具的优点实现了批量操作系统配置.批量程序的部署.批量运行 ...

  6. Ansible自动化运维工具

    ansible软件介绍 python语言是运维人员必会的语言!  ansible是一个基于Python开发的自动化运维工具!(saltstack)  其功能实现基于SSH远程连接服务!  ans ...

  7. [Linux]Ansible自动化运维② - 工具与模块

    目录 一.Ansible的工具 1.1 Ansible的工作前提 1.2 Ansible的安装文件 1.3 Ansible的配置文件 1.4 Ansible的相关工具 1.4.1 [帮助工具]Ansi ...

  8. 三石之道之Ansible自动化运维工具部署

    centos6默认python版本为2.6 centos7默认python版本为2.7 ansible需要最低python2.7的支持 总结:centos6要部署ansible工具,需要先升级pyth ...

  9. ansible自动化运维工具的安装与使用

    运行环境 centOS6.6 ansible ansible的功能还是比较多的,博主只用它在集群上进行批量部署软件和维护的功能,其他不多做研究,有需要的话这篇文章会慢慢补充. ansible特点 轻量 ...

随机推荐

  1. Java进阶:基于TCP通信的网络实时聊天室

    目录 开门见山 一.数据结构Map 二.保证线程安全 三.群聊核心方法 四.聊天室具体设计 0.用户登录服务器 1.查看当前上线用户 2.群聊 3.私信 4.退出当前聊天状态 5.离线 6.查看帮助 ...

  2. Python利用zmail收取邮件

    收取邮件一般用pop和imap,这里使用国人大神开发的zmail来收取: 1 ''' 2 #利用zmail收取邮件 3 #只要几行代码 4 #安装库:pip3 install zmail 5 #国内大 ...

  3. 【磁盘/文件系统】第二篇:标准磁盘分区流程针对fdisk(硬盘容量小于2T且分区数不能大于15个分区)

    前奏:先插上一块磁盘(做了RAID的磁盘才能分区) 查看磁盘连上服务器没有,或者说是可以进行分区前奏 [root@PandaLi ~]# ll /dev/sd sda sda1 sda2 sda3 s ...

  4. 高性能MySQL学习总结一

    一.MySQL逻辑架构 第一层的服务不是MySQL独有的,大多数是基于网络的客户端/服务端的工具,如连接处理.授权认证.安全等等. 第二层就是MySQL的核心功能,包括查询解析.分析.优化.缓存以及所 ...

  5. 讲两个int 数组找出重复的数字 用最少的循环

    int a[] = {1,3}; int b[] = {1,3,5}; int size = a.length>b.length ?a.length:b.length; int valueA = ...

  6. 152. Maximum Product Subarray动态规划连乘最大子串

    Find the contiguous subarray within an array (containing at least one number)which has the largest p ...

  7. Ubuntu安装最新的SlickEdit软件--破解教程

    最近主要工作系统转到LInux上面来了,Slickedit的安装破解也费了些事,今天将过程整理一下做个记录. 说明:SlickEdit pro V21.03 Linux 64位实测可用,MAC实测可用 ...

  8. 2020年Python文章盘点,我选出了个人TOP10

    大家好,我是猫哥.2020年过得真快啊!总感觉这一年里还没有做成多少事,一眨眼就又到了写年度总结的时候了-- 去年1月1日的时候,我写了<我的 2019 年 Python 文章榜单>,简单 ...

  9. JS中的多层次排序算法

    引子 排序在编程中随处可见,从开始学习变成,到项目开发,基本上或多或少会遇到一些排序问题,接下来我要写的是我在实际开发终于到的一个排序问题,一开始卡了我很久,后面随着知识积累,实践变多才解决掉了,不知 ...

  10. mysql的binlog+maxwell+kakka

    1.业务库痛点及解决⽅案 初期出⾏业务的订单相关,是以mysql作为业务库为基准的,但是随着业务线增多,每⽇新增数据指 数上涨,⼏乎在每天的⾼峰期期间,都会出现业务库所在服务器的cpu.IO.内存等跑 ...