自动化运维之ansible服务部署(代码片段)

author author     2022-12-19     364

关键词:

Ansible简介

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

Ansible应用领域

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

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

Ansible功能特性

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

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

系统环境

主机 操作系统 IP地址
Ansible Server Centos 7.3 X86_64 192.168.96.15
Client1 Centos 7.3 X86_64 192.168.96.23
Client2 Centos 7.3 X86_64 192.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/

技术分享图片

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 [email protected]
The key‘s randomart image is:
+---[RSA 2048]----+
|  ..=o+o**B+. .  |
| . *.o =BB*= o   |
|. . o [email protected]++    |
|.     ..+ +oo.   |
|o    . .S   o    |
|o.    ..         |
|E.   .  .        |
|      ..         |
|      ..         |
+----[SHA256]-----+

技术分享图片

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

cd /root/.ssh

ssh-copy-id [email protected]
yes----->输入对方root密码--->

ssh-copy-id [email protected]
yes----->输入对方root密码--->

技术分享图片

3.启用ssh代理

ssh-agent bash
ssh-add

技术分享图片

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


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

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

ansible all -m ping
技术分享图片

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

ansible webserver -m command -a ‘date‘

技术分享图片

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

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

技术分享图片

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

ansible webserver -a ‘crontab -l‘
技术分享图片

走进自动化运维之ansible服务部署,附带(参数及模块)详解!(代码片段)

何为Ansible:简单的自动化运维管理工具,不需要配置代理工具,基于Python研发。Ansible是基于模块工作的,本身没有批量部署的能力。真正具有批量部署的是ansible所运行的模块,ansible只是提供一种框架。自动化运维工具“三剑... 查看详情

自动化运维之ansible-安装部署与基础命令篇(代码片段)

...署程序、配置系统等功能。二、安装部署Ansible服务Ansible自动化运维环境由控制主机与被管理主机组成,由于Ansible是基于SSH协议进行通信的,所以控制主机安装Ansible软件后不需要重启或允许任何程序,被管理主机也不需要安装... 查看详情

安装部署自动化运维之ansible(代码片段)

...行或下发配置,无需部署任何客户端代理软件,从而使得自动化环境部署变得更加简单。可同时支持多台主机并行管理,使得管理主机更加便捷。Ansible核心组件ansible可以看做是一种基于模块进行工作的框架结构,批量部署能力... 查看详情

ansible自动化运维之ansible入门及简单部署(代码片段)

AnsibleAnsible简介Ansible特点概念解释Ansible使用过程中的角色Ansible通信机制Ansible应用场景Ansible工作机制Ansible的目录结构部署环境Ansible部署添加远程主机Ansible简介常见的部署管理工具有Chef、Puppet、Ansible、SaltStack、Fabric。Ansible发... 查看详情

自动化运维之ansible(代码片段)

...行或下发配置,无需部署任何客户端代理软件,从而使得自动化环境部署变得更加简单。可同时支持多台主机并行管理,使得管理主机更加便捷。Ansible核心组件Ansible可以看作是一种基于模块进行工作的框架结构,批量部署能力... 查看详情

自动化运维之ansible的安装部署与命令模块(代码片段)

Ansible简介Ansible是新出现的自动化运维工具,基于Python开发,集合了众多运维工具(puppet、cfengine、chef、func、fabric)的优点,实现了批量系统配置、批量程序部署、批量运行命令等功能。ansible是基于模块工作的,本身没有批量... 查看详情

自动化运维之ansible剑客参上(代码片段)

自动化运维之AnsibleAsible概述与核心组件Ansible是新出现的自动化运维工具,基于Python开发,集合了众多运维工具(puppet、cfengine、chef、func、fabric)的优点,实现了批量系统配置、批量程序部署、批量运行命令等功能。Ansible可以... 查看详情

自动化运维之ansible安装及命令使用(代码片段)

Ansible介绍ansible是新出现的自动化运维工具,基于Python开发,集合了众多运维工具(puppet、chef、func、fabric)的优点,实现了批量系统配置、批量程序部署、批量运行命令等功能。ansible是基于paramiko开发的,并且基于模块化工作,... 查看详情

自动化运维之ansible概述及ansible部署|(持续更新中)(代码片段)

...旧按照传统方式进行维护使得工作效率低下。这时,部署自动化运维就可以尽可能安全,高效地完成这些工作。一般会把自动化运维工具划分为两类:一类是需要使用代理工具的,也就是基于专用的Agent程序来完成管理功能,如... 查看详情

ansible自动化运维之配置清单inventory(代码片段)

Ansible配置清单InventoryAnsible部署Inventory简介Ansible配置文件的优先级Ansible命令常用参数演示环境Anisble参数使用简单示例构建Anisble清单ansible命令指定清单的正则表达式Ansible配置文件参数详解Ansible部署简单介绍、安装、简单部署可... 查看详情

自动化运维之ansible模块篇(代码片段)

Ansible简介一般会把自动化运维工具划分为两类:一类是是需要使用代理工具的,也是就基于专用的Agent程序来王朝管理功能,如:Puppet、Func、Zabbix等:另外一类是不需要代理工具的,可以直接基于SSH服务来完成管理功能,如Ansib... 查看详情

自动化运维之ansible(代码片段)

...按照传统方式进行推护会使得工作效率低下。这时,部署自动化运维就可以尽可能安全、高效地完成这些工作。一般会把自动化运维工具划分为两类:一类是需要使用代理工具的,也就是基于专用的Agent程序来完成管理功能,如:... 查看详情

ansible自动化运维之playbook详解及体验(代码片段)

playbook-介绍:playbooks是一个不同于使用Ansible命令行执行方式的模式,其功能更强大灵活。简单来说,playbook是一个非常简单的配置管理和多主机部署系统,不同于任何已经存在的模式,可作为一个适合部署复杂应用程序的基础。... 查看详情

自动化运维之ansible应用基础模块(超详细)(代码片段)

Ansible是一种基于模块进行工作的框架结构。批量部署能力就是由Ansible所运行的模块实现的。简而言之Ansible是基于“模块”完成各种“任务”的。Ansible常用的核心模块模块的基本语法如下ansible[主机][-m模块][-aargs]//命令格式#ansib... 查看详情

自动化运维之ansible安装与模块应用(代码片段)

自动化运维之AnsibleAnsible概述由于互联网快速展导致产品更新换代速度逐渐加快,运维人员每天都要进行大量维护操作,人就按照传统方式进行维护会使工作效率低下,只是,部署自动化运维就尽可能安全,高校的完成工作一般... 查看详情

心领神会--自动化运维之ansible的核心概念,安装配置ansible并学会使用其常见模块。(代码片段)

自动化运维概述:现如今随着互联网的高速发展,传统运维方式效率太过低下,部署自动化运维可以安全高效的完成维护工作,成为当下运维的主要方式。一般会把自动化运维工具划分为两类:一类是需要使用代理工具的,也就... 查看详情

自动化运维之ansible基础元素介绍(代码片段)

Inventory(主机清单)Ansible为了更加便捷的管理主机,在主机清单中将被管理主机进行分组命名,默认的主机清单为/etc/ansible/hosts文件。主机清单可以设置为多个,也可以通过DynamicInventory动态生成。Inventory文件以中括号中的字符标... 查看详情

自动化运维之puppet服务部署(代码片段)

...代码,它便会自动的完成所有的工作,这批工具就是运维自动化puppet,它可以针对多台服务器进行 查看详情