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

企业网站推广费用wordpress 金币

企业网站推广费用,wordpress 金币,营子区住房和城乡建设局网站,网商之窗高仿手表Ansible企业级实战一、Playbook 的组成1、栗子(1) 语法检测(2) 预测试(3) 列出主机(4) 列出任务(5) 列出标签(6) 执行(7) 验证2、任务列表和 action 介绍3、Handlers 介绍4、Templates五、Roles1.什么是 Roles2、案例 -- 利用 Roles 部署 MySQL3、运行并测试一、Playbook 的组成…

Ansible企业级实战

  • 一、Playbook 的组成
    • 1、栗子
      • (1) 语法检测
      • (2) 预测试
      • (3) 列出主机
      • (4) 列出任务
      • (5) 列出标签
      • (6) 执行
      • (7) 验证
    • 2、任务列表和 action 介绍
    • 3、Handlers 介绍
    • 4、Templates
  • 五、Roles
    • 1.什么是 Roles
    • 2、案例 -- 利用 Roles 部署 MySQL
    • 3、运行并测试

一、Playbook 的组成

Playbook 是由一个或多个”play” 组成的列表,主要功能在于通过将 task 定义好的角色归并为一组进行统一管理,也就是通过 Task 调用 Ansible 的模板将多个 “play” 组织在一个 Playbook 中运行。

在这里插入图片描述

1、栗子

vim aaa.yml
---
- hosts: webremote_user: roottasks:- name: create useruser:name: lisipassword: "{{ 'aptech'|password_hash('sha512') }}"state: presenttags:- aaa
...

(1) 语法检测

ansible-playbook --syntax-check aaa.yml

请添加图片描述

(2) 预测试

ansible-playbook -C aaa.yml

请添加图片描述

(3) 列出主机

ansible-playbook --list-hosts aaa.yml

请添加图片描述

(4) 列出任务

ansible-playbook --list-tasks aaa.yml

请添加图片描述

(5) 列出标签

ansible-playbook --list-tags aaa.yml

请添加图片描述

(6) 执行

ansible-playbook aaa.yml

请添加图片描述

(7) 验证

ansible web -m shell -a 'cat /etc/passwd'

请添加图片描述

2、任务列表和 action 介绍

“Play” 的主体是任务列表(Tasks list)。任务列表中的任务按照次序逐个在 hosts 中指定的所有主机上执行,在顺序执行这些任务时,如果发生错误会将所有已执行任务回滚。因此,需要在更正 Playbook 中的错误后重新执行这些任务。
Task 的任务是按照指定的参数去执行模块。每个 task 使用 name 输出 Playbook 的运行结果,一般输出内容为描述该任务执行的步骤。如果没有提供将输出 action 的运行结果。
定义 task 的格式可以用”action:module options” 或”module:options” 都可,其中后者可以实现向后兼容。如果 action 的内容过多,可在行首使用空白字符进行换行。

vim aaa.yml
---
- hosts: webremote_user: roottasks:- name: create useruser:name: lisipassword: "{{ 'aptech'|password_hash('sha512') }}"state: presenttags:- aaa- hosts: dbremote_user: roottasks:- name: copy filecopy: src=/etc/passwd dest=/opttags:- bbb...

如果多次去执行修改的 Playbook 时,涉及到一些没有变化的代码,可以使用 tages 让用户选择跳过没有变化代码,只运行 Playbook 中发生变化的部分代码。可以 在 Playbook 中 为 某 个 或 某 些任务定义 “标签”,在执行此 Playbook 时通过 ansible - playbook 命令的 – tags 选项能实现仅运行指定的 tasks 而非所有的 tasks。

ansible-playbook aaa.yml --tags "bbb"

请添加图片描述

3、Handlers 介绍

Handlers 用于当关注的资源发生变化时所采取的操作。在 notify 中列出的操作便称为 handler,也就是 notify 中需要调用 handler 中定义的操作。而 notify 这个动作用于在每个 “play” 的最后被触发,仅在所有的变化发生完成后一次性地执行指定操作。

(1) 安装apache并修改监听端口

dnf -y install httpd
mkdir conf
cp /etc/httpd/conf/httpd.conf  conf/
cd conf/
sed -i 's/Listen 80/Listen 8080/g' /root/conf/httpd.conf

请添加图片描述
(2) 同步配置文件并验证
同步

vim apache.yml
- hosts: webremote_user: roottasks:- name: install apacheyum: name=httpd state=latest- name: copy filecopy: src=/root/conf/httpd.conf dest=/etc/httpd/conf/httpd.conf- name: start httpdservice: enabled=true name=httpd state=started

验证

ansible web -m shell -a 'netstat -anpt | grep httpd'

请添加图片描述
(3) 设置handlers

sed -i 's/Listen 8080/Listen 8888/g' /root/conf/httpd.conf
ansible-playbook bbb.yml
ansible web -m shell -a 'netstat -anpt | grep httpd'

请添加图片描述

4、Templates

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

mkdir templates
cp conf/httpd.conf templates/httpd.conf.j2
sed -i 's/Listen 8888/Listen {{ http_port }}/g' /root/templates/httpd.conf.j2
sed -i 's/#ServerName www.example.com:80/ServerName {{ ansible_fqdn }}/g' /root/templates/httpd.conf.j2

(2) 为远程主机添加变量

sed -i '2s/$/ http_port=9999/' /etc/ansible/hosts
sed -i '5s/$/ http_port=10000/' /etc/ansible/hosts

(3) 编写playbook

vim ccc.yml
- hosts: allremote_user: rootvars:- package: httpd- service: httpdtasks:- name: install httpdyum: name={{ package }} state=latest- naem: chage conf_filetemplate: src=/root/templates/httpd.conf.j2 dest=/etc/httpd/conf/httpd.confnotify:- restart httpd- name: start httpdservice: enabled=true name={{ service }} state=startedhandlers:- name: restart httpdservice: name={{ service }} state=restarted

(4) 运行

ansible-playbook ccc.yml

请添加图片描述
(5) 验证

ansible all -m shell -a 'cat /etc/httpd/conf/httpd.conf|grep ^Listen'
ansible all -m shell -a 'cat /etc/httpd/conf/httpd.conf|grep ^ServerName'

请添加图片描述

五、Roles

目录结构
在这里插入图片描述

1.什么是 Roles

Ansible 为了层次化、结构化地组织 Playbook,使用了角色(roles),可以根据层次结构自动装载变量文件、tasks 以及 handlers 等。只需要在 Playbook 中使用 include 指令便可使用 roles。简单来讲,roles 就是分别将变量、文件、任务、模块及处理器设置于单独的目录中,便捷地使用它们。

2、案例 – 利用 Roles 部署 MySQL

mkdir mysql && cd mysqlmkdir vars && cd vars && touch main.yml && cd ..
cat <<EOF> /root/mysql/vars/main.yml
mysql_port: 3306
mysql_user: root
EOFmkdir tasks && cd tasks && touch main.yml && cd ..cat <<EOF>/root/mysql/tasks/main.yml
- name: install mysqlyum: name: mysql-serverstate: present
- name: start mysqlservice:name: mysqldstate: startedenabled: yes
- name: mysql configtemplate:src: my.cnf.j2dest: /etc/my.cnfnotify: restart mysql
EOFmkdir handlers && cd handlers && touch main.yml && cd ..
cat <<EOF>/root/mysql/handlers/main.yml
- name: restart mysqlservice:name: mysqldstate: restarted
EOFmkdir templates && cd templates && touch my.cnf.j2 && cd ..
cat<<EOF>/root/mysql/templates/my.cnf.j2
[mysqld]
port = {{ mysql_port }}
user = {{ mysql_user }}
EOFcd
cat <<EOF> ddd.yml
- hosts: dbroles:- mysql
EOF

文件说明

mkdir vars && cd vars && touch main.yml && cd ..  # 创建vars目录及主变量文件
# 写入MySQL端口和用户变量到vars/main.yml
cat <<EOF> /root/mysql/vars/main.yml
mysql_port: 3306  # MySQL服务端口
mysql_user: root  # MySQL运行用户
EOFmkdir tasks && cd tasks && touch main.yml && cd ..  # 创建tasks目录及主任务文件
# 写入MySQL部署任务到tasks/main.yml
cat <<EOF>/root/mysql/tasks/main.yml
- name: install mysql  # 安装MySQL服务器yum: name: mysql-serverstate: present
- name: start mysql  # 启动MySQL服务并设置开机自启service:name: mysqldstate: startedenabled: yes
- name: mysql config  # 配置MySQL,使用模板文件template:src: my.cnf.j2  # 模板源文件dest: /etc/my.cnf  # 目标配置文件notify: restart mysql  # 配置变更时通知重启MySQL
EOFmkdir handlers && cd handlers && touch main.yml && cd ..  # 创建handlers目录及文件
# 写入MySQL重启处理器到handlers/main.yml
cat <<EOF>/root/mysql/handlers/main.yml
- name: restart mysql  # 重启MySQL服务的处理器service:name: mysqldstate: restarted
EOFmkdir templates && cd templates && touch my.cnf.j2 && cd ..  # 创建templates目录及模板文件
# 写入MySQL配置模板到my.cnf.j2(使用变量)
cat<<EOF>/root/mysql/templates/my.cnf.j2
[mysqld]
port = {{ mysql_port }}  # 引用变量
user = {{ mysql_user }}  # 引用变量
EOFcd
cat <<EOF> ddd.yml  # 创建主执行剧本
- hosts: db  # 对db组的主机执行roles:- mysql  # 应用mysql角色
EOF

3、运行并测试

ansible-playbook ddd.yml
ansible db -m shell -a 'netstat -anpt | grep mysqld'

请添加图片描述

http://www.dtcms.com/a/563754.html

相关文章:

  • 高端品牌网站建设(杭州)怎么推广平台
  • 中国建设招标网站中标公告网站搭建策略与方法是什么
  • 设计得很好的企业网站聚名网是干什么的有风险的
  • 网站备案期间如何wordpress神主题
  • 工信部网站备案时间wordpress html音乐
  • html5中国网站欣赏网站安全架构
  • 哪些网站是动态的攀枝花网站网站建设
  • 高清网站seo学校网站开发与实现的解决思路
  • 晋城市建设局 网站网站建设评比标准
  • 阿里云linux主机如何添加2个网站南宁刚刚发生的事
  • 有经验的郑州网站建设关键词优化价格表
  • 分析建设网站的可行性分析整站优化案例
  • 上海网站建设千元漂亮自己创建小程序
  • 手表网站哪家好wordpress分类展示插件
  • 对网站的界面设计分析哪个网站做五金冲压的
  • 合肥做网站怎么样企业网站开发 宁波网络公司
  • 重庆市官方网站企业网站如何建设报告
  • 想做个网站怎么做福田公司官网
  • 网站建设需准备什么搜索引擎关键词排名优化
  • 购物网站有哪些平台使用vue做的商城网站
  • 成都网站品牌设计公司陕西住房和城乡建设厅官网
  • 印章在线生成网站内部优化工具
  • 数据库能上传网站模板微信软文是什么意思
  • 网站地图 模板网站 没有备案 访问不了
  • 广州市专业做网站兰州网站排名外包
  • 太原网站建设杰迅推客易可以做自己的网站吗
  • 天津 公司网站建设长沙公司做网站大概多少钱
  • c2c网站设计长沙 外贸网站建设公司排名
  • 高新手机网站建设公司WordPress添加海报分享
  • 新手做网站流程网站开发大致过程