Ansible 批量部署

anseble role

[root@ubuntu24 ansible]$ tree
.
├── ansible.cfg
├── dns_master.yaml
├── dns_slave.yaml
├── hosts
├── LVS.yaml
├── mysql-discuz.yaml
├── mysql-jpress.yaml
├── nginx_php.yaml
├── roles
│   ├── LVS
│   │   ├── files
│   │   ├── tasks
│   │   │   ├── configure.yaml
│   │   │   ├── install.yaml
│   │   │   └── main.yaml
│   │   └── templates
│   ├── master_dns
│   │   ├── files
│   │   ├── tasks
│   │   │   ├── configure.yaml
│   │   │   ├── install.yaml
│   │   │   ├── main.yaml
│   │   │   └── restart.yaml
│   │   └── templates
│   │       └── db.linux-magedu.com.j2
│   ├── mysql-discuz
│   │   ├── files
│   │   │   └── discuzer.sql
│   │   ├── tasks
│   │   │   ├── configure.yaml
│   │   │   ├── install.yaml
│   │   │   ├── main.yaml
│   │   │   └── user.yaml
│   │   └── templates
│   ├── mysql-jpress
│   │   ├── files
│   │   │   └── jpresser.sql
│   │   ├── tasks
│   │   │   ├── configure.yaml
│   │   │   ├── install.yaml
│   │   │   ├── main.yaml
│   │   │   └── user.yaml
│   │   └── templates
│   ├── nginx
│   │   ├── files
│   │   ├── tasks
│   │   │   ├── configure.yaml
│   │   │   ├── install.yaml
│   │   │   ├── main.yaml
│   │   │   └── user.yaml
│   │   └── templates
│   │       └── www.linux-magedu.com.j2
│   ├── php
│   │   ├── files
│   │   │   └── Discuz_X3.5_SC_UTF8_20240520.zip
│   │   ├── tasks
│   │   │   ├── configure.yaml
│   │   │   ├── install.yaml
│   │   │   ├── main.yaml
│   │   │   └── user.yaml
│   │   └── templates
│   ├── slave_dns
│   │   ├── files
│   │   ├── tasks
│   │   │   ├── configure.yaml
│   │   │   ├── install.yaml
│   │   │   ├── main.yaml
│   │   │   └── restart.yaml
│   │   └── templates
│   │       └── db.linux-magedu.com.j2
│   └── tomcat
│       ├── files
│       │   ├── apache-tomcat-9.0.89.tar.gz
│       │   └── jpress-v5.1.0.war
│       ├── tasks
│       │   ├── configure.yaml
│       │   ├── install.yaml
│       │   ├── main.yaml
│       │   └── user.yaml
│       └── templates
│           └── tomcat.service.j2
└── test.yaml34 directories, 49 files

LVS

install.yaml

- name: install ipvsadmapt: name=ipvsadm state=present

configure.yaml

- name: ipv4.ip_forwardshell: echo 'net.ipv4.ip_forward = 1' >> /etc/sysctl.conf- name: Reload sysctl.confshell: sysctl -p- name: Create a clustershell: ipvsadm -A -t 10.0.0.6:80 ; ipvsadm -A -t 10.0.0.16:80- name: Add servershell: ipvsadm -a -t 10.0.0.6:80 -r 192.168.10.7:80 ; ipvsadm -a -t 10.0.0.16:80 -r 192.168.10.8:88

master_dns

install.yaml

- name: bind9apt: name=bind9 state=present

configure.yaml

- name: configure on named.conf.default-zoneslineinfile:path: /etc/bind/named.conf.default-zonesline: |zone "linux-magedu.com" IN {type master;file "/etc/bind/db.linux-magedu.com";};- name: configure on db.linux-magedu.comtemplate: src=db.linux-magedu.com.j2 dest=/etc/bind/db.linux-magedu.com

restart.yaml

- name: restart serviceservice: name=named state=restarted

db.linux-magedu.com.j2

linux-magedu.com.       86400   IN      SOA     linux-magedu-dns. admin.linux-magedu.com. (143 3H 15M 1D 1W)
linux-magedu.com.       86400   IN      NS      dns1.linux-magedu.com.
linux-magedu.com.       86400   IN      NS      dns2.linux-magedu.com.dns1.linux-magedu.com.  86400   IN      A       10.0.0.3
dns2.linux-magedu.com.  86400   IN      A       10.0.0.13www.linux-magedu.com.   86400   IN      A       {{ targetIP }}

slave_dns

install.yaml

- name: bind9apt: name=bind9 state=present

configure.yaml

- name: configure on named.conf.default-zoneslineinfile:path: /etc/bind/named.conf.default-zonesline: >zone "linux-magedu.com" IN {type slave;masters {10.0.0.3;};file "/etc/bind/slaves/db.linux-magedu.com";};- name: change apparmorlineinfile:path: /etc/apparmor.d/usr.sbin.namedinsertafter: "  /var/cache/bind/ rw,$"line: >/etc/bind/slaves/** rwk,/etc/bind/slaves/ rwk,- name: restart apparmorservice: name=apparmor state=restarted- name: Create filefile: path=/etc/bind/slaves state=directory mode=777- name: configure on db.linux-magedu.comtemplate: src=db.linux-magedu.com.j2 dest=/etc/bind/slaves/db.linux-magedu.com

restart.yaml

- name: restart serviceservice: name=named state=restarted

db.linux-magedu.com.j2

linux-magedu.com.       86400   IN      SOA     linux-magedu-dns. admin.linux-magedu.com. (143 3H 15M 1D 1W)
linux-magedu.com.       86400   IN      NS      dns1.linux-magedu.com.
linux-magedu.com.       86400   IN      NS      dns2.linux-magedu.com.dns1.linux-magedu.com.  86400   IN      A       10.0.0.3
dns2.linux-magedu.com.  86400   IN      A       10.0.0.13www.linux-magedu.com.   86400   IN      A       {{ targetIP }}

nginx

user.yaml

- name: add-nginx-groupgroup: name=nginx gid=800 system=yes- name: add-nginx-useruser: name=nginx group=800 system=yes uid=800 create_home=no

install.yaml

- name: install nginxapt: name=nginx state=present

configure.yaml

- name: add-configuretemplate: src=www.linux-magedu.com.j2 dest=/etc/nginx/sites-enabled/www.linux-magedu.com- name: Restart-serviceservice: name=nginx state=restarted

www.linux-magedu.com.j2

server{listen 80;server_name www.linux-magedu.com;root /var/www/html/www.linux-magedu.com;index index.html index.php;location ~ \.php$ {fastcgi_pass 127.0.0.1:9000;fastcgi_index index.php;include fastcgi.conf;}
}

php

user.yaml

- name: add-php-useruser:name: www-datagroup: 33system: yesuid: 33create_home: yeshome: /var/wwwshell: /usr/sbin/nologin

install.yaml

- name: install-phpapt: name=php-fpm,php-mysqlnd,php-json,php-gd,php-xml,php-mbstring,php-zip state=present

configure.yaml

- name: Change-Configuration1shell: sed -i 's/listen = \/run\/php\/php8.3-fpm.sock/;listen = \/run\/php\/php8.3-fpm.sock/g' /etc/php/8.3/fpm/pool.d/www.conf- name: Change-Configuration2shell: sed -i '42i\ listen = 127.0.0.1:9000' /etc/php/8.3/fpm/pool.d/www.conf- name: Restart-serviceservice: name=php8.3-fpm state=restarted- name: create-directory1file: path=/var/www/html/www.linux-magedu.com state=directory owner=www-data group=www-data- name: copy-Discuzcopy: src=files/Discuz_X3.5_SC_UTF8_20240520.zip dest=/root/- name: create-directory2file: path=/root/discuz state=directory owner=www-data group=www-data- name: install unzipapt: name=unzip state=present- name: decompressing-filesunarchive: src=/root/Discuz_X3.5_SC_UTF8_20240520.zip dest=/root/discuz- name: copy-fileshell: cp -r /root/discuz/upload/* /var/www/html/www.linux-magedu.com- name: Switch-user-groupshell: chown -R www-data:www-data /var/www/html/www.linux-magedu.com

tomcat

user.yaml

- name: add-group-tomcatgroup: name=tomcat system=yes- name: add-user-tomcatuser: name=tomcat group=999 system=yes shell=/usr/sbin/nologin

install.yaml

- name: install-javaapt: name=openjdk-11-jdk state=present- name: copy-tomcat.zipcopy: src=files/apache-tomcat-9.0.89.tar.gz dest=/root/apache-tomcat-9.0.89.tar.gz- name: unarchive-tomcat.zipshell: tar xf /root/apache-tomcat-9.0.89.tar.gz -C /usr/local/- name: create-linkfile: src=/usr/local/apache-tomcat-9.0.89 path=/usr/local/tomcat state=lin- name: environment-variableshell: ln -s /usr/local/tomcat/bin/* /usr/local/bin/- name: alter-filefile: path=/usr/local/tomcat/ state=directory recurse=yes owner=tomcat group=tomcat- name: service-scripttemplate: src=tomcat.service.j2 dest=/lib/systemd/system/tomcat.service- name: restart-serviceservice: name=tomcat.service state=started

configure.yaml

- name: create-directoryfile: path=/data/ state=directory owner=tomcat group=tomcat recurse=yes- name: copy-jpress.warcopy: src=files/jpress-v5.1.0.war dest=/data/jpress.war- name: change-configurelineinfile:path: /usr/local/tomcat/conf/server.xmlinsertafter: ".*</Host>.*"line: |<Host name="jpress.linux-magedu.com"  appBase="/data/" unpackWARs="true" autoDeploy="true"></Host>- name: restart-tomcat-serviceservice: name=tomcat.service state=restarted- name: chang-iptableshell: iptables -t nat -A PREROUTING -p tcp --dport 80 -j REDIRECT --to-ports 8080

tomcat.service.j2

[Unit]
Description=Tomcat
After=syslog.target network.target[Service]
Type=forking
Environment=JAVA_HOME=/usr/lib/jvm/java-11-openjdk-amd64/
ExecStart=/usr/local/tomcat/bin/startup.sh
ExecStop=/usr/local/tomcat/bin/shutdown.sh
PrivateTmp=true
User=tomcat
Group=tomcat[Install]
WantedBy=multi-user.target

mysql-discuz

user.yaml

- name: add-mysql-groupgroup: name=mysql gid=306 system=yes- name: add-mysql-useruser: name=mysql group=306 system=yes uid=306 create_home=no

install.yaml

- name: install-mysqlapt: name=mysql-server state=present update_cache=yes- name: Change-Configuration-mysql-1lineinfile: path=/etc/mysql/mysql.conf.d/mysqld.cnf backrefs=yes regexp='^(bind-address.*)$' line='#\1'- name: Change-Configuration-mysql-2lineinfile:path: /etc/mysql/mysql.conf.d/mysqld.cnfline: |skip-name-resolvedefault-authentication-plugin=mysql_native_password

configure.yaml

- name: restart-serviceservice: name=mysql.service state=restarted- name: copy-mysql-filecopy: src=files/discuzer.sql dest=/root/discuzer.sql- name: mysql-client-initshell: mysql < /root/discuzer.sql- name: create-directory-backupfile: path=/backup/ state=directory- name: Generate database backupcron:name: Database Backup Cronminute: 0hour: 5job: "backup_date=$(date +%Y%m%d%H%m%S) && mysqldump discuz > /backup/backup_${backup_date}.sql"

discuzer.sql

create database if not exists discuz;
create user 'discuzer'@'10.0.0.%' identified by '123456';
grant all on discuz.* to 'discuzer'@'10.0.0.%';
flush privileges;

mysql-jpress

user.yaml

- name: add-mysql-groupgroup: name=mysql gid=306 system=yes- name: add-mysql-useruser: name=mysql group=306 system=yes uid=306 create_home=no

install.yaml

- name: install-mysqlapt: name=mysql-server state=present update_cache=yes- name: Change-Configuration-mysql-1lineinfile: path=/etc/mysql/mysql.conf.d/mysqld.cnf backrefs=yes regexp='^(bind-address.*)$' line='#\1'- name: Change-Configuration-mysql-2lineinfile:path: /etc/mysql/mysql.conf.d/mysqld.cnfline: |skip-name-resolvedefault-authentication-plugin=mysql_native_password

configure.yaml

- name: restart-serviceservice: name=mysql.service state=restarted- name: copy-mysql-filecopy: src=files/jpresser.sql dest=/root/jpresser.sql- name: mysql-client-initshell: mysql < /root/jpresser.sql- name: create-directory-backupfile: path=/backup/ state=directory- name: Generate database backupcron:name: Database Backup Cronminute: 0hour: 5job: "backup_date=$(date +%Y%m%d%H%m%S) && mysqldump jpress > /backup/backup_${backup_date}.sql"

jpresser.sql

create database if not exists jpress;
create user 'jpresser'@'10.0.0.%' identified by '123456';
grant all on jpress.* to 'jpresser'@'10.0.0.%';
flush privileges;

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

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

相关文章

js纯操作dom版购物车(实现购物车功能)

代码&#xff1a; <!DOCTYPE html> <html lang"zh-CN"><head><meta charset"UTF-8" /><meta name"viewport" content"widthdevice-width, initial-scale1.0" /><title>Document</title>&l…

Linux 进程间通信_匿名管道

1.程间通信目的 : 数据传输&#xff1a;一个进程需要将它的数据发送给另一个进程 资源共享&#xff1a;多个进程之间共享同样的资源。 通知事件&#xff1a;一个进程需要向另一个或一组进程发送消息&#xff0c;通知它&#xff08;它们&#xff09;发生了某种事件&#xff08;如…

vue3+vite 部署npm 包

公司需要所以研究了一下怎么部署安装&#xff0c;比较简单 先下载个vue项目 用vue脚手架安装vue3项目 删掉App.vue 中的其它组件 npm create vuelatest 开始写自定义组件 新建一个el-text 组件, name是重点&#xff0c;vue3中也得这么导出name属性 <script> export de…

JAVA-----线程池

目录 1.简单理解一下线程池 2.线程池参数 3.Executors ​​​​​​​ ​​​​​​​ ​​​​​​​ ​​​​​​​ ​​​​​​​ 1.简单理解一下线程池 线程池&#xff0c;就是用来存储线程的&#xff0c;然后如果有任务传进线程池…

PortQry下载安装使用教程(超详细),Windows测试UDP端口

《网络安全自学教程》 PortQry是微软官方提供的一款TCP/IP连接「排障工具」&#xff0c;用来「检查」TCP/UDP「端口状态」。 平时检查端口状态&#xff0c;最常用的是telnet&#xff0c;但它是基于TCP协议的&#xff0c;无法检测「UDP端口」&#xff0c;这篇文章教大家如何在W…

Flink-cdc Schema Evolution 详解

Flink-cdc Schema Evolution 详解 github原文 glimpse flink-cdc-3 glimpse 源码基于 ~/project/flink_src/flink-cdc master !4 ❯ git remote -v origin https://github.com/apache/flink-cdc.git (fetch) origin https://github.com/apache/flink-cdc.git (push) ~/p…

介绍一款Java开发的企业接口管理系统和开放平台

介绍一款Java开发的企业接口管理系统和开放平台&#xff0c;YesApi接口管理平台Java版本。该系统基于Java开发&#xff0c;可以帮助企业进行统一接口管理、API接口开放&#xff0c;以及用于PaaS系统和SaaS产品平台的快速二次开发和搭建。 一、系统概述 YesApi接口大师&#x…

ClickHouse 5节点集群安装

ClickHouse 5节点集群安装 在此架构中&#xff0c;配置了五台服务器。其中两个用于托管数据副本。其他三台服务器用于协调数据的复制。在此示例中&#xff0c;我们将创建一个数据库和表&#xff0c;将使用 ReplicatedMergeTree 表引擎在两个数据节点之间复制该数据库和表。 官…

RHCE作业二

1.要求&#xff1a; 配置nginx服务通过ip访问多网站 2. 1关闭防火墙 2创建ip 3配置 4创建文件 5测试

logback 如何将日志输出到文件

如何作 将日志输出到文件需要使用 RollingFileAppender&#xff0c;该 Appender 必须定义 rollingPolicy &#xff0c;另外 rollingPollicy 下必须定义 fileNamePattern 和 encoder <appender name"fileAppender" class"ch.qos.logback.core.rolling.Rollin…

二、Spring的执行流程

文章目录 1. spring的初始化过程1.1 ClassPathXmlApplicationContext的构造方法1.2 refresh方法&#xff08;核心流程&#xff09;1.2.1 prepareRefresh() 方法1.2.2 obtainFreshBeanFactory() 方法1.2.3 prepareBeanFactory() 方法1.2.4 invokeBeanFactoryPostProcessors() 方…

shodan2---清风

注&#xff1a;本文章源于泷羽SEC&#xff0c;如有侵权请联系我&#xff0c;违规必删 学习请认准泷羽SEC学习视频:https://space.bilibili.com/350329294 实验一&#xff1a;search 存在CVE-2019-0708的网络设备 CVE - 2019 - 0708**漏洞&#xff1a;** 该漏洞存在于远程桌面…

解读数字化转型的敏捷架构:从理论到实践的深度分析

在当今数字经济的推动下&#xff0c;企业要在瞬息万变的市场中保持竞争力&#xff0c;数字化转型已经不再是一种选择&#xff0c;而是不可避免的战略需求。然而&#xff0c;企业如何从理论到实践进行有效的转型&#xff0c;尤其是在复杂的技术环境中&#xff0c;如何通过正确的…

来源爬虫程序调研报告

来源爬虫程序调研报告 一、什么是爬虫 爬虫&#xff1a;就是抓取网页数据的程序。从网站某一个页面&#xff08;通常是首页&#xff09;开始&#xff0c;读取网页的内容&#xff0c;找到在网页中的其它链接地址&#xff0c;然后通过这些链接地址寻找下一个网页&#xff0c;这…

中小型门诊管理系统源码,云诊所管理系统源码,前端技术栈:Vue 2 , Vite , Vue Router 3

中小型门诊管理系统源码&#xff0c;云诊所管理系统源码&#xff0c; 前端技术栈&#xff1a;Vue 2 Vite Vue Router 3 Vuex 3 Element Plus Axios TypeScript Quill Election 后端技术栈&#xff1a;Spring Boot MyBatis MyBatis-Plus Spring Security Swagger2 …

使用Python计算相对强弱指数(RSI)进阶

使用Python计算相对强弱指数&#xff08;RSI&#xff09;进阶 废话不多说&#xff0c;直接上主题&#xff1a;> 代码实现 以下是实现RSI计算的完整代码&#xff1a; # 创建一个DataFramedata {DATE: date_list, # 日期CLOSE: close_px_list, # 收盘价格 }df pd.DataF…

基于丑萌气质狗--C#的sqlserver学习

#region 常用取值 查询List<string> isName new List<string> { "第一", "第二", "第三", "第四" }; List<string> result isName.Where(m > m "第三").ToList();MyDBContext myDBnew MyDBContext(…

【数据分享】中国汽车市场年鉴(2013-2023)

数据介绍 在这十年里&#xff0c;中国自主品牌汽车迅速崛起。吉利、长城、比亚迪等品牌不断推出具有竞争力的车型&#xff0c;在国内市场乃至全球市场都占据了一席之地。同时&#xff0c;新能源汽车的发展更是如日中天。随着环保意识的提高和政策的大力支持&#xff0c;电动汽车…

CSS伪元素以及伪类和CSS特性

伪元素&#xff1a;可以理解为假标签。 有2个伪元素 &#xff08;1&#xff09;::before &#xff08;2&#xff09;::after ::before <!DOCTYPE html> <html> <head><title></title><style type"text/css">body::before{con…

Android简单控件实现简易计算器

学了一些Android的简单控件&#xff0c;用这些布局和控件&#xff0c;设计并实现一个简单计算器。 计算器的界面分为两大部分&#xff0c;第一部分是上方的计算表达式&#xff0c;既包括用户的按键输入&#xff0c;也包括计算结果 数字&#xff1b;第二部分是下方的各个按键&a…