自动化运维之Ansible安装及基本模块应用

ansible简介

  • Ansible可以同时管理Redhat系的Linux,Debian系的Linux,以及Windows主机。管理节点只在执行脚本时与远程主机连接,没有特别的同步机制,所以断电等异常一般不会影响ansbile。
  • 2.ansible是新出现的自动化运维工具,基于Python开发,集合了众多运维工具(puppet、cfengine、chef、func、fabric)的优点,实现了批量系统配置、批量程序部署、批量运行命令等功能。ansible是基于模块工作的,本身没有批量部署的能力。真正具有批量部署的是ansible所运行的模块,ansible只是提供一种框架。主要包括:
    ? ?? ???(1)、连接插件connection plugins:负责和被监控端实现通信;
    ? ?? ???(2)、host inventory:指定操作的主机,是一个配置文件里面定义监控的主机;
    ? ?? ???(3)、各种模块核心模块、command模块、自定义模块;
    ? ?? ???(4)、借助于插件完成记录日志邮件等功能;
    ? ?? ???(5)、playbook:剧本执行多个任务时,非必需可以让节点一次性运行多个任务。
  • ?3.ansible的架构:连接其他主机默认使用ssh协议

    实验环境介绍:
主机名 IP地址 操作系统
ansible管理端 192.168.195.147 CentOS7
被管理端1 192.168.195.162 CentOS7
被管理端2 192.168.195.163 CentOS7

安装部署
首先在管理主机上安装Ansible

yum install -y epel-release //安装epel源
yum install ansible -y
ansible --version //查看ansible版本

yum install tree -y
tree /etc/ansible/ //树状结构展示文件夹
/etc/ansible/
├── ansible.cfg #ansible的配置文件
├── hosts #ansible的主仓库,用于存储需要管理的远程主机的相关信息
└── roles #角色
修改ansible配置文件hosts,添加被管理主机清单
cd /etc/ansible
vi hosts //配置主机清单
[webserver]
192.168.195.162
[mysql]
192.168.195.163
设置SSH密钥对,并将公钥推送给被管理主机
ssh-keygen -t rsa #生成密钥
ssh-copy-id [email protected]
ssh-copy-id [email protected] //配置密钥对验证


---------免交互代理--------------
ssh-agent bash
ssh-add


ansible命令行模块
1,------command模块------

命令格式:ansible [主机] [-m 模块] [-a args]
ansible-doc -l //列出所有已安装的模块 注:按q退出

ansible-doc -s yum //-s列出yum模块描述信息和操作动作

ansible 192.168.195.162 -m command -a ‘date‘ //指定ip执行date
ansible webserver -m command -a ‘date‘ //指定分类执行date
ansible mysql -m command -a ‘date‘

ansible all -m command -a ‘date‘ //所有hosts主机执行date命令

ansible all -a ‘ls /‘ 如果不加-m模块,则默认运行command模块

2,-----cron模块------

两种状态(state):present表示添加(可以省略),absent表示移除。
ansible-doc -s cron //查看cron模块信息
ansible webserver -m cron -a ‘minute="/1" job="/bin/echo heihei" name="test cron job"‘
ansible webserver -a ‘crontab -l‘
ansible webserver -m cron -a ‘name="test cron job" state=absent‘ //移除计划任务,假如该计划任务没有取名字,name=None即可



3,-----user模块------

user模块是请求的是useradd, userdel, usermod三个指令
ansible-doc -s user //查看user模块的用法

ansible mysql -m user -a ‘name="test01"‘ //创建用户test01
ansible mysql -m command -a ‘tail /etc/passwd‘

ansible mysql -m user -a ‘name="test01" state=absent‘ //删除用户test01


4,-----group模块-----

group模块请求的是groupadd, groupdel, groupmod 三个指令。
ansible-doc -s group //查看group模块的用法

ansible mysql -m group -a ‘name=mysql gid=306 system=yes‘ //创建组为mysql
ansible mysql -a ‘tail /etc/group‘ //查看新创建的组mysql

ansible mysql -m user -a ‘name=test01 uid=306 system=yes group=mysql‘ //创建test01用户,并指定组为mysql,
ansible mysql -a ‘tail /etc/passwd‘ //查看创建的用户test01

ansible mysql -a ‘id test01‘ //查看用户test01的信息


5,------copy模块--------

ansible-doc -s copy
ansible mysql -m copy -a ‘src=/etc/fstab dest=/opt/fstab.back owner=root mode=640‘ //文件复制,将fstab复制到/opt下命名为fstab.back,并设置权限为640,指定所有者为root
ansible mysql -a ‘ls -l /opt‘ //查看/opt目录下的文件,是否有新文件产生
ansible mysql -a ‘cat /opt/fstab.back‘ //查看复制的文件内容

ansible mysql -m copy -a ‘content="hello heihei!" dest=/opt/fstab.back‘ //将hello heihei!写入/opt/fstab.back 也可以创建新文件
ansible mysql -a ‘cat /opt/fstab.back‘ //再次查看其内容,发生替换

6,------file模块--------

ansible-doc -s file
首先创建一个测试用户mysql,并加入mysql组中
ansible mysql -m user -a ‘name=mysql system=yes‘
ansible mysql -m group -a ‘name=mysql system=yes‘

ansible mysql -m file -a ‘owner=mysql group=mysql mode=644 path=/opt/fstab.back‘ //修改文件的属主属组权限等
ansible mysql -m file -a ‘path=/opt/fstab.link src=/opt/fstab.back state=link‘ //设置/opt/fstab.link为/opt/fstab.back的链接文件

ansible mysql -m file -a "path=/opt/fstab.back state=absent" //删除一个文件
ansible mysql -m file -a "path=/opt/test state=touch" 创建一个文件


7,-----ping模块-------

ansible all -m ping //测试被管理主机是否在线


8,-----yum模块-----

ansible-doc -s yum
ansible mysql -m yum -a ‘name=httpd‘ //yum安装httpd
[[email protected] ~]# rpm -q httpd

ansible mysql -m yum -a ‘name=httpd state=absent‘ //卸载httpd

9,-----service模块--------

ansible-doc -s service
[[email protected] ~]# yum -y install httpd
ansible webserver -m service -a ‘enabled=true name=httpd state=started‘ //启动httpd服务
[[email protected] ~]# systemctl status httpd //在webserver上查看httpd是否开启

10,------shell模块-----

ansible-doc -s shell
ansible mysql -m shell -a ‘echo abc123|passwd --stdin mysql‘ //创建用户使用无交互模式给用户设置密码


11,------script模块---------

ansible-doc -s script //在ansible管理端编辑一个简单的shell脚本
vi test.sh
#!/bin/bash
echo "hello ansible from script"> /opt/script.txt

chmod +x test.sh //赋予执行权限
ansible mysql -m script -a ‘test.sh‘ //使用script模块,将脚本在mysql上执行


[[email protected] ~]# cat /opt/script.txt //在mysql上查看脚本执行结果


12,-----setup模块-------

ansible-doc -s setup
ansible mysql -m setup //获取mysql组主机的facts信息

ansible作为一个自动化运维工具还有很多模块,本篇文章只是介绍一些常用的模块。

原文地址:http://blog.51cto.com/13728740/2307548

时间: 2024-09-29 22:46:02

自动化运维之Ansible安装及基本模块应用的相关文章

自动化运维之Ansible安装与模块应用

自动化运维之Ansible Ansible概述 由于互联网快速展导致产品更新换代速度逐渐加快,运维人员每天都要进行大量维护操作,人就按照传统方式进行维护会使工作效率低下,只是,部署自动化运维就尽可能安全,高校的完成工作 一般会把自动化运维工具划分为两类 (一)需要使用代理工具的,也就是基于专用的Agent程序完成管理功能,如:Puppet.Func.Zabbix等(二)不需要配置代理工具,可以直接基于SSH服务来管理完成,如:Ansible,Fabric等 下面介绍几款空能和类似的自动化运维工具

自动化运维之 Ansible——安装配置

Ansible相对于其他自动化运维工具(saltstack.puppet)的优势: Ansible是一款轻量级框架,基于各个模块实现各种功能,模块可根据需要自行开发 agentless 无需安装agent,可根据具体情况建立一台操作机 支持playbook剧本 python语言开发,做运维的都比较容易接受的语言 其他等等,一百度一大堆,自行百度吧~ 环境说明: 系统环境centos6.8 操作机 192.168.1.121 客户机 192.168.1.122 基本安装 安装gcc,用于编译pyt

自动化运维工具ansible——安装及模块管理

ansible简介 ?ansible是新出现的自动化运维工具,基于Python开发,集合了众多运维工具(puppet.cfengine.chef.func.fabric)的优点,实现了批量系统配置.批量程序部署.批量运行命令等功能. ?ansible是基于模块工作的,本身没有批量部署的能力.真正具有批量部署的是ansible所运行的模块,ansible只是提供一种框架.主要包括:(1).连接插件connection plugins:负责和被监控端实现通信:(2).host inventory:指

自动化运维工具ansible详细介绍以模块的使用

1.anisble 简介anisble 是一款自动化运维工具,基于Python开发,集合了众多运维工具(puppet.chef.func.fabric)的优点,实现了批量系统配置.批量程序部署.批量运行命令等功能.ansible只是提供一种框架.主要包括:(1)连接插件:负责和被监控端实现通信:(2)host inventory :指定操作的主机,是一个配置文件里面定义监控的主机(3)各种模块核心模块,command 模块,自定义模块.(4)借助于插件完成记录日志邮件等功能:(5)playboo

自动化运维工具Ansible详细部署 (转载)

自动化运维工具Ansible详细部署 标签:ansible 原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 .作者信息和本声明.否则将追究法律责任.http://sofar.blog.51cto.com/353572/1579894 ========================================================================================== 一.基础介绍 ===========================

自动化运维工具——ansible详解案例分享

自动化运维工具--ansible详解案例分享(一)目录ansible 简介ansible 是什么?ansible 特点ansible 架构图ansible 任务执行ansible 任务执行模式ansible 执行流程ansible 命令执行过程ansible 配置详解ansible 安装方式使用 pip(python的包管理模块)安装使用 yum 安装ansible 程序结构ansible配置文件查找顺序ansible配置文件ansuble主机清单ansible 常用命令ansible 命令集a

3.1 自动化运维工具ansible

自动化运维工具ansible 运维自动化发展历程及技术应用 Iaas 基础设施即服务Pass 平台服务SaaS 软件即服务 云计算工程师核心职能 Linux运维工程师职能划分 自动化动维应用场景 文件传输命令执行 应用部署配置管理任务流编排 企业实际应用场景分析 1 Dev开发环境 使用者:程序员功能:程序员开发软件,测试BUG的环境管理者:程序员123 2 测试环境 使用者:QA测试工程师功能:测试经过Dev环境测试通过的软件的功能管理者:运维说明:测试环境往往有多套,测试环境满足测试功能即可

自动化运维工具-Ansible基础

目录 自动化运维工具-Ansible基础 自动化运维的含义 Ansible 基础及安装 Ansible的架构 Ansible的执行流程 ansible配置文件 ansible Inventory(主机清单文件) Ansible ad-hoc ansible常用模块 实战 自动化运维工具-Ansible基础 自动化运维的含义 1.手动运维时代 2.自动化运维时代 3.自动化运维工具给运维带来的好处 Ansible 基础及安装 1.什么是Ansible Ansible是一个自动化统一配置管理工具 2

自动化运维工具Ansible实战(一)安装部署

1,基本介绍 ansible是新出现的自动化运维工具,基于Python开发,集合了众多运维工具(puppet.cfengine.chef.func.fabric)的优点,实现了批量系统配置.批量程序部署.批量运行命令等功能. ansible是基于模块工作的,本身没有批量部署的能力.真正具有批量部署的是ansible所运行的模块,ansible只是提供一种框架.主要包括: (1).连接插件connection plugins:负责和被监控端实现通信: (2).host inventory:指定操作