当前位置: 首页 > news >正文

自动化运维之Ansible服务部署

Ansible简介

Ansible使用Python语言开发,巧妙的设计、实现了简单易用、功能强大的自动化管理工具。目前它已经广泛应用于各种规模、各个领域的企业。

Ansible应用领域

Ansible的编排引擎可以出色地完成配置管理、流程控制、资源部署等工作,与其他IT自动化产品比较,Ansible提供了一种不需要安装客户端软件、管理简便、功能强大的基础架构配置、维护工具。

  • 安装部署过程特别简单,学习曲线很平坦;
  • 管理主机便捷,支持多台主机并行管理;
  • 避免在被管理主机上安装客户代理,打开额外端口,采用无代理方式,只是利用现在的ssh后台进程;
  • 用于描述基础架构的语言无论对机器还是对人都是友好的;
  • 关注安全,很容易对执行的内容进行审计、评估、重写;
  • 能够立即管理远程被管理主机,不需要预先安装任何软件;
  • 不仅仅支持Python,可运行使用任何动态语言开发的模块;
  • 非root账号也可以使用;
  • 成为最简单、易用的IT自动化系统

Ansible功能特性

从功能上实现了以下目标:

  • 应用代码自动化部署
  • 系统管理配置自动化
  • 支持持续交付自动化
  • 支持云计算、大数据平台(如AWS、OpenStack、CloudStack、VMWare等环境)
  • 轻量级,无需在客户端安装agent,更新时只需在控制机上进行一次更新
  • 批量任务执行可以写成脚本,不用分发到远程主机就可以执行
  • 使用Python编写,维护更简单
  • 支持非root用户管理操作,支持sudo

系统环境

主机操作系统IP地址
Ansible ServerCentos 7.3 X86_64192.168.96.15
Client1Centos 7.3 X86_64192.168.96.23
Client2Centos 7.3 X86_64192.168.96.24

一、安装Ansible

1.关闭防火墙及Selinux

setenforce 0
systemctl stop firewalld

2.安装repo源

yum -y install epel-release

3.安装rabbitmq-server软件包

yum -y install ansible tree

4.查看ansible目录结构

tree /etc/ansible/

自动化运维之Ansible服务部署

5.编辑主机及组的配置

vim /etc/ansible/hosts

#新增主机
[webserver]
192.168.96.23
192.168.96.24
[mysql]
192.168.96.24

二、配置Linux被控机ssh无密码访问

1.生成一对密钥

ssh-keygen -t rsa

Generating public/private rsa key pair.
Enter file in which to save the key (/root/.ssh/id_rsa):
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /root/.ssh/id_rsa.
Your public key has been saved in /root/.ssh/id_rsa.pub.
The key fingerprint is:
SHA256:rkN0zcCPMUsNd/JcugxgF2z5DGCbQtMVCqDl4ZSg6rA root@client
The key's randomart image is:
+---[RSA 2048]----+
|  ..=o+o**B+. .  |
| . *.o =BB*= o   |
|. . o ..+@.++    |
|.     ..+ +oo.   |
|o    . .S   o    |
|o.    ..         |
|E.   .  .        |
|      ..         |
|      ..         |
+----[SHA256]-----+

自动化运维之Ansible服务部署

2.发送公钥至被控制机上

cd /root/.ssh

ssh-copy-id root@192.168.96.23
yes----->输入对方root密码--->

ssh-copy-id root@192.168.96.24
yes----->输入对方root密码--->

自动化运维之Ansible服务部署

3.启用ssh代理

ssh-agent bash
ssh-add

自动化运维之Ansible服务部署

至此,ansible管理端已经安装完毕了


三、对被管节点批量执行操作

1.对所有被管节点连通性进行测试

ansible all -m ping
自动化运维之Ansible服务部署

2.对webserver组所有主机执行date命令

ansible webserver -m command -a 'date'

自动化运维之Ansible服务部署

3.对webserver组所有主机执行添加计划性任务

ansible webserver -m cron -a 'minute="*/10" job="/bin/echo hello" name="test cron job"'

自动化运维之Ansible服务部署

4.对webserver组所有主机执行查询计划性任务

ansible webserver -a 'crontab -l'
自动化运维之Ansible服务部署

转载于:https://blog.51cto.com/10316297/2153100

相关文章:

  • 并发下线程池的最佳数量计算
  • SpringMVC+MYBatis企业应用实战笔记
  • HTML5本地存储使用详解
  • 95后博士入职达摩院,14岁上大学,成阿里史上最年轻科学家
  • [Node.js]连接mongodb
  • 数据分析——四种大数据分析方法
  • Maven POM详解
  • 技术指导实践指南
  • @EnableAsync和@Async开始异步任务支持
  • Jenkins+Kubernetes CI/CD
  • YARN中内存的设置
  • 责任链模式 以及在Android开发中的运用
  • 学习打卡-2018/08/07
  • Micro Service Architecture — Timeout
  • 通用清除浮动方式
  • 【Redis学习笔记】2018-06-28 redis命令源码学习1
  • Android开发 - 掌握ConstraintLayout(四)创建基本约束
  • ES学习笔记(10)--ES6中的函数和数组补漏
  • flask接收请求并推入栈
  • java B2B2C 源码多租户电子商城系统-Kafka基本使用介绍
  • Laravel Mix运行时关于es2015报错解决方案
  • node入门
  • Spring技术内幕笔记(2):Spring MVC 与 Web
  • use Google search engine
  • Vue2.x学习三:事件处理生命周期钩子
  • vue-cli3搭建项目
  • WinRAR存在严重的安全漏洞影响5亿用户
  • 记一次用 NodeJs 实现模拟登录的思路
  • 蓝海存储开关机注意事项总结
  • 树莓派 - 使用须知
  • 云大使推广中的常见热门问题
  • hi-nginx-1.3.4编译安装
  • ​【C语言】长篇详解,字符系列篇3-----strstr,strtok,strerror字符串函数的使用【图文详解​】
  • ​LeetCode解法汇总2304. 网格中的最小路径代价
  • ​Linux Ubuntu环境下使用docker构建spark运行环境(超级详细)
  • #NOIP 2014# day.1 T2 联合权值
  • #pragma once
  • (1)STL算法之遍历容器
  • (C++17) std算法之执行策略 execution
  • (二) Windows 下 Sublime Text 3 安装离线插件 Anaconda
  • (附源码)springboot 房产中介系统 毕业设计 312341
  • (入门自用)--C++--抽象类--多态原理--虚表--1020
  • (十五)devops持续集成开发——jenkins流水线构建策略配置及触发器的使用
  • (十五)Flask覆写wsgi_app函数实现自定义中间件
  • (一)RocketMQ初步认识
  • (转)【Hibernate总结系列】使用举例
  • (轉貼) 資訊相關科系畢業的學生,未來會是什麼樣子?(Misc)
  • ***检测工具之RKHunter AIDE
  • *2 echo、printf、mkdir命令的应用
  • .NET C# 使用 SetWindowsHookEx 监听鼠标或键盘消息以及此方法的坑
  • .NET Core引入性能分析引导优化
  • .net mvc部分视图
  • .NET/C# 中你可以在代码中写多个 Main 函数,然后按需要随时切换
  • .net流程开发平台的一些难点(1)
  • .NET与java的MVC模式(2):struts2核心工作流程与原理