【服务器部署篇】Linux下Ansible安装和配置

作者介绍:本人笔名姑苏老陈,从事JAVA开发工作十多年了,带过刚毕业的实习生,也带过技术团队。最近有个朋友的表弟,马上要大学毕业了,想从事JAVA开发工作,但不知道从何处入手。于是,产生了写一个博客专栏想法,介绍当前互联网企业JAVA项目开发如何快速入门。

本文收录于《30天企业JAVA项目开发实战入门》专栏,该专栏内容以当前互联网软件企业中的项目实战为线索,介绍企业JAVA项目开发中涉及到的开发流程、技术、工具、规范要求等等。帮助想从事JAVA开发的大学生或新人,更快、更好的入门JAVA后端开发工作。

文章目录

    • 一、前言
    • 二、安装
    • 三、配置
    • 四、总结

一、前言

本文介绍在Linux环境下如何使用yum方式安装ansible。

  • ansible是什么?

    ansible 是一个基于python 开发的自动化运维工具, 其功能实现基于ssh远程连接服务。它可以实现批量系统配置,批量软件部署,批量文件拷贝,批量运行命令等功能。

    官网地址:https://www.ansible.com/

  • ansible能做什么?

    ansible可以帮助运维人员完成一些批量任务,或者完成一些需要经常重复的工作。
    比如:同时在100台服务器上安装Nginx服务,并在安装后启动服务。
    比如:将某个文件一次性拷贝到100台服务器上。
    比如:每当有新服务器加入工作环境时,运维人员都要为新服务器部署某个服务,也就是说运维人员需要经常重复的完成相同的工作。

  • ansible有哪些特点?

    ansible不需要单独安装客户端,仅需要在主控制端安装即可。
    ansible不需要启动任何服务,仅需安装对应工具即可。
    ansible依赖大量的python模块来实现批量管理。
    ansible配置文件/etc/ansible/ansible.cfg。

Ansible的架构图如下:
在这里插入图片描述

二、安装

首先,配置epel源文件信息;

vim /etc/yum.repos.d/epel7.repo
[Packages]
name=Packages
baseurl=https://mirrors.tuna.tsinghua.edu.cn/epel/7/x86_64/
gpgcheck=0

在这里插入图片描述
之后,开始使用yum方式安装ansible;

yum install ansible -y

在这里插入图片描述
安装完成后,查看ansible的版本信息;

ansible --version

在这里插入图片描述
之后 ,查看ansible配置文件目录
在这里插入图片描述

三、配置

ansible默认基于ssh登陆,在对远程主机操作之前,需要对主机进行认证。认证方式有密码认证和公私钥密钥认证两种方式。出于安全性的考虑,这里推荐使用公私钥密钥认证方式。

下面介绍如何配置密钥认证。

首先,需要指定要控制的远程主机IP。

vi /etc/ansible/host

在这里插入图片描述

之后,查看已指定的远程主机;

ansible all --list-hosts

在这里插入图片描述
之后,使用ssh-keygen生成随机密钥对。(PS:ssh-keygen是linux下密钥管理工具。)

ssh-keygen -N "" -b 4096 -t rsa -C "tian" -f /root/.ssh/stanley.rsa

在这里插入图片描述
密钥生成后,查看私钥信息;

cat /root/.ssh/stanley.rsa

在这里插入图片描述
之后,查看公钥信息;

cat /root/.ssh/stanley.rsa.pub

在这里插入图片描述
之后,把公钥发送给远程服务器上;

ssh-copy-id -i /root/.ssh/stanley.rsa root@远程服务器IP

在这里插入图片描述

之后,切换到你要控制的远程服务器上,查看公钥信息是否发送过来了。

cat /root/.ssh/authorized_keys

在这里插入图片描述

之后,再切换回当前服务器,通过ansible访问登录远程服务器;

ssh -i /root/.ssh/stanley.rsa root@远程服务器IP

在这里插入图片描述

最后,当远程服务器操作完成后,可以使用exit命令退出远程服务器,切换回当前服务器;
在这里插入图片描述
至此,Ansible安装和配置完成。

四、总结

以上介绍了如何在Linux环境使用yum方式安装和配置ansible。另外,关于ansible的使用,也简单介绍一下。

  • ansible的命令如何使用?

    语法格式:
    ansible <pattern_goes_here> -m <module_name> -a
    也就是:
    ansible 匹配模式 -m 模块 -a ‘需要执行的内容’

    命令详解:
    匹配模式:即哪些机器生效 (可以是某一台, 或某一组, 或all) , 默认模块为command , 执行常规的shell命令.

    -m name, --module-name=name: 指定执行使用的模块。
    -u username, --user=username: 指定远程主机以username运行命令。
    -s, --sudo: 相当于linux系统下的sudo命令。
    -usudo_username, --sudo-user=sudo_username: 使用sudo, 相当于linux系统下的sudo命令。
    -C, --check: 只检查不实际执行。
    -e, 即extra_vars: 引用外部参数。
    -i, 即inventory: 指定仓库列表, 默认/etc/ansible/hosts。
    –list-host: 列出执行主机列。

  • ansible常用的模块有哪些?

    command模块和shell模块: 用于在各被管理节点运行指定的命令。其中,shell和command的区别,shell模块可以特殊字符,而command是不支持。
    ping 模块: 检查指定节点机器是否还能连通,用法很简单,不涉及参数,主机如果在线,则回复pong 。
    raw 模块: 执行原始的命令,而不是通过模块子系统。
    yum 模块: RedHat和CentOS的软件包安装和管理工具。
    apt 模块: Ubuntu/Debian的软件包安装和管理工具。
    pip 模块 : 用于管理Python库依赖项,为了使用pip模块,必须提供参数name或者requirements。
    synchronize 模块: 使用rsync同步文件,将主控方目录推送到指定节点的目录下。
    template 模块: 基于模板方式生成一个文件复制到远程主机(template使用Jinjia2格式作为文件模版,进行文档内变量的替换的模块。
    copy 模块: 在远程主机执行复制操作文件。
    user 模块 与 group 模块: user模块是请求的是useradd, userdel, usermod三个指令,goup模块请求的是groupadd, groupdel, groupmod 三个指令。
    service 模块: 用于管理远程主机的服务。
    get_url 模块: 该模块主要用于从http、ftp、https服务器上下载文件(类似于wget)。
    fetch 模块: 它用于从远程机器获取文件,并将其本地存储在由主机名组织的文件树中。
    file 模块: 主要用于远程主机上的文件操作。
    lineinfile 模块: 远程主机上的文件编辑模块
    unarchive模块: 用于解压文件。
    hostname模块: 修改远程主机名的模块。
    script模块: 在远程主机上执行主控端的脚本,相当于scp+shell组合。
    stat模块: 获取远程文件的状态信息,包括atime,ctime,mtime,md5,uid,gid等信息。
    cron模块: 远程主机crontab配置。
    mount模块: 挂载文件系统。
    find模块: 帮助在被管理主机中查找符合条件的文件,就像 find 命令一样。
    selinux模块:远程管理受控节点的selinux的模块。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/643755.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

用这个方法,让你轻松从零搭建产品知识库

在市场竞争日益激烈的今天&#xff0c;一个系统化的产品知识库对于企业的重要性不言而喻。它不仅可以帮助团队成员快速掌握产品信息&#xff0c;提升服务效率&#xff0c;还能为客户提供及时准确的产品支持。那么&#xff0c;怎样才能从零开始&#xff0c;轻松搭建起一个合适的…

WebServer项目介绍文章【四叶专属】

Linux项目实战C轻量级Web服务器源码分析TinyWebServer 书接上文&#xff0c;学习开源项目的笔记没想到居然有不少阅读量&#xff0c;后面结合另一个前端开源项目简单做了点修改&#xff0c;没想到居然有需要的同学&#xff0c;那么我就专门为四叶开一篇文章吧&#xff0c;【源码…

探索未来的区块链DApp应用,畅享数字世界的无限可能

随着区块链技术的飞速发展&#xff0c;分布式应用&#xff08;DApp&#xff09;正成为数字经济中的一股强劲力量。DApp以其去中心化、透明公正的特点&#xff0c;为用户带来了全新的数字体验&#xff0c;开创了数字经济的新潮流。作为一家专业的区块链DApp应用开发公司&#xf…

BERT-CRF 微调中文 NER 模型

文章目录 数据集模型定义数据集预处理BIO 标签转换自定义Dataset拆分训练、测试集 训练验证、测试指标计算推理其它相关参数CRF 模块 数据集 CLUE-NER数据集&#xff1a;https://github.com/CLUEbenchmark/CLUENER2020/blob/master/pytorch_version/README.md 模型定义 imp…

VulnHub靶机 DC-8 打靶实战 详细渗透过程

VulnHub靶机 DC-8 打靶 详细渗透过程 目录 VulnHub靶机 DC-8 打靶 详细渗透过程一、将靶机配置导入到虚拟机当中二、渗透测试流程主机发现端口扫描Web渗透SQL注入登录后台反弹shell提权 一、将靶机配置导入到虚拟机当中 靶机地址&#xff1a; https://www.vulnhub.com/entry/…

人工智能时代的关键技术:深入探索向量数据库及其在AI中的应用

文章目录 1. 理解向量数据库&#xff1a;二维模型示例2. 向量数据库中的数据存储与检索3. 向量数据库如何工作&#xff1f;4. 向量数据库如何知道哪些向量相似&#xff1f; 在人工智能技术日益成熟的当下&#xff0c;向量数据库作为处理和检索高维数据的关键工具&#xff0c;对…

使用新版ESLint,搭配Prettier使用的配置方式

概述 ESLint重大更新(9.0.0版本)后,将不再支持非扁平化配置文件,并且移除了与Prettier冲突的规则,也就是说与Prettier搭配使用,不再需要使用插件“eslint-config-prettier”来处理冲突问题。 注:使用新版的前提条件是Node.js版本必须是18.18.0、20.9.0,或者是>=21.1…

鸿蒙官网学习3

鸿蒙官网学习3 每日小提示项目的模块类型跨设备预览调试阶段应用的替换方式有两种 打开老的demo工程报错UIAbility 每日小提示 项目的模块类型 moduleType分为三种&#xff0c;只有1&#xff0c;2的模块支持直接调试和运行 entryfeaturehar 跨设备预览 需要手动在config.j…

Tensorflow2.0笔记 - BatchNormalization

本笔记记录BN层相关的代码。关于BatchNormalization&#xff0c;可以自行百度&#xff0c;或参考这里&#xff1a; 一文读懂Batch Normalization - 知乎神经网络基础系列&#xff1a; 《深度学习中常见激活函数的原理和特点》《过拟合: dropout原理和在模型中的多种应用》深度…

代码随想录算法训练营DAY32|C++贪心算法Part.2|122.买卖股票的最佳时机II、55.跳跃游戏、45.跳跃游戏II

文章目录 122.买卖股票的最佳时机II思路CPP代码 55.跳跃游戏思路CPP代码 45.跳跃游戏II思路方法一代码改善 CPP代码 122.买卖股票的最佳时机II 力扣题目链接 文章讲解&#xff1a;122.买卖股票的最佳时机II 视频讲解&#xff1a; 状态&#xff1a;本题可以用动态规划&#xff0…

更易使用,OceanBase开发者工具 ODC 4.2.4 版本升级

亲爱的朋友们&#xff0c;大家好&#xff01;我们的ODC&#xff08;OceanBase Developer Center &#xff09;再次迎来了重要的升级V 4.2.4&#xff0c;这次我们诚意满满&#xff0c;从五个方面为大家精心打造了一个更加易用、贴心&#xff0c;且功能更强的新版本&#xff0c;相…

基础SQL DQL语句

基础查询 select * from 表名; 查询所有字段 create table emp(id int comment 编号,workno varchar(10) comment 工号,name varchar(10) comment 姓名,gender char(1) comment 性别,age tinyint unsigned comment 年龄,idcard char(18) comment 身份证号,worka…