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

做外贸没有企业网站小程序推广运营的公司

做外贸没有企业网站,小程序推广运营的公司,手机网页开发框架,开发公司项目总职责目录 一、playbook的组成 二、 playbook安装httpd服务 1.编写playbook剧本 2.运行playbook 三、定义、引用变量 四、 指定远程主机sudo切换用户 五、when条件判断 六、迭代 七、Templates 模块 1.先准备一个以 .j2 为后缀的 template 模板文件,设置引用的变…

目录

一、playbook的组成

二、 playbook安装httpd服务

1.编写playbook剧本

 2.运行playbook

三、定义、引用变量

四、 指定远程主机sudo切换用户

五、when条件判断

六、迭代

七、Templates 模块

1.先准备一个以 .j2 为后缀的 template 模板文件,设置引用的变量

2.修改主机清单文件,使用主机变量定义一个变量名相同,而值不同的变量

3.编写 playbook

八、tags 模块

九、利用playbook部署lnmp集群

1.修改nginx配置文件

2.编写lnmp的剧本

3.运行playbook并访问验证


一、playbook的组成

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

二、 playbook安装httpd服务

1.编写playbook剧本

vim test1.yaml
---     #yaml文件以---开头,以表明这是一个yaml文件,可省略
- name: first play     #定义一个play的名称,可省略gather_facts: false    #设置不进行facts信息收集,这可以加快执行速度,可省略hosts: webservers    #指定要执行任务的被管理主机组,如多个主机组用冒号分隔remote_user: root    #指定被管理主机上执行任务的用户tasks:     #定义任务列表,任务列表中的各任务按次序逐个在hosts中指定的主机上执行- name: test connection    #自定义任务名称ping:     #使用 module: [options] 格式来定义一个任务- name: disable selinuxcommand: '/sbin/setenforce 0'    #command模块和shell模块无需使用key=value格式ignore_errors: True     #如执行命令的返回值不为0,就会报错,tasks停止,可使用ignore_errors忽略失败的任务- name: disable firewalldservice: name=firewalld state=stopped    #使用 module: options 格式来定义任务,option使用key=value格式- name: install httpdyum: name=httpd state=latest- name: install configuration file for httpdcopy: src=/opt/httpd.conf dest=/etc/httpd/conf/httpd.conf    #这里需要一个事先准备好的/opt/httpd.conf文件notify: "restart httpd"    #如以上操作后为changed的状态时,会通过notify指定的名称触发对应名称的handlers操作- name: start httpd serviceservice: enabled=true name=httpd state=startedhandlers:     #handlers中定义的就是任务,此处handlers中的任务使用的是service模块- name: restart httpd    #notify和handlers中任务的名称必须一致service: name=httpd state=restarted
##Ansible在执行完某个任务之后并不会立即去执行对应的handler,而是在当前play中所有普通任务都执行完后再去执行handler,这样的好处是可以多次触发notify,但最后只执行一次对应的handler,从而避免多次重启。

 2.运行playbook

ansible-playbook test1.yaml//补充参数:
-k(–ask-pass):用来交互输入ssh密码
-K(-ask-become-pass):用来交互输入sudo密码
-u:指定用户
ansible-playbook test1.yaml --syntax-check    #检查yaml文件的语法是否正确
ansible-playbook test1.yaml --list-task       #检查tasks任务
ansible-playbook test1.yaml --list-hosts      #检查生效的主机
ansible-playbook test1.yaml --start-at-task='install httpd'     #指定从某个task开始运行

三、定义、引用变量

- name: second playhosts: webserversremote_user: rootvars:                 #定义变量- groupname: mysql   #格式为 key: value- username: nginxtasks:- name: create groupgroup: name={{groupname}} system=yes gid=306    #使用 {{key}} 引用变量的值- name: create useruser: name={{username}} uid=306 group={{groupname}} - name: copy filecopy: content="{{ansible_default_ipv4}}" dest=/opt/vars.txt    #在setup模块中可以获取facts变量信息copy: content="{{ansible_default_ipv4.address}}" dest=/opt/vars.txt    #在setup模块中可以获取facts变量信息下子字段address字段值(IP地址)

- name: second playhosts: webserversremote_user: roottasks:- name: create groupgroup: name={{groupname}} system=yes gid=306- name: create useruser: name={{username}} uid=306 group={{groupname}}- name: copy filecopy: content="{{ansible_default_ipv4}}" dest=/opt/vars.txtcopy: content="{{ansible_default_ipv4.address}}" dest=/opt/vars.txt                                                                       

四、 指定远程主机sudo切换用户

- hosts: dbserversremote_user: zhangsan            become: yes	                 #2.6版本以后的参数,之前是sudo,意思为切换用户运行become_user: root              #指定sudo用户为root
执行playbook时:ansible-playbook test3.yml -k -K 

五、when条件判断

在Ansible中,提供的唯一一个通用的条件判断是when指令,当when指令的值为true时,则该任务执行,否则不执行该任务。

#when一个比较常见的应用场景是实现跳过某个主机不执行任务或者只有满足条件的主机执行任务
vim test3.yaml
---
- hosts: allremote_user: roottasks:- name: shutdown host command: /sbin/shutdown -r nowwhen: ansible_default_ipv4.address == "192.168.88.20"      #when指令中的变量名不需要手动加上 {{}} #when: inventory_hostname == "<主机名>"ansible-playbook test4.yaml

六、迭代

Ansible提供了很多种循环结构,一般都命名为with_items,作用等同于 loop 循环。

- name: play1hosts: dbserversgather_facts: falsetasks: - name: create filefile:path: "{{item}}"state: touchwith_items: [ /opt/a, /opt/b, /opt/c, /opt/d ]- name: play2hosts: dbserversgather_facts: false		vars:test:- /tmp/test1- /tmp/test2- /tmp/test3- /tmp/test4tasks: - name: create directoriesfile:path: "{{item}}"state: directorywith_items: "{{test}}"   #循环引用变量- name: play3hosts: dbserversgather_facts: falsetasks:- name: add usersuser: name={{item.name}} state=present groups={{item.groups}}with_items:                  #多参数循环- name: test1groups: wheel- name: test2groups: root
或with_items:- {name: 'test1', groups: 'wheel'}- {name: 'test2', groups: 'root'}

七、Templates 模块

Jinja是基于Python的模板引擎。Template类是Jinja的一个重要组件,可以看作是一个编译过的模板文件,用来产生目标文本,传递Python的变量给模板去替换模板中的标记。

1.先准备一个以 .j2 为后缀的 template 模板文件,设置引用的变量

cp /etc/httpd/conf/httpd.conf /opt/httpd.conf.j2vim /opt/httpd.conf.j2
Listen {{http_port}}				#42行,修改
ServerName {{server_name}}			#95行,修改
DocumentRoot "{{root_dir}}"          #119行,修改

2.修改主机清单文件,使用主机变量定义一个变量名相同,而值不同的变量

vim /etc/ansible/hosts       
[webservers]
192.168.88.20 http_port=192.168.88.20:8080 server_name=www.accp.com:8080 root_dir=/var/www/html/accp[dbservers]
192.168.88.30 http_port=192.168.88.30:80 server_name=www.benet.com:80 root_dir=/var/www/html/benet

3.编写 playbook

vim apache.yaml
---
- hosts: allremote_user: rootvars:- package: httpd- service: httpdtasks:- name: install httpd packageyum: name={{package}} state=latest- name: install configure filetemplate: src=/opt/httpd.conf.j2 dest=/etc/httpd/conf/httpd.conf     #使用template模板notify:- restart httpd- name: create accp dirfile: path=/var/www/html/accp state=directorywhen: inventory_hostname == "192.168.88.20"- name: create accp dirfile: path=/var/www/html/benet state=directorywhen: inventory_hostname == "192.168.88.30"- name: start httpd serverservice: name={{service}} enabled=true state=startedhandlers:- name: restart httpdservice: name={{service}} state=restartedansible-playbook apache.yaml

八、tags 模块

可以在一个playbook中为某个或某些任务定义“标签”,在执行此playbook时通过ansible-playbook命令使用--tags选项能实现仅运行指定的tasks。

playbook还提供了一个特殊的tags为always。作用就是当使用always作为tags的task时,无论执行哪一个tags时,定义有always的tags都会执行。

vim webhosts.yaml
---
- hosts: webserversremote_user: roottasks:- name: Copy hosts filecopy: src=/etc/hosts dest=/opt/hoststags:- only     #可自定义- name: touch filefile: path=/opt/testhost state=touchtags:- always    #表示始终要运行的代码ansible-playbook webhosts.yaml --tags="only"

九、利用playbook部署lnmp集群

1.修改nginx配置文件

/配置 nginx 支持 PHP 解析
vim default.conf
......location ~ \.php$ {root           html;fastcgi_pass   127.0.0.1:9000;fastcgi_index  index.php;fastcgi_param  SCRIPT_FILENAME  /usr/share/nginx/html$fastcgi_script_name;  #将 /scripts 修改为nginx的工作目录include        fastcgi_params;}

2.编写lnmp的剧本

vim lnmp.yml
- name: nginxgather_facts: falsehosts: webserversremote_user: roottasks:
#yum安装nginx- name: create nginx yumcopy: src=/etc/yum.repos.d/nginx.repo dest=/etc/yum.repos.d/nginx.repo- name: install nginxyum: name=nginx
#将编辑好的nginx配置文件复制到远程主机 - name: nginx congruation filecopy: src=/opt/default.conf dest=/etc/nginx/conf.d/default.conf- name: start nginxservice: name=nginx state=started enabled=yes- name: wordpresscopy: src=/opt/lnmp/nginx/www/wordpress dest=/usr/share/nginx/html/- name: mysqlhosts: webserversremote_user: roottasks:
#安装mysql- name: remove mariadbshell: yum -y remove mariadb*ignore_errors: true- name: wegtcommand: wget https://repo.mysql.com/mysql57-community-release-el7-11.noarch.rpm- name: inatsll mysqlrpmcommand: rpm -ivh mysql57-community-release-el7-11.noarch.rpm- name: change mysql-community.rpmshell: sed -i 's/gpgcheck=1/gpgcheck=0/'  /etc/yum.repos.d/mysql-community.repo- name: install mysqlyum: name=mysql-server- name: start mysqldservice: name=mysqld.service state=started enabled=yes- 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的值
#登录mysql,修改MySQL登录密码  - name: grant locationshell:  mysql --connect-expired-password -uroot -p"{{ mysql_password['stdout'] }}" -e "ALTER USER 'root'@'localhost' IDENTIFIED BY 'Admin@123';"
#修改权限 - name: grant optionshell: mysql --connect-expired-password -uroot -pAdmin@123 -e "grant all privileges on *.* to 'root'@'%' identified by 'Admin@123456' with grant option;"
#创建wordpress数据库- name: create databaseshell: mysql --connect-expired-password -uroot -pAdmin@123 -e "create database wordpress;"
#赋予admin用户访问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;'
#为了防止每次yum操作都会自动更新,卸载这个软件- name: yumcommand: yum -y remove mysql57-community-release-el7-11.noarch#安装php及其依赖包
- name: phphosts: webserversremote_user: roottasks:- name: yum rpmcommand: yum -y install https://rpms.remirepo.net/enterprise/remi-release-7.rpm- name: yumyum: name=yum-utils- name: yum-configcommand: yum-config-manager --enable remi-php74- name: install 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

3.运行playbook并访问验证

ansible-playbook lnmp.yml#验证
浏览器访问http://192.168.88.30/wordpress/index.php

http://www.yidumall.com/news/15429.html

相关文章:

  • 企业推广产品有什么平台好seo引擎优化培训
  • 做网站排名要多少钱seo网址优化靠谱
  • 紫网站建设深圳网络营销公司
  • 阿里云备案 网站服务内容百度seo快速排名优化服务
  • 响水网站建设服务商广告行业怎么找客户
  • 如何让自己网站排名提高如何做免费网站推广
  • 上海市政府网站建设具体友情链接qq群
  • 做视频网站资金多少如何进行网络营销
  • 中企动力做网站怎么样百度网站名称
  • 改号宝网站搭建营销型网站制作成都
  • IDC网站用什么软件建百度推广的步骤
  • 做网站用哪些软件seo快速排名利器
  • 简单oa网站建设方案如何查询百度收录
  • 西安烽盈网站建设游戏推广怎么做挣钱
  • 长业建设集团有限公司网站色盲测试图第五版
  • 房管局网站建设方案推广关键词如何优化
  • 标准百度网站建设怎样通过网络销售自己的产品
  • 安徽六安彩礼一般给多少手机网站关键词seo
  • 怎么联系网站管理员指数分布的分布函数
  • 长春做网站哪个公司好如何写软文
  • wordpress网站打开慢杭州seo靠谱
  • 技能培训中心网站建设爱上链外链购买平台
  • 网站开发的系统设计怎么写win7最好的优化软件
  • 网站主题分析在线seo超级外链工具
  • 用自己点电脑做电影网站网站seo如何优化
  • 自己建网站能赚钱吗品牌管理
  • wordpress 修改文章 不改变日期如何做网站搜索引擎优化
  • 北滘网站设计谷歌搜索入口365
  • 新沂网站建设网络服务包括
  • 宝安设计网站建设浏览器网页版入口