Ansible部署与实施PlayBook

news2024/11/25 0:54:03

Ansible部署与实施PlayBook

计算机名称IP角色
workstation192.168.182.130管理
servera192.168.182.131被管理
serverb192.168.182.132被管理
serverc192.168.182.133被管理

部署

在这里插入图片描述

控制节点

官方文档

Ansible易于安装。只需要安装到要运行它的一个或多个控制节点上。由Ansbile管理的主机不需要安装Ansible。

控制节点需要安装Python3(3.5以上)或python2(2.7以上)

yum install python36 -y
yum install epel-release -y
yum install ansible -y 
#使用setup模块验证版本
[root@workstation ~]# ansible -m setup localhost | grep ansible_python_version
        "ansible_python_version": "2.7.5",

受管主机

官方文档

yum install python36 -y

构建清单

定义清单

清单定义ansible将要管理的一批主机。这些主机也可以分配到组中,以进行集中管理。组可以包含子组,主机也可以时多个组的成员。清单还可以设置应用带它所定义的主机和组的变量。

静态清单指定受管主机

静态清单文件是指定ansible目标受管主机的文本文件(INI/YAML).

ansible相关文章

配置资产文件inventory.ini

[root@workstation ~]# cat inventory.ini
[my_servers]
servera
serverb
serverc

主机名解析

[root@workstation ~]# cat /etc/hosts
127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4
::1         localhost localhost.localdomain localhost6 localhost6.localdomain6
192.168.182.131 servera
192.168.182.132 serverb
192.168.182.133 serverc

实施PlayBook

官方文档

运行PlayBook

ansible-playbook 命令可用于运行playboo。该命令在控制节点运行,要运行的playbook的名称作为参数传递。

实例

[root@workstation ~]# cat webserver.yml
---
- name: setup web server
  hosts: my_servers
  tasks:
  - name: latest httpd
    yum:
      name: httpd
      state: latest


在my_server下的servera安装


[root@workstation ~]# ansible-playbook -i inventory.ini  webserver.yml --limit servera

PLAY [setup web server] ************************************************************************************

TASK [Gathering Facts] *************************************************************************************
ok: [servera]

TASK [latest httpd] ****************************************************************************************

changed: [servera]

PLAY RECAP *************************************************************************************************
servera                    : ok=2    changed=1    unreachable=0    failed=0    skipped=0    rescued=0    ignored=0

检查



[root@servera ~]# systemctl start httpd

[root@servera ~]# systemctl status httpd
● httpd.service - The Apache HTTP Server
   Loaded: loaded (/usr/lib/systemd/system/httpd.service; disabled; vendor preset: disabled)
   Active: active (running) since Wed 2023-07-19 06:24:23 EDT; 53s ago
     Docs: man:httpd(8)
           man:apachectl(8)
 Main PID: 15578 (httpd)
   Status: "Total requests: 0; Current requests/sec: 0; Current traffic:   0 B/sec"
   CGroup: /system.slice/httpd.service
           ├─15578 /usr/sbin/httpd -DFOREGROUND
           ├─15579 /usr/sbin/httpd -DFOREGROUND
           ├─15580 /usr/sbin/httpd -DFOREGROUND
           ├─15581 /usr/sbin/httpd -DFOREGROUND
           ├─15582 /usr/sbin/httpd -DFOREGROUND
           └─15583 /usr/sbin/httpd -DFOREGROUND

Jul 19 06:24:23 servera systemd[1]: Starting The Apache HTTP Server...
Jul 19 06:24:23 servera httpd[15578]: AH00558: httpd: Could not reliably determine the server's fully...sage
Jul 19 06:24:23 servera systemd[1]: Started The Apache HTTP Server.
Hint: Some lines were ellipsized, use -l to show in full.

执行playbook前,最好进行验证,确保内容预防正确无误

[root@workstation ~]# ansible-playbook --syntax-check webserver.yml
[WARNING]: provided hosts list is empty, only localhost is available. Note that the implicit localhost does
not match 'all'
[WARNING]: Could not match supplied host pattern, ignoring: my_servers

playbook: webserver.yml

这样说明格式正确

修改webserver.yml

[root@workstation ~]# cat webserver.yml
---
- name: setup web server
  hosts: my_servers
  tasks:
  - name:latest httpd
    yum:
      name: httpd
      state: latest


[root@workstation ~]# ansible-playbook --syntax-check webserver.yml
[WARNING]: provided hosts list is empty, only localhost is available. Note that the implicit localhost does
not match 'all'
ERROR! We were unable to read either as JSON nor YAML, these are the errors we got from each:
JSON: No JSON object could be decoded

Syntax Error while loading YAML.
  mapping values are not allowed in this context

The error appears to be in '/root/webserver.yml': line 6, column 8, but may
be elsewhere in the file depending on the exact syntax problem.

The offending line appears to be:

  - name:latest httpd
    yum:
       ^ here

说明出现问题

-C选项对playbook执行空运行。会使Ansible报告在执行该playbook时将会发生什么更改并不会对受管主机进行任何更改。


[root@workstation ~]# ansible-playbook -C webserver.yml
[WARNING]: provided hosts list is empty, only localhost is available. Note that the implicit localhost does
not match 'all'
[WARNING]: Could not match supplied host pattern, ignoring: my_servers

PLAY [setup web server] ************************************************************************************
skipping: no hosts matched

PLAY RECAP *************************************************************************************************


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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【事业单位-语言理解】中心理解01

【事业单位-语言理解】中心理解01 一、中心理解1.1 转折关系1.2 因果关系1.3必要条件关系 二、总结 一、中心理解 1.1 转折关系 转折之后是中心意思 转折在分述句子中,就没有那么重要 1.2 因果关系 一方面另一方面起到的是分述的作用,一般不要过多…

python解析markdown

python解析markdown 1、安装markdown模块2、python解析markdown2.1 QtWebEngineWidgets显示网页2.1.1 网页加载2.1.2 网页加载错误 2.2 Python-Markdown 模块库2.3 QTextDocument、QTextBrowser、QTextEdit 3、案例Demo3.1 先上图3.2 代码文件 1、安装markdown模块 pip instal…

ElasticSearch学习--操作

目录 索引库操作 mapping映射 总结 创建索引库 查询删除修改索引库 总结 文档操作 添加 查询,删除 修改文档 总结 RestClient操作索引库 初始化JavaRestClient 创建索引库​编辑 删除索引库,判断索引库是否存在 总结 操作文档 新增文档 查询文…

JAVA SE -- 第九天

(全部来自“韩顺平教育”) 一、类变量个类方法 (一)类变量 1、基本介绍 类变量也叫静态变量/静态属性,是该类的所有对象共享的变量,任何一个该类的对象去访问它时,取到的都是相同的值&#…

2023年的深度学习入门指南(18) - 将LLaMA2跑起来

2023年的深度学习入门指南(18) - 将LLaMA2跑起来 之前我们说到过,在GPT 3之后,大模型就很少有开源的了。其中,最为典型的开源支持者就是Meta公司的研究团队。年初他们发布的LLaMA基本上是各家开源模型的主要参考对象。不过,LLaMA…

Python 算法基础篇之集合和字典:创建、访问、添加和删除元素

Python 算法基础篇之集合和字典:创建、访问、添加和删除元素 引言 1. 集合的概念和创建2. 集合的访问3. 集合的添加和删除元素 a ) 添加元素 b ) 删除元素 4. 字典的概念和创建5. 字典的访问6. 字典的添加和删除元素 a ) 添加元素 b ) 删除元素 总结 引言 集合和字…

SAP从放弃到入门系列之批次派生-Batch Derivation-Part2

文章目录 一、派生的类型1.1 静态派生1.2 动态派生 二、派生的方向 通过批次派生的基本配置和简单功能的介绍,大家应该对批次派生有一个基本的了解,这篇文章从批次派生的类型和批次派生的方向两个维度更深入的聊一下它的功能。 一、派生的类型 派生的类…

OPTEE之sonarlint静态代码分析实战一——optee_os

ATF(TF-A)/OPTEE之静态代码分析汇总 一、OPTEE源码下载及分析 对OPTEE实施soanrlint静态代码扫描之前,先到官方网站下载源码。官方网站位于github,网址OP-TEE GitHub。 其中我们重点关注optee_os和optee_client。此页面下的optee_linuxdriver已废弃,该部分最终会编…

数据结构:二叉树遍历

概述 二叉树的遍历是指按照某条搜索路径访问二叉树中的每个结点,使得每个结点均被访问一次,而且仅被访问一次。二叉树的遍历方式主要有:先序遍历、中序遍历、后序遍历、层次遍历。先序、中序、后序其实值得是父节点被访问的次序。若在遍历过…

一.MySQL的主从复制

目录 一.MySQL的主从复制 1.2主从复制的工作过程和原理 1.2.1主从复制工作过程为两日志和三线程 ​编辑 1.2.2主从复制的工作原理 1.3主从复制延迟的原因 1.4主从复制的架构 1.5.MySQL四种同步方式 1.5.1异步复制(Async Replication) 1.5.2 同步复制(Sync Re…

Linux内核子系统--进程管理剖析

Linux 是一个计算需求不断变化的非常动态的系统。 Linux 计算需求的表示以进程的公共抽象为中心,进程可以是短期的(从命令行执行的命令)或长期的(网络服务)。因此,进程的总体管理及其调度非常重要。 在用户…

EMC学习笔记(十八)滤波器设计

滤波器设计 1.标准要求2.设计理论2.1 滤波器电路设计过程2.2 插入损耗定义2.3 原始噪声测量2.4 插入损耗计算2.5 滤波失配原则2.6 滤波拓扑选择2.7 滤波参数计算2.8 滤波参数确定 Tips:学习资料来自网络,仅供学习使用。 EMI滤波器设计(汽车电…

JVM系列(9)——调优初体验

学习这篇文章之前,要了解: JVM系列(2)——垃圾回收 JVM系列(3)——内存分配与回收策略 先了解概念: 吞吐量:用户执行时间/(用户执行时间垃圾回收时间);就是干正经事的时间…

C++语法(25)--- 异常与智能指针

C语法(24) C11_哈里沃克的博客-CSDN博客https://blog.csdn.net/m0_63488627/article/details/131054426?spm1001.2014.3001.5501 1.异常 try { // 保护的标识代码 }catch( ExceptionName e1 ) { // catch 块 }catch( ExceptionName e2 ) { // catch 块…

RT-Thread qemu mps2-an385 bsp 移植制作 :BSP 制作篇

下载 V2M-MPS2_CMx_BSP mps2 的资料很少,所以唯一能下载的是 ARM 官方的 V2M-MPS2_CMx_BSP,下载地址为: https://keilpack.azureedge.net/pack/Keil.V2M-MPS2_CMx_BSP.1.8.0.pack 其实这是个 Keil MDK5 的 Pack 包,安装后&#x…

JAVA-ReentrantLock(五)

概念 在Java中,“lock”(锁)是一种用于并发控制的机制。它用于确保在多线程环境中,同一时刻只有一个线程可以访问共享资源或临界区。当一个线程获得了锁,其他线程将被阻塞,直到持有锁的线程释放它。这样可…

Cocos Creator 3.8 后期效果 Shader 编写(1/2) 基础篇

原文链接:Cocos Creator 3.8 后期效果 Shader 编写(1/2) 基础篇 在 Cocos Creator 3.8 版本中,新增了不少实用的特性,其中我最喜欢的,就是它自带后期效果管线,并且还内置了许多高级效果。 有用…

XUbuntu22.04之Linux剪切板和selection primary区域(一百八十七)

简介: CSDN博客专家,专注Android/Linux系统,分享多mic语音方案、音视频、编解码等技术,与大家一起成长! 优质专栏:Audio工程师进阶系列【原创干货持续更新中……】🚀 人生格言: 人生…

二、Java框架基础02 XML

二、XML 2.1 XML 简介 XML 即可扩展标记语言,一种简单的数据存储语言,使用一系列简单的标记来描述结构化数据 XML 的特点 XML 与操作系统,编程语言的开发平台无关规范统一,实现不同系统之间的数据交互 2.1.1 XML 的文档结构 以下…

vulnhub靶场之CengBox3

1.信息收集 输入命令:netdiscover -i eth0 -r 192.168.239.0 ,发现181机器存活 输入命令nmap -p- -sV -O -Pn -A 192.168.239.181 ,进行端口探测,发现存在22、80、443端口,还发现存在域名ceng-company.vm。 将域名c…