Ansible的安装及简单使用

## Ansible的安装及简单使用 ##
一.Ubuntu安装Ansible
sudo apt update
sudo apt install ansible
#使用以下命令检查安装是否成功:
ansible --version

image-20230817175908011

二.配置Ansible
#进入配置文件目录
cd /etc/ansible/
ls

image-20230817180056715

#文件含义
ansible.cfg #ansible配置文件,默认基本不用动,全注释
hosts #主机清单文件,存放被控端主机信息, 默认指定的hosts文件

修改ansible配置

vim ansible.cfg

image-20230817180736092

把第七十一行的配置,取消注释。这一行的作用是当 Ansible 连接到新创建的虚拟机时,不会要求手动验证主机密钥,而是自动跳过验证,从而简化自动化部署过程。

添加主机列表清单

vim hosts

image-20230817181012141

#含义
第一段 #被控端主机ip
ansible_ssh_user=root #ssh中setup模块的系统变量,指定为远程主机的用户为root
ansible_ssh_pass=123 #同上,为远程主机的root的密码

[web]:主机组的名称

1. 使用ping模块检测所有主机是否存活
#执行
ansible -i hosts web -m ping

#语句含义
-i hosts web #指定我们ansible工具针对的是 hosts主机文件中的 web为我们刚才配置文件中的主机组
-m ping #-m 指定使用的模块为ping,用于检测主机,返回pong

还要注意的是,此命令执行命令的路径是/etc/ansible,所以hosts可以不指定文件目录。如果在其他文件目录下执行命令则需要加上

该配置文件的根路径。ansible -i /etc/ansiblehosts web -m ping

image-20230817181651214

2.ansible命令执行的过程说明
  • ansible会先加载配置/etc/ansible/ansible.cfg文件
  • 然后加载模块文件(如上面的ping模块)
  • ansible会将我们执行的命令或模块,生成一个临时的python的脚本文件,将这个脚本文件发送到被控端的家目录/.ansible/tmp/目录下,并授权执行
  • 执行完成后返回执行结果,并清除临时文件
3. 常用模块
1. command 模块

这个模块就是平时使用命令的习惯,比如ls、cd、pwd、cp、mv操作等等都可以实现,但是要注意的是\command模块是不支持正则及特殊符号的

并且该模块是默认附加的,也就是说。即使你不加-m command 也可以使用

#查看web组所有主机下,/root目录内容
ansible -i hosts web -m command -a "ls /root"#-a 是代表要执行的命令,相当于在所有主机上执行的

image-20230817182536488

image-20230817182705654

如图,效果是一样的。

2. shell 模块

shell模块和command模块类似,但是支持正则及特殊符号。

ansible -i /etc/ansible/hosts web -m shell -a "echo test > /home/1.txt"
ansible -i /etc/ansible/hosts web -m shell -a "cat /home/1.txt"

image-20230818093833606

3. copy模块

拷贝文件,从ansible主机上把文件发送到被控端主机上

ansible -i /etc/ansible/hosts web -m copy -a "src=/home/test_copy.txt dest=/home"
ansible -i /etc/ansible/hosts web -m shell -a "ls /home"

image-20230818095349602

image-20230818095926637

三.使用案例以及问题发现

给web组的主机安装docker

#配置安装环境
ansible -i /etc/ansible/hosts web -m shell -a "apt-get install apt-transport-https ca-certificates curl gnupg-agent software-properties-common"
#添加密钥
ansible -i /etc/ansible/hosts web -m shell -a "curl -fsSL http://mirrors.aliyun.com/docker-ce/linux/ubuntu/gpg | sudo apt-key add -"
#添加阿里云国内镜像仓库地址
ansible -i /etc/ansible/hosts web -m shell -a "add-apt-repository \"deb [arch=amd64] http://mirrors.aliyun.com/docker-ce/linux/ubuntu \$(lsb_release -cs) stable\""
#更新软件源,列出可安装版本
ansible -i /etc/ansible/hosts web -m shell -a "apt-get update"
ansible -i /etc/ansible/hosts web -m shell -a "apt-cache madison docker-ce"
#安装指定版本docker
ansible -i /etc/ansible/hosts web -m command  -a "apt-get install -y docker-ce=5:20.10.13~3-0~ubuntu-focal docker-ce-cli=5:20.10.13~3-0~ubuntu-focal"
#重启并检查安装是否成功
ansible -i /etc/ansible/hosts web -m shell  -a "systemctl restart docker && docker --version"

问题:ansible在执行shell命令的时候,如果该命令在执行的时候出现提示键入y回车继续之类的情况时,会使该命令陷入死锁。

例:假如我这一步ansible -i /etc/ansible/hosts web -m command -a "apt-get install -y docker-ce=5:20.10.133-0ubuntu-focal docker-ce-cli=5:20.10.133-0ubuntu-focal"这里采用apt-get install -y,其目的是跳过软件安装时的所以确认步骤,默认为y。如果安装时采用,apt-get install去安装docker,则会因为无法键入y而是web主机组的apt-get install命令陷入死锁,从而导致无法更新和下载其他包

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

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

相关文章

win环境安装yarn脚手架

win环境安装yarn脚手架 1、安装命令 npm install -g yarn 2、查看安装的版本 yarn --version 报错了!!! 解决方案 搜索​​ PowerShell​​,右键以管理员身份运行; 输入:​​set-ExecutionPolicy Remo…

C++CLI——5委托、事件、反射和混合非托管代码

CCLI——5委托、事件、反射和混合非托管代码 委托 C中是有函数指针的,例如:long (*pf)(int,int),声明了一个函数指针,要求获取两个int并返回一个long的任意函数。在C#中是有委托概念的,其实原理就是将函数的执行委托…

上海中考数学练一练:选择题专项练习和答案解析(1)

前不久,上海市教委发布了关于做好2024年上海市高中阶段学校招生(以下简称“中招”)报名工作的通知,初三的学子们目前已经进入到报名材料核对的环节了,也意味着2024年的中考倒计时6个月已经开始了。 那么,在…

安卓拍照扫描APP解决方案——基于深度学习的文本方向检测与校正

简介 在OCR(光学字符识别)系统中,为了提高OCR系统的性能,确保准确识别文本内容。图像预处理是一个关键的组成部分。其中,一个重要的任务是矫正文本方向。例如,在进行文字识别时,不仅需要有效地…

Js的String的replace(和replaceAll(

EcmaJavascriptJs的String的 replace( 和 replaceAll( 方法 String.prototype.replaceString.prototype.replaceAll 相同点 都是String.prototype的函数都是用于字符串替换都是两个参数第一个参数都可以是正则或字符串第二参数都可以是字符串或者回调函数, 回调会传入一个参…

32、[ShallowFBCSPNet、EEG-ITNet、EEGResNet、EEGInception]4种模型处理脑机接口-MOABB数据库+代码+结果

脑机接口基准之母—MOABB数据库介绍: 18、MOABB:BCI创新模型基准测试的群虫之心-CSDN博客 Dataset: BNCI 2014-001 Motor Imagery dataset. (BCI IV2a): https://paperswithcode.com/dataset/bci-competition-4-version-iia …

AI小蜜批量写作助手:多级指令,插件,GPTs满足不同写作需求

为什么会开发这个脚本? 爆文项目的核心是矩阵怼量 具体怎么做这里介绍很清楚了: AI爆文撸流量主保姆级教程3.0脚本写作教程(解放双手) 我在刚做爆文项目时候,都是手动操作,复制指令,组合指令…

2023 | 美团技术团队热门技术文章汇总

新年好!时光飞逝,我们告别了难忘的2023,迎来了充满希望的2024。再次感谢大家的一路相伴~~ 今天,我们整理了2023年公众号阅读量靠前的10篇技术文章,欢迎大家品阅。祝愿大家在新的一年里,幸福平安&#xff0…

[足式机器人]Part2 Dr. CAN学习笔记-动态系统建模与分析 Ch02-6频率响应与滤波器

本文仅供学习使用 本文参考: B站:DR_CAN Dr. CAN学习笔记-动态系统建模与分析 Ch02-6频率响应与滤波器 1st order system 一阶系统 低通滤波器——Loss Pass Filter

C#上位机与欧姆龙PLC的通信10----开发专用的通讯工具软件(WPF版)

1、介绍 上节开发了一个winform版的通讯测试工具,这节再搞个wpf版的,wpf是什么?请自行百度,也可以看前面的博客,WPF真入门教程,wpf的界面效果是比winform漂亮,因为wpf使用了web项目中的css样式…

国图公考:2024年上半年中小学教师资格考试(笔试)报考须知

(一)信息填报时间:2024年1月12日9:00至1月15日16:00 (二)信息确认时间:2024年1月13日9:00至1月16日16:00 (三)网上缴费时间:2024年1月13日9:00至1月17日24:00

新年福利|这款价值数万的报表工具永久免费了

随着数据资产的价值逐渐凸显,越来越多的企业会希望采用报表工具来处理数据分析,了解业务经营状况,从而辅助经营决策。不过,企业在选型报表工具的时候经常会遇到以下几个问题: 各个报表工具有很多功能和特性&#xff0c…