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

网站建设在线视频卡顿网站建设需要投资多少

网站建设在线视频卡顿,网站建设需要投资多少,商贸公司企业简介模板,做废钢推广网站目录 一、理论 1.playbook剧本 2.ROLES角色 3.关系 4.Roles模块搭建LNMP架构 二、实验 1.Roles模块搭建LNMP架构 三、问题 1.剧本启动php报错语法问题 2.剧本启动mysql报错语法问题 3.剧本启动nginx开启失败 4.剧本安装php失败 5.使用yum时报错 6.rpm -Uvh https… 目录 一、理论 1.playbook剧本 2.ROLES角色 3.关系 4.Roles模块搭建LNMP架构 二、实验 1.Roles模块搭建LNMP架构 三、问题 1.剧本启动php报错语法问题 2.剧本启动mysql报错语法问题 3.剧本启动nginx开启失败 4.剧本安装php失败 5.使用yum时报错 6.rpm -Uvh https://xxxx.rpm 提示连接失败问题 7.依赖检测失败 8.剧本修改php失败 9.剧本启动php失败 10.剧本修改mysql脚本文件失败 一、理论 1.playbook剧本 1架构 vim XXX.yaml - name: #指定play名称hosts: #指定主机组remote_user: #执行用户 gather_facts: true|false #是否收集远程主机facts信息vars: #定义变量tasks: #定义task任务列表- name: #定义task任务名称模块: #定义任务使用的模块和参数with_items: #定义循环列表when: #定义判断条件 ! true则执行任务否则不执行任务ignore_errors: true #忽略任务失败notify: #定义task任务changed状态时触发的任务名tags: #指定标签ansible-playbook --tags 仅执行拥有指定 tags 标签的任务always标签总会执行handlers: #定义notify触发的任务列表2核心元素 3参数 2.ROLES角色 1重构思路 用roles和不用roles的逻辑其实是一样的要根据服务器的功能先收集服务器所需要的文件再进行安装传输文件启动服务或重启服务等操作。只是我们这次不必担心命名问题因为不同的服务或不同功能的服务器所需要的配置文件会被放到不同的目录不会冲突。 roles这个角色可以根据同类服务器的功能定义也可以通过服务去定义因为我们是一键部署所有服务和项目也不存在指定部署服务的需求如果通过服务来定义也容易出现需要很多when判断的情况如果用同类功能的服务器定义角色可能会出现同一条命令需要反复编写的情况自行选择我采取根据同类功能服务器去定义我们的roles角色。 2目录结构 3目录说明 3.关系 playbook是是由一系列的play组成 每个play由一个或者多个task组成 一个task一般是一个ansible module 三者的关系示意图如下 4.Roles模块搭建LNMP架构 1规划 通过ansible的roles角色去配置lnmp环境nginx、php、mysql都使用源码编译安装 2架构 3部署Nginx角色 创建nginx角色所需要的工作目录: mkdir -p /etc/ansible/playbook/roles/nginx mkdir -p /etc/ansible/playbook/roles/nginx/defaults mkdir -p /etc/ansible/playbook/roles/nginx/files mkdir -p /etc/ansible/playbook/roles/nginx/handlers mkdir -p /etc/ansible/playbook/roles/nginx/meta mkdir -p /etc/ansible/playbook/roles/nginx/tasks mkdir -p /etc/ansible/playbook/roles/nginx/templates mkdir -p /etc/ansible/playbook/roles/nginx/vars制作/etc/ansible/playbook/roles/nginx/files/index.php网页目录: vim /etc/ansible/playbook/roles/nginx/files/index.php?php phpinfo(); ?制作/etc/ansible/playbook/roles/nginx/files/nginx.repo源: vim /etc/ansible/playbook/roles/nginx/files/nginx.repo # nginx.repo[nginx] namenginx repo baseurlhttp://nginx.org/packages/centos/$releasever/$basearch/ gpgcheck1 enabled1 gpgkeyhttps://nginx.org/keys/nginx_signing.key module_hotfixestrue制作/etc/ansible/playbook/roles/nginx/handlers/main.yml文件加载nginx的配置模板文件: vim /etc/ansible/playbook/roles/nginx/handlers/main.yml - name: reload nginxservice: name{{service}} statereloaded 制作/etc/ansible/playbook/roles/nginx/tasks/init.yml文件: vim /etc/ansible/playbook/roles/nginx/tasks/init.yml - name: disable firewalldservice: namefirewalld statestopped enablednoignore_errors: True- name: disable selinuxshell: /usr/sbin/setenforce 0ignore_errors: true制作/etc/ansible/playbook/roles/nginx/tasks/main.yml文件: - include: init.yml- name: copy nginx yum repo filecopy: srcnginx.repo dest/etc/yum.repos.d/- name: install nginxyum: name{{pkg}} statelatest- name: copy index.phpcopy: srcindex.php dest{{root_dir}}- name: copy nginx template configuration filetemplate: srcdefault.conf.j2 dest/etc/nginx/conf.d/default.confnotify: reload nginx- name: start nginxservice: name{{service}} statestarted enabledyes制作/etc/ansible/playbook/roles/nginx/templates/default.conf.j2模板文: vim /etc/ansible/playbook/roles/nginx/templates/default.conf.j2 ---修改2到8行-----------listen {{http_port}};server_name {{http_hostname}};#access_log /var/log/nginx/host.access.log main;location / {root {{root_dir}};---修改29到36行-----------location ~ \.php$ {root {{root_dir}};fastcgi_pass {{http_remote}};fastcgi_index index.php;fastcgi_param SCRIPT_FILENAME {{root_dir}}$fastcgi_script_name;include fastcgi_params;}制作/etc/ansible/playbook/roles/nginx/vars/main.yml文件: http_port: 192.168.204.69:80 http_hostname: www.david.com root_dir: /usr/share/nginx/html http_remote: 192.168.204.100:9000 pkg: nginx service: nginx(4) 部署PHP角色 创建php角色所需要的工作目录: mkdir -p /etc/ansible/playbook/roles/php mkdir -p /etc/ansible/playbook/roles/php/defaults mkdir -p /etc/ansible/playbook/roles/php/files mkdir -p /etc/ansible/playbook/roles/php/handlers mkdir -p /etc/ansible/playbook/roles/php/meta mkdir -p /etc/ansible/playbook/roles/php/tasks mkdir -p /etc/ansible/playbook/roles/php/templates mkdir -p /etc/ansible/playbook/roles/php/vars制作/etc/ansible/playbook/roles/php/files/index.php的网页文件: vim /etc/ansible/playbook/roles/php/files/index.php ?php phpinfo(); ?制作/etc/ansible/playbook/roles/php/handlers/main.yml文件: vim /etc/ansible/playbook/roles/php/handlers/main.yml - name: reload phpservice: name{{service}} statereloaded制作/etc/ansible/playbook/roles/php/tasks/main.yml文件: /etc/ansible/playbook/roles/php/tasks]# vim main.yml - name: install yum reposhell: rpm -Uvh https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm rpm -Uvh https://mirror.webtatic.com/yum/el7/webtatic-release.rpmignore_errors: True- name: install phpcommand: yum install -y php72w php72w-cli php72w-common php72w-devel php72w-embedded php72w-gd php72w-mbstring php72w-pdo php72w-xml p hp72w-fpm php72w-mysqlnd php72w-opcache --skip-broken- name: create php useruser: name{{user_name}}- name: crate web root dirfile: name{{root_dir}} statedirectory- name: copy index.phpcopy: srcindex.php dest{{root_dir}}- name: modify php configuration filereplace: path/etc/php.ini regexp;date.timezone replacedate.timezone Asia/Shanghainotify: reload php- name: modify username and groupname in www.confreplace: path/etc/php-fpm.d/www.conf regexpapache replace{{user_name}}notify: reload php- name: modify listen addr in www.confreplace: path/etc/php-fpm.d/www.conf regexp127.0.0.1:9000 replace{{http_port}}notify: reload php- name: modify allowed client in www.confreplace: path/etc/php-fpm.d/www.conf regexp127.0.0.1 replace{{remote_addr}}notify: reload php- name: start phpservice: name{{service}} statestarted enabledyes制作/etc/ansible/playbook/roles/php/vars/main.yml文件: vim /etc/ansible/playbook/roles/php/vars/main.yml timezone: Asia/Shanghai user_name: php http_port: 192.168.204.100:9000 remote_addr: 192.168.204.69 root_dir: /usr/share/nginx/html service: php-fpm(5) 部署MySQL角色 创建mysql角色所需要的工作目录: mkdir -p /etc/ansible/playbook/roles/mysql mkdir -p /etc/ansible/playbook/roles/mysql/defaults mkdir -p /etc/ansible/playbook/roles/mysql/files mkdir -p /etc/ansible/playbook/roles/mysql/handlers mkdir -p /etc/ansible/playbook/roles/mysql/meta mkdir -p /etc/ansible/playbook/roles/mysql/tasks mkdir -p /etc/ansible/playbook/roles/mysql/templates mkdir -p /etc/ansible/playbook/roles/mysql/vars制作/etc/ansible/playbook/roles/mysql/handlers/main.yml文件: vim /etc/ansible/playbook/roles/mysql/handlers/main.yml - name: reload mysqlservice: name{{service}} statereloaded制作/etc/ansible/playbook/roles/mysql/tasks/main.yml文件: vim /etc/ansible/playbook/roles/mysql/tasks/main.yml - name: remove mariadbshell: yum remove mariadb* -yignore_errors: True- name: install yum reposhell: wget https://repo.mysql.com/mysql57-community-release-el7-11.noarch.rpm --force --nodeps rpm -ivh mysql57-commu nity-release-el7-11.noarch.rpm --force --nodepsignore_errors: True- name: modify gpgcheckreplace: path/etc/yum.repos.d/mysql-community.repo regexpgpgcheck1 replacegpgcheck0- name: install mysqlyum: namemysql-server statelatest- name: start mysqlservice: name{{service}} statestarted enabledyes- name: make passwd.shscript: /etc/ansible/playbook/roles/mysql/files/passwd.sh制作/etc/ansible/playbook/roles/mysql/vars/main.yml文件: vim /etc/ansible/playbook/roles/mysql/vars/main.yml service: mysqld.service(5)启动安装分布式LNMP vim /etc/ansible/playbook/lnmp.yml - name: nginx playhosts: webserversremote_user: rootroles:- nginx- name: php playhosts: phpserversremote_user: rootroles:- php- name: mysql playhosts: mysqlserversremote_user: rootroles:- mysql二、实验 1.Roles模块搭建LNMP架构 1环境 表1 主机 主控端192.168.204.199ansible受控端-1192.168.204.69nginx受控端-2192.168.204.186mysql受控端-3192.168.204.100php (2) 配置主机 3部署Nginx角色 创建nginx角色所需要的工作目录: 制作/etc/ansible/playbook/roles/nginx/files/index.php网页目录: 制作/etc/ansible/playbook/roles/nginx/files/nginx.repo源: 制作/etc/ansible/playbook/roles/nginx/handlers/main.yml文件加载nginx的配置模板文件: 制作/etc/ansible/playbook/roles/nginx/tasks/init.yml文件: 制作/etc/ansible/playbook/roles/nginx/tasks/main.yml文件: 制作/etc/ansible/playbook/roles/nginx/templates/default.conf.j2模板文: 制作/etc/ansible/playbook/roles/nginx/vars/main.yml文件: (4) 部署PHP角色 创建php角色所需要的工作目录: 制作/etc/ansible/playbook/roles/php/files/index.php的网页文件: 制作/etc/ansible/playbook/roles/php/handlers/main.yml文件: 制作/etc/ansible/playbook/roles/php/tasks/main.yml文件: 制作/etc/ansible/playbook/roles/php/vars/main.yml文件: (5) 部署MySQL角色 创建mysql角色所需要的工作目录: ​​​​​​​注意需要提前创建passwd.sh 制作/etc/ansible/playbook/roles/mysql/handlers/main.yml文件: 制作/etc/ansible/playbook/roles/mysql/tasks/main.yml文件: 制作/etc/ansible/playbook/roles/mysql/vars/main.yml文件: (6)启动安装分布式LNMP 启动 nginx启动成功 php启动成功 mysql启动成功 访问浏览器成功 三、问题 1.剧本启动php报错语法问题 1报错 2原因分析 左端代码未对齐 3解决方法 修改前 修改后  2.剧本启动mysql报错语法问题 (1) 报错 2原因分析 左端代码未对齐 3解决方法 修改前 修改后 3.剧本启动nginx开启失败 1报错 2原因分析 nginx端查询 default.conf.j2 配置错误  未知的地址池 3解决方法 nginx端先移除多余配置文件 ansible端修改配置文件 修改前 修改后 4.剧本安装php失败 (1) 报错 2原因分析 [弃用警告]:只在通过squash_actions使用循环时调用“yum”一次是不赞成的。而不是如果使用循环提供多个项目并指定 name: {{ item }} 请使用 name: {{ ... }} 并删除循环。这个特性将在2.11版本中删除。弃用的警告可以通过在ansible.cfg中设置deprecation_warningsFalse来禁用。   3解决方法 这里先暂不修改yml文件 修改php端网卡 关闭防火墙和安全机制 如还是报错修改/etc/ansible/playbook/roles/php/tasks/main.yml文件安装方式不采用with_items方式直接以command模块方式运行 修改前 修改后 成功 5.使用yum时报错 1报错 遇见failure: repodata/repomd.xml from base: [Errno 256]错误 2原因分析 yum源 3解决方法 更新依赖包重新安装发现没用 yum clean all yum install -y epel-release 更新ca-certficates包 yum clean all yum --disablerepoepel -y update ca-certificates 将https转为http cp /etc/yum.repos.d/epel.repo /etc/yum.repos.d/epel.repo.bak sed -i s#https://#http://#g /etc/yum.repos.d/epel.repo 更改resolv.conf文件然后重启network服务service network restart nameserver 8.8.8.8 search localdomain 以上步骤执行完成后如果仍然失败继续执行以下步骤 查看yum的依赖包 [rootlocalhost yum.repos.d]# rpm -qa|grep yum PackageKit-yum-1.1.10-2.el7.centos.x86_64 yum-plugin-fastestmirror-1.1.31-54.el7_8.noarch yum-langpacks-0.4.2-7.el7.noarch yum-metadata-parser-1.1.4-10.el7.x86_64 yum-utils-1.1.31-54.el7_8.noarch yum-3.4.3-168.el7.centos.noarch删除依赖包 [rootlocalhost yum.repos.d]# rpm -e yum-plugin-fastestmirror-1.1.31-54.el7_8.noarch --nodeps yum-metadata-parser-1.1.4-10.el7.x86_64 yum-3.4.3-168.el7.centos.noarch将系统默认的yum功能删除 [rootlocalhost yum.repos.d]# rpm -aq|grep yum|xargs rpm -e --nodeps 查看本版和系统的位数 [rootlocalhost yum.repos.d]# cat /etc/centos-release CentOS Linux release 7.9.2009 (Core)[rootlocalhost yum.repos.d]# file /bin/ls /bin/ls: ELF 64-bit LSB executable, x86-64, version 1 (SYSV), dynamically linked (uses shared libs), for GNU/Linux 2.6.32, BuildID[sha1]c8ada1f7095f6b2bb7ddc848e088c2d615c3743e, stripped下载yum包 # wget http://vault.centos.org/7.2.1511/os/x86_64/Packages/yum-plugin-fastestmirror-1.1.31-34.el7.noarch.rpm # wget http://vault.centos.org/7.2.1511/os/x86_64/Packages/yum-metadata-parser-1.1.4-10.el7.x86_64.rpm # wget http://vault.centos.org/7.2.1511/os/x86_64/Packages/yum-3.4.3-132.el7.centos.0.1.noarch.rpm 注意要注意版本 在http://mirrors.kernel.org/centos/ 或者 http://mirrors.163.com/centos/里下载 下载完成执行以下命令 # rpm -ivh --nodeps yum-plugin-fastestmirror-1.1.31-34.el7.noarch.rpm # rpm -ivh  --nodeps yum-metadata-parser-1.1.4-10.el7.x86_64.rpm  # rpm -ivh --nodeps yum-3.4.3-132.el7.centos.0.1.noarch.rpm 进入 /etc/yum.repos.d/目录中在http://mirrors.163.com/.help/centos.html在里面下载对应版本的repo文件我下载了CentOS-Base.repo 对此文件进行备份以防修改错误还有的用 修改$releasever为自己的版本号我的为7 保存退出 6.rpm -Uvh https://xxxx.rpm 提示连接失败问题 1报错 2原因分析 域名解析失败 3解决方法 查询IP地址 通过What Is My IP Address? Free IP Lookup查询对应url ip地址 修改hosts 文件追加一下内容 vim /etc/hosts45.55.104.9ip webtatic.com可自定义重新执行命令访问对应地址成功 7.依赖检测失败 1报错 警告/var/tmp/rpm-tmp.cw1TWT: 头V4 RSA/SHA256 Signature, 密钥 ID 352c64e5: NOKEY\n\t软件包 epel-release-7-14.noarch 已经安装, stderr_lines: [警告/var/tmp/rpm-tmp.cw1TWT: 头V4 RSA/SHA256 Signature, 密钥 ID 352c64e5: NOKEY 2原因分析 未忽视依赖关系 3解决方法 在后面加上--force --nodeps就可以了nodeps的意思是忽视依赖关系。 rpm -Uvh https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm --force --nodeps rpm -Uvh https://mirror.webtatic.com/yum/el7/webtatic-release.rpm --force --nodeps // 以上是我个人下载的erlang版本要依据你们自己下载的版本改一下 修改前 修改后 成功 8.剧本修改php失败 1报错 www.conf文件不存在 2原因分析 缺失文件 3解决方法 新建目录并上传文件 成功 9.剧本启动php失败 1报错 ansible端 php端 Failed to start php-fpm.service: Unit not found 2原因分析 系统中没有配置 php-fpm.service 文件 3解决方法 通过find / -name nginx.service 找到nginx.service 配置文件路径 [rootlocalhost php-fpm.d]# find /lib/systemd/system -name php-fpm.service [rootlocalhost php-fpm.d]# find /etc/systemd/system -name php-fpm.service /etc/systemd/system/php-fpm.service创建软链接 [rootlocalhost php-fpm.d]# sudo ln -s /lib/systemd/system/php-fpm.service /etc/systemd/system/php-fpm.service然后去到那个路径 新建一个php-fpm.service文件 保存下面这一段内容php-fpm路径根据自己的实际情况修改 [Unit] DescriptionThe PHP FastCGI Process Manager Aftersyslog.target network.target[Service] Typesimple PIDFile/run/php-fpm.pid ExecStart/usr/local/php/sbin/php-fpm你的php-fpm路径 --nodaemonize --fpm-config /usr/local/php/etc/php-fpm.conf你的php-fpm配置文件路径 ExecReload/bin/kill -USR2 $MAINPID ExecStop/bin/kill -SIGINT $MAINPID[Install] WantedBymulti-user.target 修改为 [Unit] DescriptionThe PHP FastCGI Process Manager Aftersyslog.target network.target[Service] Typesimple PIDFile/run/php-fpm.pid ExecStart/etc/systemd/system --nodaemonize --fpm-config /etc/php-fpm.d/www.conf ExecReload/bin/kill -USR2 $MAINPID ExecStop/bin/kill -SIGINT $MAINPID[Install] WantedBymulti-user.target10.剧本修改mysql脚本文件失败 1报错 2原因分析 缺少passwd.sh文件 3解决方法 新建文件 成功
http://www.dnsts.com.cn/news/121735.html

相关文章:

  • 做网站 创业 流程wordpress侧边浮窗
  • 为什么做的网站在谷歌浏览器打不开wordpress调用当前tag标签的热门文章
  • 做响应式网站的微博号大连城乡住房建设厅网站
  • 网站建设建网站年轻的母亲简述如何对网站进行推广
  • qfd 网站开发专业微信网站建设多少钱
  • 建站教程视频下载动力无限网站效果好不好
  • 网站建设源程序代码外贸网站建站h
  • 外贸建站的公司wordpress本地utc
  • 网站建设的说明什么网站是教做纸工的
  • 一个网站上线需要什么win7装什么版本wordpress
  • 做公司网站首页如何后台修改网站联系人
  • 汕头网站推广seo免费手机网站模板下载
  • 谈谈网站的开发流程太原注册公司流程
  • 辽宁网站建设公司电话wordpress翻页相同内容
  • 桃城网站建设价格sem和网站建设的关系
  • 怎么做文化传媒公司网站天津建设网证件查询
  • 山西省建设监理官方网站查询站长工具会给网站带来外链这样好吗
  • 玉环网站建设长沙部分小区封控
  • 简述网站建设基本流程如何搭建个人博客
  • 网站流量怎么做的营销网络建设四个阶段
  • 网站优化方案ppt电脑做服务器发布网站吗
  • 桥梁建设杂志网站湖州市建设培训中心网站
  • 网站访问量怎么做郴州网站建设
  • 网站建设职业主要做什么在线绘制流程图的网站
  • 权威的南昌网站建设网站被k 原因
  • 企业网站建设的研究开发方法及技术路线wordpress视频模版
  • 滨江道做网站公司郑州app开发公司
  • 让网站对搜索引擎友好免费html5中文网站素材
  • 网站注册页面设计厦门响应式网站制作
  • 做货代用什么网站找客户长沙房地产市场分析