SEO技术

SEO技术

Products

当前位置:首页 > SEO技术 >

乐温州网站如何建设信息门户网站?

96SEO 2026-02-23 11:51 13


CorePlugins和Modules

自动化引擎可自动执行云配置、配置管理、应用程序部署、服务内编排和许多其他

乐温州网站如何建设信息门户网站?

需求基本上每一个运维工程师都会听过或者使用过Ansible这是必然的只要你需要管理超过2位数的服务器Ansible基本是一个必备的工具如果你还不知道Ansible是怎么用的一定要找一个环境试试这是一个真正让运维工作自动化并且事半功倍的工具。

Ansible不使用任何代理程序也就是不需要部署agent也不使用额外的自定义安全基础设施因此很容易部署

最重要的是使用yaml配置就能编写整个自动化流程不需要学习太多额外的编程知识。

这一部分的内容不是对Ansible做基本介绍的而是对其中一些进阶的或者平时不会知道的东西做一个学习和记录的。

比如各种插件的特殊用法、如何在我们自己的Python程序中去使用Ansible、以及一些其他的技巧或者知识点。

9编写Ansible

Core或ansible-core是Ansible的主要构件和架构包含了许多的核心逻辑比如

CLI

Core提供你目前所熟知的所有Ansible的基础能力并且允许开发者在现有基础上拓展Ansible的功能。

Plugins和Modules

Ansible中非常重要的两个概念插件和模块那么他们有什么区别以及怎么在自己实现拓展功能的时候选择使用哪个特性

Core的功能。

大多数插件都在/usr/bin/ansible进程的控制节点上执行。

插件为Ansible的核心功能提供选项和扩展转换数据、记录输出、连接Inventory等Modules本质也是一种Plugins但是其特点在于能够在远程服务器上执行自动化任务。

模块以独立脚本的形式运行由Ansible在控制节点之外的进程中执行。

模块与Ansible的接口主要是

json接受参数并在退出前通过向stdout打印json字符串返回信息。

与其他插件必须用

Python

编写不同模块可以用任何语言编写不过Ansible只提供Python和Powershell版本的模块。

这其实很好理解Plugins是用来添加Ansible的核心代码逻辑的因此需要Ansible能够把它加载进来Ansible既然是Python编写的自然也要求Plugins是要用Python编写而Modules是通过ssh分发到受管节点执行的那么他可以是任意程序只要远程服务器能够运行它就可以了默认Ansible的那些模块其实在受管节点也是调用了Python解释器来运行的

插件类型

上面已经介绍了插件是什么在Ansible中有多种插件类型下面将官网的

Action

pluginsAction与module一起执行playbook任务所需的动作通常在后台自动运行在模块实际运行前执行一些前期工作Become

plugins用于执行命令时进行提权或者用户切换我们最常用的就是借助become完成sudo操作Cache

pluginsCache插件允许Ansible存储收集到的受管节点信息或者inventory信息避免因为从源数据检索而影响性能这个最直观的体现就是我们执行playbook时如果没有关闭ga***r_fact可能会等待很长时间借助cache可以有效减少重复在受管节点执行操作时的这个步骤耗时Callback

plugins回调插件可以在Ansible响应事件时添加新的行为。

默认情况下回调插件可控制运行命令行程序时看到的大部分输出但也可用于添加额外输出、与其他工具集成以及将事件汇聚到存储后端对于想要对接Ansible做自动化管理的同学来说这个插件很重要Cliconf

pluginsCliconf插件是网络设备CLI接口的抽象。

它们为Ansible在这些网络设备上执行任务提供了标准接口主机维护不常用我也没用过Connection

pluginsConnection插件允许Ansible使用既定方式连接到目标主机以便在上面执行任务Ansible自身附带了许多连接插件比如openssh和paramiko但每台主机一次只能使用一个Docs

fragmentsDocs

fragments可让使用者在一个地方记录多个插件或模块的通用参数Filter

pluginsFilter插件也是一个功能常用的插件他允许对数据进行特定的序列化或者其他自定义的处理比如对字符串进行拆分和连接默认Ansible使用的是jinja2提供的标准Filter功能同时增加了一些特性Httpapi

pluginsHttpapi

插件告诉Ansible如何与远程设备基于HTTP的API交互并在设备上执行任务Inventory

pluginsInventory插件是一个允许用户指向仓库数据源的插件也就是我们执行ad-hoc命令式的-i参数执行的逻辑Lookup

pluginsLookup插件是Jinja2模板语言的Ansible特定扩展。

用户可以使用该插件从外部来源文件、数据库、key/value存储、API

和其他服务访问playbook中的数据。

与所有模板一样Lookup在

Ansible

控制节点上运行。

Ansible使用标准模板系统提供查找插件返回的数据。

你可以使用查找插件从外部资源加载变量或模板信息。

Modules上文说过Modules也是一种插件所以这里也有它Module

utilities包含多个插件使用的共享代码最好把它和Modules一起理解Netconf

plugins网络设备Netconf接口抽象用于在网络设备上执行ansible任务Shell

pluginsShell插件的作用是确保Ansible运行的基本命令格式正确能够在目标计算机上运行并允许用户配置与Ansible执行任务方式相关的某些行为具体的情况可以跳转到Strategy

pluginsStrategy通过handles和受管节点的调度来控制playbook的执行流程具体的策略可以查看更改StrategyTerminal

pluginsTerminal插件包含有关如何正确初始化特定网络设备的SSH

shell以配合Ansible使用的信息。

这通常包括禁用自动分页、检测输出中的错误以及在设备支持和需要的情况下启用特权模式。

Test

pluginsTest插件可评估模板表达式并返回True或False。

有了测试插件用户就可以创建条件比如when关键字来实现tasks、blocks、play、playbooks和roles的逻辑。

Ansible使用作为Jinja一部分提供的标准测试并添加了一些专门的测试插件Vars

上面所说的插件其中一部分Action、Cache、Callback、Connection、Filter、Inventory、Lookup、Test、Vars支持开发者进行自定义的编写实现新的功能。

编写自定义插件

让我们先来编写一个自定义的插件来为Ansible提供额外的核心能力编写之前我们要知道一个Ansible插件必须要满足的条件

使用Python编写这个在上一节已经说明原因对异常进行合适的处理使用raise抛出异常返回值要是unicode编码的字符串符合Ansible的配置和文档标准

使用Python编写

使用Python编写插件这样它才能被PluginLoader加载并作为任何模块都能使用的Python对象返回。

由于插件将在控制节点上执行因此必须使用兼容的

Python

在插件执行过程中遇到错误时应通过引发AnsibleError()或类似类来返回错误信息。

在将其他异常包装成错误信息时应始终使用to_nativeAnsible函数以确保不同Python版本的字符串兼容下面是一个简单的样例

from

ansible.module_utils.common.text.converters

import

to_nativetry:cause_an_exception()

except

to_native(e))由于Ansible仅在需要时才会对变量进行解析因此filter插件和test插件应使用jinja2.exceptions.UndefinedError和AnsibleUndefinedVariable异常以确保未定义变量仅在必要时才引起程序的Fatal

返回值符合unicode编码

这个要求是为了保证过程中的字符串str能够在Jinja2中正常运行和解析Ansible提供了响应的方法进行转换

from

ansible.module_utils.common.text.converters

import

为了给我们自己的插件定义可配置选项我们需要在Python文件的DOCUMENTATION部分进行描述和声明这种规范可以确保我们插件响应选项的文档时钟保持正确和最新以下是格式定义

options:option_name:description:

describe

section_of_ansible.cfg_where_this_config_option_is_definedkey:

name:

name_of_second_varversion_added:

X.xrequired:

boolean/float/integer/list/none/path/pathlist/pathspec/string/tmppathversion_added:

X.x我们来看一个样例这里以自带的Callback插件中的json.py演示

(c)

https://www.gnu.org/licenses/gpl-3.0.txt)#

Make

configoptions:show_custom_stats:version_added:

2.6name:

task.ok现在假设我们设定好了自己的配置项如果要在插件内部使用对应的配置项一般使用self.get_option(option_name)进行获取不过有些插件的处理方式会有些不同

配置部分遵循了Ansible中值的优先原则当在同一个类别下定义多个值时最后一个值优先比如上述样例的这部分

vars:-

name_of_second_var此时option_name选项的值使用name_of_second_var如果要对option值进行设置则要使用self.set_option()方法

文档标准

列表的插件应包含格式良好的文档字符串如果我们继承一个插件则必须在文档中记录被继承插件的选项

编写插件

plugin为例编写一个插件首先编写的插件应该继承自对应的Base类比如

from

ActionModule(ActionBase):pass允许使用_execute_module方法来调用内置的Module并获取返回结果

module_return

self._execute_module(module_nameNAME_OF_MODULE,module_argsmodule_args,task_varstask_vars,

tmptmp)我们以官方文档中的示例为准进行讲解这里添加了一个通过setup模块获取的内容进行服务器时间差异的比对动作的action

from

ActionModule(ActionBase):Actiondef

run(self,

task_varsNone):super().run(tmp,

self._task.args.copy()module_return

self._execute_module(module_namesetup,module_argsmodule_args,task_varstask_vars,

tmptmp)ret

module_return[ansible_facts].items():if

key

remote_date_objret[delta_seconds]

time_delta.secondsret[delta_days]

time_delta.daysret[delta_microseconds]

{ansible_facts:

在上述代码中调用了内部的setup模块拉取受管节点的信息在其返回值中有这样的数据结构

ansible_date_time:

2024-01-08T09:02:08Z,iso8601_basic:

20240108T170208306063,iso8601_basic_short:

2024-01-08T09:02:08.306063Z,minute:

02,month:

2024},随后在自定义插件逻辑中我们比对了iso8061的值计算出时间的差异值然后返回这个插件的返回值类似以下的格式

172.18.0.25

}如果想要进一步修改插件满足自己的需求只需要在刚才编写的ActionModule中进行变更即可。

添加一个本地插件

上面我们已经编写了一个自定义的插件但是只是把代码写好是没法按照预期的方式通过ad-hoc的方式使用的大概率会出现以下的报错

172.18.0.25

这种方法不建议只做介绍直接将编写好的python文件拷贝到ansible的安装ANSIBLE_INSTALL_DIR大概是这样的$ENV_HOME/lib/python3.9/site-packages/ansible那么只需要把我们的插件放在$ANSIBLE_INSTALL_DIR/plugins/

这个方式是比较规范的当我们编写的插件是一个提供给全局使用的插件时我们就这样做就可以了编辑ansible的配置文件/etc/ansible/ansible.cfg添加action_plugins配置项

[defaults]

/usr/share/ansible/plugins/action

除此之外插件也可以放在Collection中这个在讲到Collection时再单独写

其他一些技巧

strategy进行任务的调度除此之外Ansible还提供了以下集中Strategy

plugins

不等待其他受管节点完成当前状态直接运行Taskhost_pinned

strategy

尽可能快的在每个受管节点执行play按照serial定义的批次执行默认为全部除非一个play可以在不被其他主机Task中断的情况下完成否则Ansible不会给一个新的主机启动play即拥有执行中的play的受管节点数量不超过forks规定的数量linear

strategy

假设我们希望每个节点都能速度拉满我们可以把策略改成free通过在playbook中指定或者更改配置文件都可以实现先看更改playbook

hosts:

本篇文章主要抛砖引玉说明了Ansible中模块和插件的区别以及如何自己编写一个简单的Action

Ansible插件接下来会再多讲解一些其他类型的插件编写方法。



SEO优化服务概述

作为专业的SEO优化服务提供商,我们致力于通过科学、系统的搜索引擎优化策略,帮助企业在百度、Google等搜索引擎中获得更高的排名和流量。我们的服务涵盖网站结构优化、内容优化、技术SEO和链接建设等多个维度。

百度官方合作伙伴 白帽SEO技术 数据驱动优化 效果长期稳定

SEO优化核心服务

网站技术SEO

  • 网站结构优化 - 提升网站爬虫可访问性
  • 页面速度优化 - 缩短加载时间,提高用户体验
  • 移动端适配 - 确保移动设备友好性
  • HTTPS安全协议 - 提升网站安全性与信任度
  • 结构化数据标记 - 增强搜索结果显示效果

内容优化服务

  • 关键词研究与布局 - 精准定位目标关键词
  • 高质量内容创作 - 原创、专业、有价值的内容
  • Meta标签优化 - 提升点击率和相关性
  • 内容更新策略 - 保持网站内容新鲜度
  • 多媒体内容优化 - 图片、视频SEO优化

外链建设策略

  • 高质量外链获取 - 权威网站链接建设
  • 品牌提及监控 - 追踪品牌在线曝光
  • 行业目录提交 - 提升网站基础权威
  • 社交媒体整合 - 增强内容传播力
  • 链接质量分析 - 避免低质量链接风险

SEO服务方案对比

服务项目 基础套餐 标准套餐 高级定制
关键词优化数量 10-20个核心词 30-50个核心词+长尾词 80-150个全方位覆盖
内容优化 基础页面优化 全站内容优化+每月5篇原创 个性化内容策略+每月15篇原创
技术SEO 基本技术检查 全面技术优化+移动适配 深度技术重构+性能优化
外链建设 每月5-10条 每月20-30条高质量外链 每月50+条多渠道外链
数据报告 月度基础报告 双周详细报告+分析 每周深度报告+策略调整
效果保障 3-6个月见效 2-4个月见效 1-3个月快速见效

SEO优化实施流程

我们的SEO优化服务遵循科学严谨的流程,确保每一步都基于数据分析和行业最佳实践:

1

网站诊断分析

全面检测网站技术问题、内容质量、竞争对手情况,制定个性化优化方案。

2

关键词策略制定

基于用户搜索意图和商业目标,制定全面的关键词矩阵和布局策略。

3

技术优化实施

解决网站技术问题,优化网站结构,提升页面速度和移动端体验。

4

内容优化建设

创作高质量原创内容,优化现有页面,建立内容更新机制。

5

外链建设推广

获取高质量外部链接,建立品牌在线影响力,提升网站权威度。

6

数据监控调整

持续监控排名、流量和转化数据,根据效果调整优化策略。

SEO优化常见问题

SEO优化一般需要多长时间才能看到效果?
SEO是一个渐进的过程,通常需要3-6个月才能看到明显效果。具体时间取决于网站现状、竞争程度和优化强度。我们的标准套餐一般在2-4个月内开始显现效果,高级定制方案可能在1-3个月内就能看到初步成果。
你们使用白帽SEO技术还是黑帽技术?
我们始终坚持使用白帽SEO技术,遵循搜索引擎的官方指南。我们的优化策略注重长期效果和可持续性,绝不使用任何可能导致网站被惩罚的违规手段。作为百度官方合作伙伴,我们承诺提供安全、合规的SEO服务。
SEO优化后效果能持续多久?
通过我们的白帽SEO策略获得的排名和流量具有长期稳定性。一旦网站达到理想排名,只需适当的维护和更新,效果可以持续数年。我们提供优化后维护服务,确保您的网站长期保持竞争优势。
你们提供SEO优化效果保障吗?
我们提供基于数据的SEO效果承诺。根据服务套餐不同,我们承诺在约定时间内将核心关键词优化到指定排名位置,或实现约定的自然流量增长目标。所有承诺都会在服务合同中明确约定,并提供详细的KPI衡量标准。

SEO优化效果数据

基于我们服务的客户数据统计,平均优化效果如下:

+85%
自然搜索流量提升
+120%
关键词排名数量
+60%
网站转化率提升
3-6月
平均见效周期

行业案例 - 制造业

  • 优化前:日均自然流量120,核心词无排名
  • 优化6个月后:日均自然流量950,15个核心词首页排名
  • 效果提升:流量增长692%,询盘量增加320%

行业案例 - 电商

  • 优化前:月均自然订单50单,转化率1.2%
  • 优化4个月后:月均自然订单210单,转化率2.8%
  • 效果提升:订单增长320%,转化率提升133%

行业案例 - 教育

  • 优化前:月均咨询量35个,主要依赖付费广告
  • 优化5个月后:月均咨询量180个,自然流量占比65%
  • 效果提升:咨询量增长414%,营销成本降低57%

为什么选择我们的SEO服务

专业团队

  • 10年以上SEO经验专家带队
  • 百度、Google认证工程师
  • 内容创作、技术开发、数据分析多领域团队
  • 持续培训保持技术领先

数据驱动

  • 自主研发SEO分析工具
  • 实时排名监控系统
  • 竞争对手深度分析
  • 效果可视化报告

透明合作

  • 清晰的服务内容和价格
  • 定期进展汇报和沟通
  • 效果数据实时可查
  • 灵活的合同条款

我们的SEO服务理念

我们坚信,真正的SEO优化不仅仅是追求排名,而是通过提供优质内容、优化用户体验、建立网站权威,最终实现可持续的业务增长。我们的目标是与客户建立长期合作关系,共同成长。

提交需求或反馈

Demand feedback