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

【Ansible 的脚本 --- playbook 剧本】

目录

  • 一、playbook 剧本介绍
  • 二、示例
    • 1、运行playbook
    • 2、定义、引用变量
  • 三、使用playbook部署lnmp集群


一、playbook 剧本介绍

playbooks 本身由以下各部分组成

(1)Tasks:任务,即通过 task 调用 ansible 的模板将多个操作组织在一个 playbook 中运行
(2)Variables:变量
(3)Templates:模板
(4)Handlers:处理器,当changed状态条件满足时,(notify)触发执行的操作
(5)Roles:角色

二、示例

vim  /etc/ansible/playbook/deamo1.yml
---
- name: the first play for install apache#gather_facts: falsehosts: dbserversremote_user: roottasks:- name: disable firewwalldservice: name=firewalld state=stopped enabled=no- name: disable selinuxcommand: '/usr/sbin/setenforce 0'ignore_errors: True- name: disable selinux foreverreplace: path=/etc/selinux/config regexp="enforcing" replace="disabled"- name: mount cdrommount: src=/dev/sr0 path=/mnt fstype=iso9660 state=mounted- name: copy local yum configuration filecopy: src=/etc/yum.repos.d/repo.bak/local.repo dest=/etc/yum.repos.d/local.repo- name: install apacheyum: name=httpd state=latest- name: prepare httpd configuration filecopy: src=/etc/ansible/playbook/httpd.conf dest=/etc/httpd/conf/httpd.confnotify: "reload httpd"- name: start apacheservice: name=httpd state=started enabled=yeshandlers:- name: reload httpdservice: name=httpd state=reloaded

在这里插入图片描述

1、运行playbook

ansible-playbook deamo1.yml
//补充参数:
-k(–ask-pass):用来交互输入ssh密码
-K(-ask-become-pass):用来交互输入sudo密码
-u:指定用户

在这里插入图片描述

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

2、定义、引用变量

在这里插入图片描述

在这里插入图片描述

三、使用playbook部署lnmp集群

- name: the first play for install nginxhosts: dbserversremote_user: roottasks:- name: disable firewwalldservice: name=firewalld state=stopped enabled=no- name: disable selinuxcommand: '/usr/sbin/setenforce 0'ignore_errors: True- name: disable selinux foreverreplace: path=/etc/selinux/config regexp="enforcing" replace="disabled"- name: mount cdrommount: src=/dev/sr0 path=/mnt fstype=iso9660 state=mounted- name: copy local yum configuration filecopy: src=/etc/yum.repos.d/nginx.repo  dest=/etc/yum.repos.d/nginx.repo- name: install nginxyum: name=nginx- name: prepare nginx configuration filecopy: src=/etc/ansible/playbook/default.conf dest=/etc/nginx/conf.d/default.conf- name: start nginxservice: name=nginx state=started enabled=yes- name: wordpresscopy: src=/usr/share/nginx/html/wordpress  dest=/usr/share/nginx/html/- name: mysqlhosts: dbserversremote_user: roottasks:- name: remove mariadbshell: yum remove mariadb* -yignore_errors: True- name: yumcommand: wget https://repo.mysql.com/mysql57-community-release-el7-11.noarch.rpm- name: install mysql57command: rpm -ivh mysql57-community-release-el7-11.noarch.rpm- name: change mysql-community-servershell: sed -i 's/gpgcheck=1/gpgcheck=0/' /etc/yum.repos.d/mysql-community.repo- name: install mysql-serveryum: name=mysql-server- name: start mysqlservice: name=mysqld.service state=started enabled=yes- name: mysql congruation filecopy: src=/etc/ansible/playbook/mysql.sh dest=/var/lib/mysql- name: echo passwordshell: grep "password" /var/log/mysqld.log | awk 'NR==1{print $NF}'  #在日志文件中找出root用户的初始密码register: mysql_password   #将初始密码导入到mysql_password的变量中- name: echodebug:msg: "{{ mysql_password }}"  #输出变量mysql_password的值- name: grant locationshell:  mysql --connect-expired-password -uroot -p"{{ mysql_password['stdout'] }}" -e "ALTER USER 'root'@'localhost' IDENTIFIED BY 'Admin@123';"- name: grantshell: mysql --connect-expired-password -uroot -pAdmin@123 -e "grant all privileges on *.* to 'root'@'%' identified by 'Admin@123456' with grant option;"- name: create databaseshell: mysql --connect-expired-password -uroot -pAdmin@123 -e "create database wordpress;"- name: grantshell: mysql --connect-expired-password -uroot -pAdmin@123 -e "grant all on wordpress.* to 'admin'@'%' identified by 'Admin@123456';"- name: grantshell: mysql --connect-expired-password -uroot -pAdmin@123 -e "grant all on wordpress.* to 'admin'@'localhost' identified by 'Admin@123456';"- name: flushshell: mysql --connect-expired-password -uroot -pAdmin@123 -e 'flush privileges;'- name: yum removecommand: yum -y remove mysql57-community-release-el7-10.noarch- name: phphosts: dbserversremote_user: roottasks:- name: yum rpmcommand: yum -y install https://rpms.remirepo.net/enterprise/remi-release-7.rpmignore_errors: true- name: yum-utilsyum: name=yum-utils- name: yum-configcommand: yum-config-manager --enable remi-php74- name: list phpcommand: yum list php- name: yilaibaocommand: yum -y install php  php-cli php-fpm php-mysqlnd php-zip php-devel php-gd php-mcrypt php-mbstring php-curl php-xml php-pear php-bcmath php-json php-redis- name: start phpservice: name=php-fpm state=started enabled=yes

将yum安装的nginx里面的配置文件进行修改,后传输到对应的远程主机

在这里插入图片描述

在这里插入图片描述

解压wordpress压缩文件,放入到对应的html网页目录底下
在这里插入图片描述

进行传输到远程主机里的网页页面目录上
在这里插入图片描述

在这里插入图片描述

使用浏览器进行访问测试
在这里插入图片描述

在这里插入图片描述

相关文章:

【Ansible 的脚本 --- playbook 剧本】

目录 一、playbook 剧本介绍二、示例1、运行playbook2、定义、引用变量 三、使用playbook部署lnmp集群 一、playbook 剧本介绍 playbooks 本身由以下各部分组成 (1)Tasks:任务,即通过 task 调用 ansible 的模板将多个操作组织在…...

ubuntu释放缓存

sudo sysctl vm.drop_caches1 sudo sysctl vm.drop_caches2 sudo sysctl vm.drop_caches3释放页面缓存: $ sudo sysctl vm.drop_caches1释放目录项和索引节点缓存: $ sudo sysctl vm.drop_caches2释放页面缓存、目录项和索引节点缓存: $ sudo…...

实用调试技巧(1)

什么是bug?调试是什么?有多重要?debug和release的介绍。windows环境调试介绍。一些调试的实例。如何写出好(易于调试)的代码。编程常见的错误。 什么是Bug 我们在写代码的时候遇到的一些问题而导致程序出问题的就是Bu…...

uniapp:H5定位当前省市区街道信息

高德地图api,H5定位省市区街道信息。 由于uniapp的uni.getLocation在H5不能获取到省市区街道信息,所以这里使用高德的逆地理编码接口地址接口,通过传key和当前经纬度,获取到省市区街道数据。 这里需要注意的是:**高德…...

自然语言处理从入门到应用——LangChain:提示(Prompts)-[提示模板:部分填充的提示模板和提示合成]

分类目录:《自然语言处理从入门到应用》总目录 部分填充的提示模板 提示模板是一个具有.format方法的类,它接受一个键值映射并返回一个字符串(一个提示),以传递给语言模型。与其他方法一样,将提示模板进行…...

论文笔记--GloVe: Global Vectors for Word Representation

论文笔记--GloVe: Global Vectors for Word Representation 1. 文章简介2. 文章概括3 文章重点技术3.1 两种常用的单词向量训练方法3.2 GloVe3.3 模型的复杂度 4. 文章亮点5. 原文传送门6. References 1. 文章简介 标题:GloVe: Global Vectors for Word Representa…...

day57|● 647. 回文子串 ● 516.最长回文子序列

647. 回文子串 https://leetcode.cn/problems/palindromic-substrings/solution/by-lfool-2mvg/ Given a string s, return the number of palindromic substrings in it. A string is a palindrome when it reads the same backward as forward. A substring is a contiguous…...

docker compose.yml学习

docker compose 安装docker-compose sudo curl -L "https://github.com/docker/compose/releases/download/v2.2.2/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-composechmod x /usr/local/bin/docker-composeln -s /usr/local/bin/docker-…...

【业务功能篇55】Springboot+easyPOI 导入导出

Apache POI是Apache软件基金会的开源项目,POI提供API给Java程序对Microsoft Office格式档案读和写的功能。 Apache POI 代码实现复杂,学习成本较高。 Easypoi 功能如同名字easy,主打的功能就是容易,让一个没见接触过poi的人员 就可以方便的写出Excel导出…...

对顶堆算法

对顶堆可以动态维护一个序列上的第k大的数,由一个大根堆和一个小根堆组成, 小根堆维护前k大的数(包含第k个)大根堆维护比第k个数小的数 [CSP-J2020] 直播获奖 题目描述 NOI2130 即将举行。为了增加观赏性,CCF 决定逐一评出每个选手的成绩&a…...

node.js的优点

提示:node.js的优点 文章目录 一、什么是node.js二、node.js的特性 一、什么是node.js 提示:什么是node.js? Node.js发布于2009年5月,由Ryan Dahl开发,是一个基于ChromeV8引擎的JavaScript运行环境,使用了一个事件驱…...

golang编译跨平台

golang可以在windows上编译出linux、MacOS等系统上的程序。 go编译器windows下可变翼linux程序,例如,GOARCHamd64 和 GOOSlinux 可以用于编译 64 位的 Linux 平台上的可执行文件。: set GOARCHamd64 set GOOSlinux go build main.go通过设置…...

关于Spring的bean的相关注解以及其简单使用方法

一、前置工作 第一步&#xff1a;创建一个maven项目 第二步&#xff1a;在resource中创建一个名字叫做spring-config.xml的文件&#xff0c;并把以下代码复制粘贴 <?xml version"1.0" encoding"UTF-8"?> <beans xmlns"http://www.sprin…...

【计算机视觉】BLIP:源代码示例demo(含源代码)

文章目录 一、Image Captioning二、VQA三、Feature Extraction四、Image-Text Matching 一、Image Captioning 首先配置代码&#xff1a; import sys if google.colab in sys.modules:print(Running in Colab.)!pip3 install transformers4.15.0 timm0.4.12 fairscale0.4.4!g…...

TWILIGHT靶场详解

TWILIGHT靶场详解 下载地址&#xff1a;https://download.vulnhub.com/sunset/twilight.7z 这是一个比较简单的靶场&#xff0c;拿到IP后我们扫描发现开启了超级多的端口 其实这些端口一点用都没有&#xff0c;在我的方法中 但是也有不同的方法可以拿权限&#xff0c;就需要…...

【案例】--GPT衍生应用案例

目录 一、前言二、GPT实现智能问答架构2.1、基本的GPT实现智能问答架构2.2、可应用的GPT实现智能问答架构1、语义转换2、相似度关键字矩阵3、ES中搜索相似度关键字矩阵三、后续一、前言 GPT,全称Generative Pre-trained Transformer ,中文名可译作生成式预训练Transformer。…...

Sip网络音频对讲广播模块, sip网络寻呼话筒音频模块

Sip网络音频对讲广播模块&#xff0c; sip网络寻呼话筒音频模块 一、模块介绍 SV-2101VP和 SV-2103VP网络音频对讲广播模块 是一款通用的独立SIP音频功能模块&#xff0c;可以轻松地嵌入到OEM产品中。该模块对来自网络的SIP协议及RTP音频流进行编解码。 该模块支持多种网络协议…...

leetcode1219. 黄金矿工(java)

黄金矿工 leetcode1219. 黄金矿工题目描述回溯算法代码 回溯算法 leetcode1219. 黄金矿工 难度: 中等 eetcode 1219 黄金矿工 题目描述 你要开发一座金矿&#xff0c;地质勘测学家已经探明了这座金矿中的资源分布&#xff0c;并用大小为 m * n 的网格 grid 进行了标注。每个单元…...

Svelte框架入门

关键词 前端框架、编译器、响应式、模板 介绍 Svelte /svelt/ adj. 苗条的&#xff1b;线条清晰的&#xff1b;和蔼的 Svelte是一个前端组件框架&#xff0c;就像它的英文名字一样&#xff0c;Svelte的目标是打造一个更高性能的响应性前端框架。 Svelte类似于React和Vue框架&am…...

在linux中进行arm交叉编译体验tiny6410裸机程序开发流程

在某鱼上找了一个友善之臂的Tiny6410开发板用来体验一下嵌入式开发。这次先体验一下裸机程序的开发流程&#xff0c;由于这个开发板比较老旧了&#xff0c;官方文档有很多过期的内容&#xff0c;所以记录一下整个过程。 1. 交叉编译器安装 按照光盘A中的文档《04- Tiny6410 L…...

如何在微信和QQ上使用EmojiPackage表情包:终极完整指南

如何在微信和QQ上使用EmojiPackage表情包&#xff1a;终极完整指南 【免费下载链接】EmojiPackage 表情包资源合集&#xff0c;张张都是经典 项目地址: https://gitcode.com/gh_mirrors/em/EmojiPackage EmojiPackage表情包资源合集是聊天社交中的神器&#xff0c;这个经…...

暗黑3一键宏终极指南:D3keyHelper让你的刷图效率翻倍

暗黑3一键宏终极指南&#xff1a;D3keyHelper让你的刷图效率翻倍 【免费下载链接】D3keyHelper D3KeyHelper是一个有图形界面&#xff0c;可自定义配置的暗黑3鼠标宏工具。 项目地址: https://gitcode.com/gh_mirrors/d3/D3keyHelper 还在为暗黑3中重复的技能按键感到疲…...

精准权限控制:Excel限制密码设置与使用技巧

当Excel表格发出去后&#xff0c;你是否会担心表格被随意修改&#xff1f;其实&#xff0c;Excel提供的“限制密码”就能很好的避免这个问题。下面一起来看看具体如何使用吧&#xff01;一、认识两种限制密码Excel的限制密码分为两大类&#xff1a;保护工作表和保护工作簿。前者…...

xianyu_spider:闲鱼电商数据采集与分析解决方案

xianyu_spider&#xff1a;闲鱼电商数据采集与分析解决方案 【免费下载链接】xianyu_spider 闲鱼APP数据爬虫 项目地址: https://gitcode.com/gh_mirrors/xia/xianyu_spider 项目价值定位&#xff1a;破解电商数据采集痛点 在电商数据分析领域&#xff0c;数据采集面临…...

javaweb大学生校园跑腿服务系统的设计与实现沙箱支付

目录同行可拿货,招校园代理 ,本人源头供货商沙箱支付功能概述核心功能模块技术实现要点测试注意事项项目技术支持源码获取详细视频演示 &#xff1a;文章底部获取博主联系方式&#xff01;同行可合作同行可拿货,招校园代理 ,本人源头供货商 沙箱支付功能概述 在JavaWeb校园跑…...

intv_ai_mk11新手避坑指南:注意事项与使用技巧全解析

intv_ai_mk11新手避坑指南&#xff1a;注意事项与使用技巧全解析 1. 快速了解intv_ai_mk11对话机器人 intv_ai_mk11是一款基于7B参数Llama架构的AI对话助手&#xff0c;运行在GPU服务器上。它能帮助你完成各种任务&#xff0c;从知识问答到内容创作&#xff0c;是提升工作效率…...

SEO_资深专家分享的3个高级SEO策略与思路

SEO资深专家分享的3个高级SEO策略与思路 在当今竞争激烈的数字营销环境中&#xff0c;搜索引擎优化&#xff08;SEO&#xff09;不仅仅是一个技术问题&#xff0c;更是一个战略问题。作为一名资深SEO专家&#xff0c;我有幸分享三个高级SEO策略&#xff0c;帮助你在竞争中脱颖…...

基于深度学习的多种类动物识别(YOLOv12/v11/v8/v5模型+数据集)(源码+lw+部署文档+讲解等)

摘要随着人工智能和深度学习技术的发展&#xff0c;基于图像的动物识别系统在生态监测、物种保护和生物多样性研究等领域获得了广泛应用。本文提出了一种基于YOLO&#xff08;You Only Look Once&#xff09;系列模型&#xff08;包括YOLOv5、YOLOv8、YOLOv11和YOLOv12&#xf…...

Zotero Better Notes终极指南:如何在笔记中创建流程图和思维导图

Zotero Better Notes终极指南&#xff1a;如何在笔记中创建流程图和思维导图 【免费下载链接】zotero-better-notes Everything about note management. All in Zotero. 项目地址: https://gitcode.com/gh_mirrors/zo/zotero-better-notes Zotero Better Notes是一款功能…...

Mermaid在线编辑器终极指南:免费实时图表创作工具完全解析

Mermaid在线编辑器终极指南&#xff1a;免费实时图表创作工具完全解析 【免费下载链接】mermaid-live-editor Edit, preview and share mermaid charts/diagrams. New implementation of the live editor. 项目地址: https://gitcode.com/GitHub_Trending/me/mermaid-live-ed…...