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

Ansible简单部署与使用

目录

  • 环境
  • 安装Ansible
    • apt install
    • markupsafe error
  • 配置Ansible
    • 创建个人目录
    • ansible.cfg
    • hosts
  • 测试Ansible
    • ping
    • 批量执行自定义命令

环境

  • Ubuntu 20.04

安装Ansible

apt install

sudo apt install ansible

markupsafe error

安装成功后,尝试运行ansible,部分环境下会有如下报错:

ubuntu@ubuntu:~$ ansible --version
Traceback (most recent call last):File "/usr/bin/ansible", line 62, in <module>import ansible.constants as CFile "/usr/lib/python3/dist-packages/ansible/constants.py", line 12, in <module>from jinja2 import TemplateFile "/usr/lib/python3/dist-packages/jinja2/__init__.py", line 33, in <module>from jinja2.environment import Environment, TemplateFile "/usr/lib/python3/dist-packages/jinja2/environment.py", line 15, in <module>from jinja2 import nodesFile "/usr/lib/python3/dist-packages/jinja2/nodes.py", line 23, in <module>from jinja2.utils import MarkupFile "/usr/lib/python3/dist-packages/jinja2/utils.py", line 656, in <module>from markupsafe import Markup, escape, soft_unicode
ImportError: cannot import name 'soft_unicode' from 'markupsafe' (/home/ubuntu/.local/lib/python3.8/site-packages/markupsafe/__init__.py)

上述报错通常是markupsafe版本不兼容导致,查看markupsafe的版本:

ubuntu@ubuntu:~$ pip show markupsafe
Name: MarkupSafe
Version: 2.1.5
Summary: Safely add untrusted strings to HTML/XML markup.
Home-page: https://palletsprojects.com/p/markupsafe/
Author:
Author-email:
License: BSD-3-Clause
Location: /home/ubuntu/.local/lib/python3.8/site-packages
Requires:
Required-by: Werkzeug

回退到2.0.1版本可以解决:

python -m pip install markupsafe==2.0.1

ansible可成功运行:

ubuntu@ubuntu:~$ ansible --version
ansible 2.9.6config file = /etc/ansible/ansible.cfgconfigured module search path = ['/home/ubuntu/.ansible/plugins/modules', '/usr/share/ansible/plugins/modules']ansible python module location = /usr/lib/python3/dist-packages/ansibleexecutable location = /usr/bin/ansiblepython version = 3.8.10 (default, Nov 22 2023, 10:22:35) [GCC 9.4.0]

配置Ansible

创建个人目录

为了不影响系统配置,可以在个人的自定义目录下运行ansible,基于个人的配置文件:

mkdir -p /home/ubuntu/mydir/ansible

ansible.cfg

拷贝系统的cfg文件到个人目录下进行修改:

cp /etc/ansible/ansible.cfg /home/ubuntu/mydir/ansible

修改cfg文件:

[defaults]
inventory      = /home/ubuntu/mydir/ansible/hosts[privilege_escalation]
become=True
become_method=sudo
become_user=root
become_ask_pass=False

hosts

拷贝系统的hosts文件到个人目录下进行修改:

cp /etc/ansible/hosts /home/ubuntu/mydir/ansible

修改hosts文件:

[my_test]
#10.5.3.202 ansible_ssh_port=22 ansible_ssh_user=test ansible_ssh_pass='123' ansible_su_pass='123'
10.5.3.202[my_test:vars]
ansible_ssh_user=test
ansible_ssh_pass="123"

测试Ansible

ping

测试受控主机的连通性:

ubuntu@ubuntu:~/mydir/ansible$ ansible my_test -m ping
10.5.3.202 | SUCCESS => {"ansible_facts": {"discovered_interpreter_python": "/usr/bin/python"},"changed": false,"ping": "pong"
}

批量执行自定义命令

常用命令

ansible my_test -m shell -a "bash xxx.sh"
ansible my_test -m copy -a "src=/home/ubuntu/xxx.sh dest=/home/test/ mode=775"
ansible my_test -m file -a "path=/home/test/xxx.sh group=test owner=test"

相关文章:

Ansible简单部署与使用

目录 环境安装Ansibleapt installmarkupsafe error 配置Ansible创建个人目录ansible.cfghosts 测试Ansibleping批量执行自定义命令 环境 Ubuntu 20.04 安装Ansible apt install sudo apt install ansiblemarkupsafe error 安装成功后&#xff0c;尝试运行ansible&#xff…...

Harmony Next charles 抓包指南

1.选择安装移动证书 代理信息如下 2.设置手机代理 手机与电脑连接同一网络&#xff0c;然后配置步骤 1 的代理 路径&#xff1a;设置-wlan-选择当前网络编辑-代理-保存 注意&#xff1a;手机配置代理后&#xff0c;目前会默认断开连接&#xff0c;需要手动再连接下 wifi 3.鸿…...

【HarmonyOS】Beta最新对外版本IDE下载和环境配置

【HarmonyOS】Beta最新对外版本IDE下载和环境配置 前言 目前华为HarmonyOS的系统版本已经从Develop Beta升级为Beta预览版&#xff0c;全面开放。再也不需要白名单限制&#xff0c;才能下载使用最新的IDE和预览最新的开放文档了。 IDE下载和安装 Beta IDE下载地址 1.根据你…...

2024年9月第2周AI资讯

阅读时间&#xff1a;3-4min 更新时间&#xff1a;2024.9.9-2024.9.13 目录 Groq推出多模态大模型LLaVA v1.5 7B AI通过重读问题可以变得更聪明 美国Weave公司发布Isaac多功能个人机器人 特斯拉机器人出租车将实现无线充电 Adobe视频编辑新时代 无人驾驶汽车超越人类 AI…...

【软件使用-MEGA】构建进化树报错

*_summary.txt报错&#xff1a; MEGA-CC 10.2.6 Molecular Evolutionary Genetics Analysis Build#: 10210527-x86_640% Reading distance matrix MEGA-CC has logged the following error:When 2024年09月13日 下午 01时32分49秒 下午Data …...

面试常见八股

JAVA篇 基础 1、自动拆箱和装箱 装箱&#xff1a;装箱是将值类型&#xff08;如int、double、struct等&#xff09;转换为object类型或任何接口类型的过程。由于object是所有类型的基类&#xff08;在.NET中&#xff09;&#xff0c;并且接口是引用类型&#xff0c;因此装箱…...

第十八章 番外 余弦相似度

余弦相似度&#xff08;Cosine Similarity&#xff09;是一种衡量两个非零向量之间角度的度量方式&#xff0c;用于评估它们之间的相似性。它的值范围从 -1 到 1&#xff0c;其中 1 表示完全相同的方向&#xff08;即向量完全相同&#xff09;&#xff0c;0 表示正交&#xff0…...

HPA和helm

HPA pod的数量进行扩缩容 针对控制器创建的pod deployment&#xff1a; replica&#xff1a; 静态&#xff1a;edit yaml&#xff1a;apply -f HPA&#xff1a;基于cpu的利用率来实现pod数量的自动伸缩。 Horizontal pod autoscaling yaml文件————主流——————…...

基于人工智能的智能语音助手

语音助手的自然语言处理模块是语音助手系统的关键组成部分。通过这个模块&#xff0c;系统能够识别用户的意图并做出相应的回应。我们可以使用NLP技术来解析文本输入&#xff0c;并将其转换为系统可以理解的命令或指令。在本项目中&#xff0c;我们将结合语音识别、自然语言处理…...

java实际开发——数据库存储金额时用什么数据类型?(MySQL、PostgreSQL)

目录 java开发时金额用的数据类型——BigDecimal MySQL存储金额数据时用的数据类型是——decimal PostgreSQL存储金额数据时用的数据类型是——decimal 或 money java开发时金额用的数据类型——BigDecimal https://blog.csdn.net/Jilit_jilit/article/details/142180903?…...

Java 设计模式-状态模式

目录 一. 概述 二. 主要角色 三. 代码示例 四. 优缺点 优点&#xff1a; 缺点&#xff1a; 五. 常见应用场景 一. 概述 状态模式是一种行为设计模式&#xff0c;它允许一个对象在其内部状态改变时改变它的行为。对象看起来好像修改了它的类。状态模式把所有的与一个特定…...

2024.9.13 Python与图像处理新国大EE5731课程大作业,索贝尔算子计算边缘,高斯核模糊边缘,Haar小波计算边缘

1.编写一个图像二维卷积程序。它应该能够处理任何灰度输入图像&#xff0c;并使用以下内核进行操作&#xff1a; %matplotlib inline import numpy as np import matplotlib.pyplot as plt from scipy import linalg import random as rm import math import cv2# import and …...

动态IP池的IP都是纯净IP吗?

在当今互联网时代&#xff0c;动态IP池作为一种网络资源管理策略&#xff0c;被广泛应用于数据抓取、市场调研、广告验证等多种场景中。动态IP池能够提供大量可轮换的IP地址&#xff0c;以帮助用户避免因频繁访问同一网站而被封禁IP的情况。然而&#xff0c;一个关键的问题是&a…...

【MySQL】查询表中重复数据、模糊查询列信息、快速copy表数据(1)

一、SQL查询重复的数据&#xff1a; 1、SQL格式&#xff1a; Select * From 数据表 Where 重复记录字段 in ( select 重复记录字段 From 数据表 Group By 重复记录字段 Having Count(重复记录字段)>1) 2、举例&#xff1a; 在这个patient_member_info表中&#xff0c;我们…...

计算机操作系统之并行性与并发性笔记

目录 在计算机操作系统中&#xff0c;并行性与并发性是两个既相似又有区别的重要概念 并行性&#xff1a; 并发性&#xff1a; 可以通过多任务处理和资源共享来具体说明 并发性的例子 并行性的例子 总结 在计算机操作系统中&#xff0c;并行性与并发性是两个既相似又有区别…...

顶级高效的ChatGPT论文润色提示词和使用技巧

在学术研究中,精确和高效地对文本进行润色和修改是一个必不可少的重要环节。随着学术论文篇幅的增长和内容的复杂度上升,找到一种能够有效整理和优化修改内容的方法变得尤为关键。本文将探讨如何利用ChatGPT作为工具,通过具体的指令和策略,来优化文本的修改过程,提高学术写…...

WebAPI (一)DOM树、DOM对象,操作元素样式(style className,classList)。表单元素属性。自定义属性。间歇函数定时器

文章目录 Web API基本认知一、 变量声明二、 DOM1. DOM 树2. DOM对象3. 获取DOM对象(1)、选择匹配的第一个元素(2)、选择匹配多个元素 三、 操作元素1. 操作元素内容2. 操作元素属性(1)、常用属性&#xff08;href之类的&#xff09;(2)、通过style属性操作CSS(3)、通过类名(cl…...

若依框架开发

若依环境 介绍 ‌若依是一款快速开发平台(低代码)&#xff0c;用于快速构建企业级后台管理系统&#xff0c;它提供了许多常用的功能模块和组件&#xff0c;包括权限管理、代码生成、工作流、消息中心等 官方地址: https://www.ruoyi.vip/ ‌基于Spring Boot和Spring Cloud‌…...

局域网windows下使用Git

windows下如何使用局域网进行git部署 准备工作第一步 &#xff0c;ip设置设置远程电脑的ip设置&#xff0c;如果不会设置请点击[这里](https://blog.csdn.net/Black_Friend/article/details/142170705?spm1001.2014.3001.5501)设置本地电脑的ip&#xff1a;验证 第二步&#x…...

Redis访问工具

使用Redis存储缓存数据&#xff0c;如何通过Java去访问Redis&#xff1f; 防止后面看晕&#xff0c;先来张图。 1. Redis的客户端库 Redis的客户端库是Redis官方提供的&#xff0c;用于让Java等编程语言与Redis服务器进行通信的工具包。常见的Redis客户端库有多个&#xff0c…...

eNSP-Cloud(实现本地电脑与eNSP内设备之间通信)

说明&#xff1a; 想象一下&#xff0c;你正在用eNSP搭建一个虚拟的网络世界&#xff0c;里面有虚拟的路由器、交换机、电脑&#xff08;PC&#xff09;等等。这些设备都在你的电脑里面“运行”&#xff0c;它们之间可以互相通信&#xff0c;就像一个封闭的小王国。 但是&#…...

HTML 语义化

目录 HTML 语义化HTML5 新特性HTML 语义化的好处语义化标签的使用场景最佳实践 HTML 语义化 HTML5 新特性 标准答案&#xff1a; 语义化标签&#xff1a; <header>&#xff1a;页头<nav>&#xff1a;导航<main>&#xff1a;主要内容<article>&#x…...

C++_核心编程_多态案例二-制作饮品

#include <iostream> #include <string> using namespace std;/*制作饮品的大致流程为&#xff1a;煮水 - 冲泡 - 倒入杯中 - 加入辅料 利用多态技术实现本案例&#xff0c;提供抽象制作饮品基类&#xff0c;提供子类制作咖啡和茶叶*//*基类*/ class AbstractDr…...

React Native 导航系统实战(React Navigation)

导航系统实战&#xff08;React Navigation&#xff09; React Navigation 是 React Native 应用中最常用的导航库之一&#xff0c;它提供了多种导航模式&#xff0c;如堆栈导航&#xff08;Stack Navigator&#xff09;、标签导航&#xff08;Tab Navigator&#xff09;和抽屉…...

黑马Mybatis

Mybatis 表现层&#xff1a;页面展示 业务层&#xff1a;逻辑处理 持久层&#xff1a;持久数据化保存 在这里插入图片描述 Mybatis快速入门 ![在这里插入图片描述](https://i-blog.csdnimg.cn/direct/6501c2109c4442118ceb6014725e48e4.png //logback.xml <?xml ver…...

在四层代理中还原真实客户端ngx_stream_realip_module

一、模块原理与价值 PROXY Protocol 回溯 第三方负载均衡&#xff08;如 HAProxy、AWS NLB、阿里 SLB&#xff09;发起上游连接时&#xff0c;将真实客户端 IP/Port 写入 PROXY Protocol v1/v2 头。Stream 层接收到头部后&#xff0c;ngx_stream_realip_module 从中提取原始信息…...

CMake 从 GitHub 下载第三方库并使用

有时我们希望直接使用 GitHub 上的开源库,而不想手动下载、编译和安装。 可以利用 CMake 提供的 FetchContent 模块来实现自动下载、构建和链接第三方库。 FetchContent 命令官方文档✅ 示例代码 我们将以 fmt 这个流行的格式化库为例,演示如何: 使用 FetchContent 从 GitH…...

Mac下Android Studio扫描根目录卡死问题记录

环境信息 操作系统: macOS 15.5 (Apple M2芯片)Android Studio版本: Meerkat Feature Drop | 2024.3.2 Patch 1 (Build #AI-243.26053.27.2432.13536105, 2025年5月22日构建) 问题现象 在项目开发过程中&#xff0c;提示一个依赖外部头文件的cpp源文件需要同步&#xff0c;点…...

Mobile ALOHA全身模仿学习

一、题目 Mobile ALOHA&#xff1a;通过低成本全身远程操作学习双手移动操作 传统模仿学习&#xff08;Imitation Learning&#xff09;缺点&#xff1a;聚焦与桌面操作&#xff0c;缺乏通用任务所需的移动性和灵活性 本论文优点&#xff1a;&#xff08;1&#xff09;在ALOHA…...

C++使用 new 来创建动态数组

问题&#xff1a; 不能使用变量定义数组大小 原因&#xff1a; 这是因为数组在内存中是连续存储的&#xff0c;编译器需要在编译阶段就确定数组的大小&#xff0c;以便正确地分配内存空间。如果允许使用变量来定义数组的大小&#xff0c;那么编译器就无法在编译时确定数组的大…...