使用ansible-playbook实现安装nginx

目录

一、环境准备

(一)ansible目录基本文件

(二)主机host配置:

1. vim /etc/hosts

(三)下载ansible:

1. vim /etc/yum.repos.d/el9.repo

2.  下载ansible

3. 配置免密登录

4. 查看被管理的所有主机

注意:所有的ansible相关命令都必须在ansible目录下执行!

二、普通yum模块安装(在pubserver主机操作web1主机):

1. vim normal_nginx.yml(可查看ansible目录下同名文件)

2. vim index.html(略)

3. ansible-playbook normal_nginx.yml

4. 查看web1主机有没有正常显示内容(ssh连接web1查看或者直接到web1主机查看):

三、使用nginx的tar包源码安装(在pubserver主机操作web2主机):

1. vim install_nginx.sh

2. vim nginx.yml

3. ansible-playbook nginx.yml

4. 查看web2主机有没有正常显示内容(ssh连接web2查看或者直接到web2主机查看):


 

一、环境准备

(一)ansible目录基本文件

1. mkdir ~/ansible

2. cd ~/ansible

3. vim ansible.cfg

[defaults]
host_key_checking=false
inventory=inventory

4. vim inventoy

[webservers]
web[1:2]

[dbs]
db1

[cluster:children]
webservers
dbs

(二)主机host配置:

1. vim /etc/hosts

127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4
::1         localhost localhost.localdomain localhost6 localhost6.localdomain6
# 以下ip地址只是示范,自己的ip地址看主机的ip地址,使用ip a s或者ifconfig查看
192.168.88.3     pubserver
192.168.88.11    web1
192.168.88.12    web2
192.168.88.13    db1

(三)下载ansible:

1. vim /etc/yum.repos.d/el9.repo

[app]
baseurl=file:///mydvd/AppStream
gpgcheck=0
[base]
baseurl=file:///mydvd/BaseOS
gpgcheck=0
#[rpms]
#name = rpms
#baseurl = ftp://192.168.88.3/rpms
#gpgcheck = 0

注:baseurl可以是file地址,可以是http或者ftp地址(本机或者其他能够连通的地址都行),只要能够找到资源,便于yum下载。

使用ftp时也有几个步骤:

1)先将el9.repo的ftp资源注释一下(启动ftp后再放开)

2)yum -y install vsftpd

3) vim /etc/vsftpd/vsftpd.conf

将anonymous_enable=NO改为anonymous_enable=YES

 

4)启动vsftpd并设置开机自启动

systemctl restart vsftpd && systemctl enable vsftpd

或者systemctl enable vsftpd --now

5)然后把需要用到本机资源的ftp地址加上去

[app]
baseurl=file:///mydvd/AppStream
gpgcheck=0
[base]
baseurl=file:///mydvd/BaseOS
gpgcheck=0
[rpms]
name = rpms
baseurl = ftp://192.168.88.3/rpms
gpgcheck = 0

2.  下载ansible

yum -y install ansible

3. 配置免密登录

1)ssh-keygen命令=》一路enter

2)ssh-copy-id root@ip地址,嫌一个个操作麻烦可以使用for循环

[root@pubserver ~]# for i in web{1..2} db1
> do
> ssh-copy-id $i
> done

4. 查看被管理的所有主机

1)cd ~/ansible
2)ansible all --list-hosts

注意:所有的ansible相关命令都必须在ansible目录下执行!

二、普通yum模块安装(在pubserver主机操作web1主机):

 

  1. 安装nginx
  2. 提供默认主页(我偷懒,直接放在当前目录了,使用copy或者template模块传送到/usr/share/nginx/html目录)
  3. 启动并开启自启服务
  4. nginx默认路径为 /usr/share/nginx/html

1. vim normal_nginx.yml(可查看ansible目录下同名文件)

---
- name: nginx playbook
  hosts: web1
  tasks:
    - yum:
        name: nginx
        state: latest
    - service:
        name: nginx
        state: started
        enabled: yes
    - template:
        src: index.html
        dest: /usr/share/nginx/html/index.html

2. vim index.html(略)

3. ansible-playbook normal_nginx.yml

4. 查看web1主机有没有正常显示内容(ssh连接web1查看或者直接到web1主机查看):

curl web1 或者 curl web1对应的ip地址

三、使用nginx的tar包源码安装(在pubserver主机操作web2主机):

1. vim install_nginx.sh

#!/bin/bash
#
ps aux | grep nginx && 
killall -9 nginx
ls /usr/local/nginx/ &&
rm -rf /usr/local/nginx/
cd /root/lnmp_soft/nginx-1.17.6 &&
./configure \
  --prefix=/usr/local/nginx \
  --user=nginx \
  --group=nginx \
  --with-http_ssl_module
make && make install
sed -ri "/^\s+location \/ \{/i\    location /jd { index jd.html; }" /usr/local/nginx/conf/nginx.conf
ss -anpt | grep nginx && /usr/local/nginx/sbin/nginx -s reload || /usr/local/nginx/sbin/nginx

2. vim nginx.yml

第一步:准备nginx及相关软件包

(1) 安装unzip

(2) 安装vim编辑器

(3) 安装支持tab键的软件包

(4) 安装网络相关软件包net-tools

(5) 安装支持killall命令的软件 psmisc

(6) 安装编译工具 gcc make

(7) 安装可以让nginx支持正则的软件包 pcre-devel

(8) 安装可以让nginx支持安装加密网站的软件包 openssl-devel

中间步骤:

把pubserver的lnmp_soft.tar.gz 拷贝传入web2虚拟机的root家目录,并解压tar包,解压后cd进入lnmp_soft,再解压nginx-1.17.6.tar.gz,添加用户nginx

收尾:

1)其中script模块执行install_nginx.sh:cd进入nginx-1.17.6后进行配置(指定安装目录/usr/local/nginx,指定用户nginx,设置安全网站模块)、编译、安装三部曲

注:其实以上都可以结合到install_nginx.sh脚本代码中,最后再使用script模块执行install_nginx.sh就好了,可读性可能会更好(如果能够做到全ansible模块,不使用额外的sh脚本另说)。

2)拷贝前端页面代码到web2主机的/usr/local/nginx/html/目录

---
- hosts: web2
  tasks:
    - name: yum install
      yum:
        name: 
          - unzip
          - vim
          - bash-completion
          - net-tools
          - psmisc
          - gcc
          - make
          - pcre-devel
          - openssl-devel
    - copy:
        src: ~/lnmp_soft.tar.gz
        dest: /root
    - unarchive:
        src: ~/lnmp_soft.tar.gz
        dest: /root/
    - unarchive:
        src: ~/lnmp_soft/nginx-1.17.6.tar.gz
        dest: ~/lnmp_soft/
    - user:
        name: nginx
        shell: /sbin/nologin
    - name: run nginx shell
      script: install_nginx.sh
    - copy:
        src: ~/nginx_pages/jd
        dest: /usr/local/nginx/html/
    - copy:
        src: ~/nginx_pages/qimao
        dest: /usr/local/nginx/html/
    - copy:
        src: ~/nginx_pages/wangyiyun
        dest: /usr/local/nginx/html/
    - copy:
        src: ~/nginx_pages/xianhua
        dest: /usr/local/nginx/html/

3. ansible-playbook nginx.yml

4. 查看web2主机有没有正常显示内容(ssh连接web2查看或者直接到web2主机查看):

curl web2对应的ip地址/jd/

curl web2对应的ip地址/wangyiyun/

...

 

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

kafka(七)——消息偏移(消费者)

概念 消费者消费完消息后,向_consumer_offset主题发送消息,用来保存每个分区的偏移量。 流程说明 consumer发送JoinGroup请求;coordinator选出一个consumer作为leader,并将topics发送给leader消费者;leader consumer…

4. Python的深拷贝、浅拷贝

文章目录 0、先说结论1、浅拷贝修改元素值2、深拷贝修改元素值学习链接 0、先说结论 无论深拷贝还是浅拷贝都会为新对象分配一块新的内存,因此新老对象id不相同。 对于浅拷贝,新老对象内部的可变and不可变元素id都是相同的(在没修改元素值之前)。 对于深…

springboot -多数据源管理方案

多数据源的配置有多种方式 方式一 、依赖dataSource的配置 1.建立多数据源配置 spring:# 数据源配置datasource:pdm:driver-class-name: oracle.jdbc.driver.OracleDriverjdbc-url: jdbc:oracle:thin:10.216.xxx.xxx:3000:orclusername: cfpdmpassword: capecapp:driver-cla…

移动安全测试框架-MobSF window环境配置

一. 介绍: MOBSF(Mobile Security Framework)是一个开源的移动安全渗透测试框架,用于评估移动应用程序的安全性。它提供了一组功能强大的工具和技术,帮助安全专业人员和开发人员发现和修复移动应用程序中的安全漏洞。 …

React 第二十六章 Hook useCallback

useCallback 是 React 提供的一个 Hook 函数,用于优化性能。它的作用是返回一个记忆化的函数,当依赖发生变化时,才会重新创建并返回新的函数。 在 React 中,当一个组件重新渲染时,所有的函数都会被重新创建。这可能会…

【npm】解决npm包突然消失MODULE_NOT_FOUND

今天折腾新特性时需要升级nodejs,安装新版后npm离奇消失了。C:\Users\**用户名\AppData\Roaming\npm\node_modules下只有cnpm,没有npm的目录。重装nodejs也不好使。 机智如我,试了下cnpm -v是正常的,而且能看到nodejs,…

CSP-j 2022csp-j完善程序易错题

易错题 答案23: 对 解析23: 函数 g 就是把函数 f 改成递推的形式 答案24: 对 解析23: 无。 答案25: C 解析25: m n ( m - 1 ) * ( 1 2 3 4 ... n ) O(mn^2) 答案26: C 解析26&#x…

跨境电商行业蓬勃发展,武汉星起航引领卖家孵化新潮流

近年来,我国跨境电商行业在政府的大力扶持下呈现出强劲的发展势头。随着国内制造业结构的加速调整与居民消费需求升级态势的持续凸显,跨境出口规模占比稳步提升,跨境进口规模同样不断扩大,行业市场规模持续增长。在这一背景下&…

vue3+ant design实现表格数据导出Excel

提示:实现表格数据导出Excel 文章目录 前言 一、安装ant design? 二、引用ant design 1.搭建框架 2.获取表格数据 三、封装导出表格的代码 四、导出 1.获取导出地址 2.在下载导出事件中添加导出代码 五、全部代码 前言 今天终于有时间来更新文章了,最近公司项目比较紧…

【ArcGIS Pro微课1000例】0058:玩转NetCDF多维数据集

一、NetCDF介绍 NetCDF(network Common Data Form)网络通用数据格式是由美国大学大气研究协会(University Corporation for Atmospheric Research,UCAR)的Unidata项目科学家针对科学数据的特点开发的,是一种面向数组型并适于网络共享的数据的描述和编码标准。NetCDF广泛应…

pgsql查看指定模式的存储过程

pgsql查看指定模式的存储过程 在 PostgreSQL 中,如果你想要查看指定模式的存储过程(也称为函数),你可以使用 \df 或 \df 命令在 psql 命令行工具中,或者使用 SQL 查询来从 pg_catalog 系统模式中查询。 \df命令行查询…

吴恩达2022机器学习专项课程C2(高级学习算法)W1(神经网络):Lab01 神经元和层

目录 导入Tensorflow的库无激活函数 vs 有激活函数?1.无激活函数2.有激活函数 无激活函数的神经元-回归/线性模型1.创建训练集散点图2.创建层3.层输入4.获取层参数5.层参数的形状6.手动设置层的参数7.层计算vs线性回归模型计算 有激活函数sigmoid的神经元1.创建训练…

武汉星起航深耕亚马逊跨境电商,引领中国卖家开拓全球市场新篇章

在全球经济深度融合的当下,跨境电商已成为连接中国与世界市场的重要桥梁。作为跨境电商领域的佼佼者,武汉星起航电子商务有限公司凭借对亚马逊平台的深入了解和丰富经验,成功引领了中国卖家开拓全球市场的新篇章。 亚马逊,这家起…

计算机发展史故事【7】

二战建奇勋 布雷契莱庄园当然不信德寇的邪说,他们把大约200 名精干人员集中在“3号棚”,四班轮换,24 小时值守,专门对付德国的“斯芬克司之谜”。图林则带着副手、象棋冠军亚历山大,领导着“8 号棚”,进行…

安卓开发--新建工程,新建虚拟手机,按键事件响应

安卓开发--新建工程,新建虚拟手机,按键事件响应 1.前言2.运行一个工程2.1布局一个Button2.2 button一般点击事件2.2 button属性点击事件2.2 button推荐点击事件 本篇博客介绍安卓开发的入门工程,通过使用按钮Buton来了解一个工程的运作机制。…

【论文合集1】- 存内计算加速机器学习

本章节论文合集,存内计算已经成为继冯.诺伊曼传统架构后,对机器学习推理加速的有效解决方案,四篇论文从存内计算用于机器学习,模拟存内计算,对CNN/Transformer架构加速角度阐述存内计算。 【1】WWW: What, When, Where…

Web实时通信的学习之旅:WebSocket入门指南及示例演示

文章目录 WebSocket的特点1、工作原理2、特点3、WebSocket 协议介绍4、安全性 WebSocket的使用一、服务端1、创建实例:创建一个webScoket实例对象1.1、WebSocket.Server(options[,callback])方法中options对象所支持的参数1.2、同样也有一个加密的 wss:/…

2024第九届数维杯数学建模论文模板(内附LaTeX+Word)

一年一度的2024年第九届数维杯国赛报名进行中!相信很多同学们已经摩拳擦掌蓄势待发了! 经历三天比赛,最后提交的论文就是最终答卷,那么一篇数模论文,包括哪些内容呢? 一篇完整的数模论文,包括…

【初阶数据结构】单链表经典OJ题

目录标题 原题展现题目解析代码展现1.创建新节点2.拷贝random指针3.将新节点尾插 原题展现 该题是力扣上的第138题,题目链接如下:随机链表的复制。 题目解析 我们发现这个链表和一般的链表存在着一点点区别,那就是每个节点多了一个random指…

遥控挖掘机之ESP8266调试心得(1)

ESP8266调试心得 1. 前言2.遇到的问题2.1 ESP8266模块建立TCP连接时候报错2.2 指令异常问题 3. 更新ESP8266固件3. ESP8266的部分AT指令3. 连接步骤3.1 模块与电脑连接3.2.1 电脑上的设置3.2.2 ESP8266模块作为客户机(TCP Cilent)的设置步骤 3.2 模块与模…
最新文章