Ansible的安装与基础命令的使用

Ansible

Ansible 是一个开源的自动化工具,用于配置管理、应用部署和任务自动化。它由 Michael DeHaan 于 2012 年创建,后来被 Red Hat 收购。Ansible 的设计理念是简单易用,不需要在受管节点上安装任何代理软件,它通过 SSH(Secure Shell)来执行任务。

Ansible 的安装

注控制端为192.168.20.60,被控端为192.168.20.10和192.168.20.20

yum install -y epel-release	
yum install -y ansible

在这里插入图片描述
安装完成,修改配置文件

vim /etc/ansible/hosts

在最底下添加
[web1]
192.168.20.10
[web2]
192.168.20.20
在这里插入图片描述
在控制端生成SSH密钥

yum install -y sshpass
ssh-keygen -t rsa -P '' -f ~/.ssh/id_rsa
sshpass -p '123' ssh-copy-id -o StrictHostKeyChecking=no root@192.168.20.10
sshpass -p '123' ssh-copy-id -o StrictHostKeyChecking=no root@192.168.20.20

在这里插入图片描述
使用

#使用命令查看控制端和服务端是否联通
ansible web1 -m ping 
ansible web2 -m ping 

在这里插入图片描述

Ansible 基础模块的使用

1.command模块
在远程主机执行命令,不支持管道,重定向等shell的特性。

ansible web1 -m command -a 'ls /'

在这里插入图片描述

ansible web1 -m command -a 'cat /etc/passwd'

在这里插入图片描述
2.shell模块
在远程主机执行命令,相当于调用远程主机的shell进程,然后在该shell下打开一个子shell运行命令持管道符号等功能
例如

ansible web1 -m shell -a 'echo test web1 >  /opt/test.txt'
ansible web1 -m shell -a 'cat /opt/test.txt '

在这里插入图片描述

ansible web1 -m shell -a  'echo $(ifconfig ens33|awk "NR==2 {print $2}")'

在这里插入图片描述
3.cron模块

ansible web2 -m cron -a 'minute=""      job=""             name=" " '# 设置时间     # job指定命令路径     #任务名字
ansible web1 -m cron -a 'minute="*/1" job="/bin/echo test1" name="test1" 

每分钟echo一条test1
在这里插入图片描述

在这里插入图片描述

ansible web1 -m cron -a 'name="test1" state=absent'

在这里插入图片描述
在这里插入图片描述
定时任务已经被删除了

4.user模块
常用的参数:
name:用户名,必选参数
state=present|absent:创建账号或者删除账号,present表示创建,absent表示删除
system=yes|no:是否为系统账号
uid:用户uid
group:用户基本组
groups: 用户所属附加组
shell:默认使用的shell
create_home=yse|no: 是否创建家目录
password:用户的密码,建议使用加密后的字符串
remove=yes|no:当state=absent时,是否删除用户的家目录

创建有个名字为test1的用户

ansible web1 -m user -a 'name="test1"'

在这里插入图片描述
可以看到test1 用户的UID号是1001家目录是/home/test1

在这里插入图片描述

 cat /etc/passwd | awk -F: '{print $1}'

在这里插入图片描述

删除用户test1不删除家目录

ansible web1 -m user 'name="test1" state="absent"'

在这里插入图片描述
在这里插入图片描述
test1用户已经被删除了但是用火狐的家目录并没有被删除
在这里插入图片描述
创建test2用户

ansible web1 -m  user  -a 'name="test2"'

在这里插入图片描述
在这里插入图片描述
删除test2并且删除test2的家目录

ansible web1 -m user -a 'name="test2"  state="absent"  remove="yes" '

在这里插入图片描述

在这里插入图片描述
删除成功
5.group模块
创建名字为mysql的组

ansible web1 -m group -a 'name=mysql '

在这里插入图片描述
向创建的组中添加用户

ansible web1 -m user -a 'name=test3 uid=1002 system=yes group=mysql'

在这里插入图片描述
6.copy模块
用于复制指定主机文件到远程主机的
常用的参数:
dest:指出复制文件的目标及位置,使用绝对路径,如果源是目录,指目标也要是目录,如果目标文件已经存在会覆盖原有的内容
src:指出源文件的路径,可以使用相对路径或绝对路径,支持直接指定目录,如果源是目录则目标也要是目录
mode:指出复制时,目标文件的权限
owner:指出复制时,目标文件的属主
group:指出复制时,目标文件的属组
content:指出复制到目标主机上的内容,不能与src一起使用
在这里插入图片描述
我要将PE工具箱这个文件远程传输给web1组

ansble web1 -m copy -a 'src=/opt/PE工具箱V2.3.zip dest=opt mode=644'

在这里插入图片描述
在这里插入图片描述

7.file模块
设置文件属性
创建文件

ansible web1 -m file 	'path=/opt/test2   state=touch'

在这里插入图片描述
在这里插入图片描述
删除文件

ansible web1 -m file  -a 'path=opt/PE工具箱V2.3.zip state=absent'

在这里插入图片描述
在这里插入图片描述
删除成功

8.hostname 模块
可以更改主机名字

将主机名字改成hostweb1

ansible web1 -m hostname  -a 'name=hostweb1'

在这里插入图片描述

在这里插入图片描述
9.ping 模块
检测远程主机的连通性

ansible web1 -m ping 

在这里插入图片描述

ansible all -m ping 

在这里插入图片描述
10.yum模块
安装软件

ansible web1 -m yum -a 'name=php'

在这里插入图片描述

在这里插入图片描述
安装成功

11service/systemd模块
启动服务

 ansible web1 -m service -a ' name=httpd  state=started'

在这里插入图片描述
查看服务器状态

ansible web1 -a 'systemctl status httpd'	

在这里插入图片描述

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

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

相关文章

牛客热题:单链表排序

📟作者主页:慢热的陕西人 🌴专栏链接:力扣刷题日记 📣欢迎各位大佬👍点赞🔥关注🚓收藏,🍉留言 文章目录 牛客热题:单链表排序题目链接方法一&…

软件测试与管理-白盒测试-逻辑覆盖法例题

目录 知识点: 例题 : 知识点: 语句覆盖:设计足够多的测试用例,使得被测试程序中的“ 每条可执行语句至少被执行一次” 优点:可通过源码观察直观地得到测试用例,无须细分每个判定表达式。缺点&am…

C++例题:大数运算---字符串相加(使用数字字符串来模拟竖式计算)

1.代码速览 class Solution2 { public:string addStrings(string num1, string num2){//end1和end1是下标int end1 num1.size() - 1;int end2 num2.size() - 1;string str;//下标(指针)从后向前走,走到头才可以结束,所以是end>0int next 0;while (end1 > 0 || end2 &…

添加自定义内容致远oa门户

修改门户内容 甲方需要再主页添加按钮,其实也是可以的,这个配置还不好搞,在后端进行了配置开发

微积分 --- 偏导数,方向导数与梯度(二)

方向导数 上图为一温度图,所反映的是加利福利亚洲和内华达州在十月的一天下午三点的温度。其中,图中的每一点都是温度T关于x,y的函数,即T(x,y)。对于图中的Reno市而言,沿着x方向的偏导反映的是温度沿着x方向,即沿着东方…

Docker 的网络实现

简介 标准的 Docker 支持以下 4 类网络模式: 1)host 模式:使用 --nethost 指定 2)container 模式:使用–netcontainer:NAME_or_ID 指定 3)none模式:使用 --netnone 指定 4)bridge 模…

19 内核开发-内核源码编译

19 内核开发-内核源码编译 (1)开始准备 安装好virtual box ubuntu 系统后,即可下载内核代码,进行编译 历史内核源码地址:https://mirrors.tuna.tsinghua.edu.cn/kernel/v5.x/ 下载 linux-5.10.102.tar.gz 的包,可以使用wget 命令 创建编译目…

Java二维码、条码生成及解码工具类

功能描述 生成二维码、条码解码使用谷歌的zxing依赖 引入依赖 <dependency><groupId>com.google.zxing</groupId><artifactId>core</artifactId><version>3.4.1</version> </dependency><dependency><groupId>…

帆软报表9.0连接达梦数据库

一、将驱动复制到帆软安装目录下 二、配置数据库连接 注意&#xff1a;dm.jdbc.driver.DmDriver是直接在文本框输入的 进行以上两部就能连接达梦数据库了

接口自动化测试之-requests模块详解

一、requests背景 Requests 继承了urllib2的所有特性。Requests支持HTTP连接保持和连接池&#xff0c;支持使用cookie保持会话&#xff0c;支持文件上传&#xff0c;支持自动确定响应内容的编码&#xff0c;支持国际化的 URL 和 POST 数据自动编码。 二、requests安装 利用p…

(二)JSP教程——taglib指令

创建标签文件 首先创建一个Web项目&#xff0c;在webapp/WEB-INF目录下创建一个tags文件夹 在tags文件夹中创建一个oddNumberSum.tag文件&#xff0c;Tag文件时扩展名为.tag的文本文件&#xff0c;其结构和JSP文件非常相似&#xff0c;该文件的目录结构如图所示 创建Tag文件的…

SOLIDWORKS Electrical电气智能零部件的运用

电气2D向电气3D转型&#xff0c;3D模型无疑是重中之重&#xff0c;精准、正确的3D模型有利于电线长度、空间大小、耗材的计算。而线槽、导轨因为要根据实际情况裁剪&#xff0c;所以即使同一规格的线槽、导轨&#xff0c;在装配时也得根据实际情况&#xff0c;修改长度&#xf…