首页 > 其他分享 >Ansible自动化运维(一)介绍、安装部署

Ansible自动化运维(一)介绍、安装部署

时间:2024-11-29 23:32:33浏览次数:6  
标签:运维 python ansible server etc Ansible ssh 自动化 root

Ansible自动化运维这部分我将会分为五个部分来为大家讲解

(一)介绍、安装部署、设置主机清单

(二)Ansible中的 ad-hoc 模式 模块详解(15)个

(三)Playbook 模式详解

(四)jinja2 模板 Roles角色详解

(五)运维实战

相关文章大家在最后可以看到

一、简介

1.认识自动化运维

传统运维效率低,大多工作人为完成
传统运维工作繁琐,容易出错
传统运维每日重复做相同的事情
传统运维没有标准化流程
传统运维的脚本繁多,不能方便管理
自动化运维就是要解决上面所有问题

2.常见的自动化运维工具

Puppet (www.puppetlabs.com)
基于rubby开发,c/s架构,支持多平台,可管理配置文件、用户、cron任务、
软件包、系统服务等。 分为社区版(免费)和企业版(收费),
企业版支持图形化配置。

Saltstack(官网 https://saltstack.com,文档docs.saltstack.com )
基于python开发,c/s架构,支持多平台,
比puppet轻量,在远程执行命令时非常快捷,
配置和使用比puppet容易,能实现puppet几乎所有的功能。

Ansible (www.ansible.com )
更加简洁的自动化运维工具,
不需要在客户端上安装agent,基于python开发。
可以实现批量操作系统配置、批量程序的部署、批量运行命令。

3.Ansible介绍

不需要安装客户端,通过sshd去通信(无密钥登录)
 基于模块工作,模块可以由任何语言开发
 不仅支持命令行使用模块,也支持编写yaml格式的playbook,易于编写和阅读
 安装十分简单,centos上可直接yum安装
 有提供UI(浏览器图形化)www.ansible.com/tower,收费的
 官方文档 http://docs.ansible.com/ansible/latest/index.html
 ansible已经被redhat公司收购,它在github上是一个非常受欢迎的开源软件,
 github地址https://github.com/ansible/ansible
 一本不错的入门电子书 https://ansible-book.gitbooks.io/ansible-first-book/

4.Ansible的作用

Ansible 是一个开源的自动化工具,主要用于以下几个方面:
1 配置管理:
管理和配置目标主机上的软件、服务、文件、用户等。
确保所有主机保持一致的配置状态。
2 应用部署:
自动化应用程序的部署过程,包括代码发布、数据库迁移、环境配置等。
支持滚动更新、蓝绿部署等多种部署策略。
3 任务自动化:
自动化日常运维任务,如备份、监控、日志管理等。
通过 Playbooks 描述复杂的自动化流程,提高工作效率。
4 持续集成/持续交付 (CI/CD):
集成到 CI/CD 流水线中,实现自动化的测试、构建和部署。
支持多种 CI/CD 工具,如 Jenkins、GitLab CI 等。

5.Ansible模式

Ansible中有两种模式:分别是ad-hoc模式和playbook模式;

    ad-hoc:简而言之,就是“临时命令”,不会保存;
    playbook:翻译过来就是剧本,在文件中保存执行的流程;

6.与其他工具的差异

1.代理 vs 无代理:
Ansible:无代理,通过 SSH 通信。
Puppet:需要在目标主机上安装 puppet-agent。
Chef:需要在目标主机上安装 chef-client。
SaltStack:默认使用代理,但支持无代理模式。
2.配置语言:
Ansible:使用 YAML 语法编写 Playbooks。
Puppet:使用 DSL(领域特定语言)。
Chef:使用 Ruby 语言编写配置。
SaltStack:使用 YAML 语法,但也可以使用其他格式。
3.架构复杂度:
Ansible:架构简单,易于部署和维护。
Puppet:需要设置 Master 和 Agent,架构相对复杂。
Chef:需要设置 Chef Server 和 Client,架构相对复杂。
SaltStack:需要设置 Master 和 Minion,架构相对复杂。
4.社区和生态系统:
Ansible:社区活跃,生态系统丰富,用户基数大。
Puppet:社区成熟,生态系统丰富,企业支持较好。
Chef:社区成熟,生态系统丰富,企业支持较好。
SaltStack:社区活跃,生态系统逐渐丰富。
5.适用场景:
Ansible:适合中小型企业,尤其是资源受限的环境。
Puppet:适合大型企业,尤其是需要集中管理和大规模部署的场景。
Chef:适合需要高度定制和灵活配置的场景。
SaltStack:适合需要高性能和实时响应的场景。

小总结

配置管理
应用部署
任务自动化
持续集成/持续交付 (CI/CD)
Ansible 的优势:

无代理架构
易学易用
幂等性
丰富的模块库
强大的社区支持
轻量级
推拉模式
与其他工具的差异:

代理 vs 无代理
配置语言
架构复杂度
社区和生态系统
适用场景

选择合适的工具应根据具体的业务需求、团队技能和资源状况来决定。
Ansible 以其简洁性和灵活性在许多场景下表现出色,尤其是在中小型企业中。

二、无密钥登陆

我们一共准备四台虚拟机来进行测试

Server 节点

192.168.232.100

Host1 节点

192.168.232.101

Host2 节点

192.168.232.102

Host3 节点

192.168.232.103

SSH服务无密钥登陆

1、配置hosts文件

四台机器根据节点规划更改主机名,并编写映射文件(四台都要配)
[root@server ~]# vi /etc/hosts
[root@server ~]# cat /etc/hosts
127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4
::1         localhost localhost.localdomain localhost6 localhost6.localdomain6
192.168.232.100 server
192.168.232.101 host1
192.168.232.102 host2
192.168.232.103 host3

2、配置无密钥登录

Ansible 是一个自动化工具,通常用于配置管理、应用部署、任务自动化等。在使用 Ansible 对远程主机进行操作时,为了提高效率和安全性,通常会设置无密码(或称无密钥)登录。这里所说的“无密钥”实际上是指使用公钥认证方式来代替传统的密码输入,以实现免交互的登录过程。

2.1、生成ssh密钥对(两种方法)

主节点生成密钥对(两种方法选择其中一个即可

方法一:

[root@server ~]# ssh-keygen -t rsa -b 4096
Generating public/private rsa key pair.
Enter file in which to save the key (/root/.ssh/id_rsa): 
Created directory '/root/.ssh'.
Enter passphrase (empty for no passphrase): 
Enter same passphrase again: 
Your identification has been saved in /root/.ssh/id_rsa.
Your public key has been saved in /root/.ssh/id_rsa.pub.
The key fingerprint is:
SHA256:BU37GWgUCXyD4CiyD4bVZn6L6smy6t0R/LnZYEz6AIQ root@server
The key's randomart image is:
+---[RSA 4096]----+
|      .oo=+o     |
|  .. o  oo=o     |
|.Eo.= .  .=..    |
|.+.=.    o . o   |
|+. ..o..S   o    |
|.o  .o*..        |
|  . .+.*         |
|...o. = =        |
|===. . + .       |
+----[SHA256]-----+
密钥会保存到 /root/.ssh/id_rsa.pub. 中

方法二:

ssh-keygen -P "" -t rsa

-P "":设置空密码
-t rsa: 指定生成密钥的类型为RSA
将公钥发给受管制节点
2.2、将公钥复制到远程主机(两种方法)

两种方法随便选一个即可

方法一:

使用 ssh-copy-id 命令(推荐)

ssh-copy-id -i /root/.ssh/id_rsa.pub root@host1

这个命令会自动将你的公钥添加到远程主机的 ~/.ssh/authorized_keys 文件中。

例如 host1 节点

[root@server ~]# ssh-copy-id -i /root/.ssh/id_rsa.pub root@host1
/usr/bin/ssh-copy-id: INFO: Source of key(s) to be installed: "/root/.ssh/id_rsa.pub"
/usr/bin/ssh-copy-id: INFO: attempting to log in with the new key(s), to filter out any that are already installed
/usr/bin/ssh-copy-id: INFO: 1 key(s) remain to be installed -- if you are prompted now it is to install the new keys
root@host1's password: 

Number of key(s) added: 1

Now try logging into the machine, with:   "ssh 'root@host1'"
and check to make sure that only the key(s) you wanted were added.

这个密码就是你登陆ssh客户端的密码

其他三个节点都是一样的操作。只需要把那条命令最后的host1改成host2、host3、server就OK了

方法二:

手动复制

如果你不能使用 ssh-copy-id,可以手动完成这个过程。首先,在本地机器上复制公钥的内容:

cat ~/.ssh/id_rsa.pub

然后,通过SSH登录到远程主机,并将上述内容追加到 ~/.ssh/authorized_keys 文件中

例如我要更改 host1 节点:

先登陆到 host1 节点上

[root@server ~]# ssh host1
The authenticity of host 'host1 (192.168.232.101)' can't be established.
ECDSA key fingerprint is SHA256:HJq04V3mSkdUL5p27TRiPTCS4m4swliqTMnNqHOM0kY.
ECDSA key fingerprint is MD5:2d:bb:db:54:41:b9:31:1f:c2:64:9f:e0:52:5e:ce:8a.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added 'host1,192.168.232.101' (ECDSA) to the list of known hosts.
root@host1's password: 
Permission denied, please try again.
root@host1's password: 
Last login: Tue Nov 26 08:20:56 2024 from server

这个密码就是你登陆ssh客户端的密码,这里我们可以看到已经成功进入到host1节点上

之后就可以直接将我们刚才复制下来的密钥添加进~/.ssh/authorized_keys文件中

echo "公钥内容" >> ~/.ssh/authorized_keys

小细节:将上一条命令全部敲完后,再将你复制的公钥内容粘贴进去,不然它有可能在你刚复制完之后就直接执行了。

最后exit 退出 host1 节点并且返回 server 节点

[root@host1 ~]# exit
登出
Connection to host1 closed.

其他三个节点都是一样的操作这里就不一一展示了

2.3、测试免密登录
[root@server ~]# ssh server
Last login: Tue Nov 26 10:12:03 2024 from server
[root@server ~]# exit
登出
Connection to server closed.
[root@server ~]# ssh host1
Last login: Tue Nov 26 09:50:23 2024 from server
[root@host1 ~]# exit
登出
Connection to host1 closed.
[root@server ~]# ssh host2
Last login: Tue Nov 26 10:11:38 2024 from server
[root@host2 ~]# exit
登出
Connection to host2 closed.
[root@server ~]# ssh host3
Last login: Tue Nov 26 10:11:46 2024 from server
[root@host3 ~]# exit
登出
Connection to host3 closed.

这里可以看到主节点可以成功通信其他三台控制节点

三、Anable的部署

1、主节点安装Ansible

主节点安装 epel-release 源后,安装 Ansible ,并检查是否安装成功

[root@server ~]# yum install -y epel-release
[root@server ~]# yum install -y ansible
[root@server ~]# ansible --version
ansible 2.9.27
  config file = /etc/ansible/ansible.cfg
  configured module search path = [u'/root/.ansible/plugins/modules', u'/usr/share/ansible/plugins/modules']
  ansible python module location = /usr/lib/python2.7/site-packages/ansible
  executable location = /usr/bin/ansible
  python version = 2.7.5 (default, Oct 14 2020, 14:45:30) [GCC 4.8.5 20150623 (Red Hat 4.8.5-44)]

2、Ansible常用知识点

2.1 Ansible常见的配置文件

• /etc/ansible/ansible.cfg:主配置文件
• /etc/ansible/hosts:主机清单文件
• /etc/ansible/roles:角色目录

2.2 常用参数

-m          #指定使用的模块名称,不指定默认使用command模块
-a          #使用的模块参数,模块的具体动作;指定要执行的具体命令
--syntax-check      #验证语法

2.3 不常用参数

--version   #ansible版本信息
-v          #显示详细信息
-i          #主机清单文件路径,默认是在/etc/ansible/hosts
-k          #提示输入ssh密码,而不使用基于ssh的密钥认证
-C          #模拟执行测试,但不会真的执行
-T          #执行命令的超时
-f  		    #一次返回几个结果

2.4 Ansible帮助命令

ansible-doc #帮助命令
ansible-doc -l    #列出所以的模块
ansible-doc 模块名   #查看模块的详细信息
ansible-doc 模块名 -s  #查看模块的选项使用说明

2.5 Ansible的执行状态

绿色:执行成功并且不需要做改变的操作
黄色:执行成功并且对目标主机做变更
红色:执行失败
粉色:警告信息
蓝色:显示ansible命令执行的过程
紫色: hosts文件中有无效字符,但通常不影响命令的执行结果

四、Ansible主机清单

主机清单介绍

主机资产清单,用于定义被管理主机的认证信息,例如ssh登录用户名、密码、以及key相关信息

# 查看ansible配置文件路径
[root@server ~]# rpm -qc ansible
/etc/ansible/ansible.cfg
/etc/ansible/hosts

主机清单位置:默认是 /etc/ansible/hosts

ansible -i 指定主机清单

在ansible配置文件ansible.cfg中指定默认的主机清单文件,文件路径:/etc/ansible/ansible.cfg

ansible.cfg常用配置解析
[defaults]
#inventory      = /etc/ansible/hosts      #主机列表配置文件
#library         = /usr/share/my_modules/  #库文件存放目录
#remote_tmp    = ~/.ansible/tmp          #临时py文件存放在远程主机目录
#local_tmp      = ~/.ansible/tmp          #本机的临时执行目录
#forks          = 5                       #默认并发数
#sudo_user      = root                    #默认sudo用户
#ask_sudo_pass  = True                     #每次执行是否询问sudo的ssh密码
#ask_pass       = True                     #每次执行是否询问ssh密码
#remote_port    = 22                      #远程主机端口
host_key_checking = False                 #跳过检查主机指纹
log_path = /var/log/ansible.log           #ansible日志
 
#普通用户提权操作
[privilege_escalation]
#become=True
#become_method=sudo
#become_user=root
#become_ask_pass=False

如果不配置 host_key_checking = False 和 log_path = /var/log/ansible.log ,会导致报错;

不配置 host_key_checking = False 会导致,执行 ansible 命令报错

配置 log_path 是为了更好的排查问题所在;

主机清单配置规则

路径:/etc/ansible/hosts中配置

两种方式:

分为两种登陆方式

方式一:密码登录

优点:
1.简单易用:对于初学者或偶尔使用的场景,直接使用密码登录更加直观和方便。
2.不需要额外配置:不需要生成和管理密钥对,只需提供用户名和密码即可。

缺点:
1.安全性较低:密码容易被猜测或暴力破解,尤其是如果密码强度不够的话。
2.不适合自动化:在自动化脚本或频繁执行的任务中,每次都需要输入密码,这不仅繁琐而且不实用。
3.容易出错:手动输入密码可能会导致误输入,尤其是在多台主机上操作时。

方式二:无密钥登录(基于公钥认证)

优点:
1.安全性更高:公钥认证机制比简单的密码认证更安全,因为私钥是保密的,即使公钥被泄露,也不会影响私钥的安全性。
2.自动化友好:对于需要频繁执行的任务或自动化脚本,无密钥登录可以避免每次都需要人工输入密码,从而提高效率。
3.减少人为错误:不需要记忆复杂的密码,减少了因忘记密码或输入错误而导致的问题。

缺点:
1.初始配置复杂:首次设置无密钥登录需要生成密钥对,并将公钥安全地复制到目标主机上。
2.密钥管理:如果私钥丢失或被窃取,可能需要重新生成密钥对并更新所有目标主机上的公钥。

无密钥登录配置

    先将主机清单设置分组

备份主机清单文件

[root@server ~]# ls /etc/ansible/
ansible.cfg  hosts  roles
[root@server ~]# cp -f /etc/ansible/hosts /etc/ansible/hosts.bak
[root@server ~]# ls /etc/ansible/
ansible.cfg  hosts  hosts.bak  roles

编写主机清单文件

  先将文件中原内容删掉,之后进行分组,分组可以随意分

[root@server ~]# > /etc/ansible/hosts
[root@server ~]# vi /etc/ansible/hosts
[root@server ~]# cat /etc/ansible/hosts
[servers]
server
host1
host2
host3

[node1]
host1

[node2]
host2

[node3]
host3

[node4]
host1
host2

        因为之前设置了密钥对,所以这里不需要添加密码之类的东西了

进入ansible目录下,保存配置文件

[root@server ~]# cd /etc/ansible/
[root@server ansible]# egrep -v "^$|^#" hosts

已经配置完毕

大家可以简单的试验一下

ansible node4 -m ping

到这里,无密钥登录全部完成

密码登录配置

因为我这篇文章写的是无密钥登录,所以这里的密码登录只是作为参考,大家感兴趣可以自己随便试一下

还是在在 /etc/ansible/hosts 中配置

主机配置格式

  1. 可以使用主机名(域名)或IP地址
  2. 支持主机名通配以及正则表达式
  3. 支持指定主机定义不同的变量,包括密码,端口号,用户等等

1)单主机配置

# 方式一:

ip + 端口 + 用户名 + 用户密码

[root@localhost ansible]# vi /etc/ansible/hosts 
[web01]
192.168.232.101 ansible_ssh_port=22 ansible_ssh_user=root ansible_ssh_pass='000000'
[web02]
192.168.232.102 ansible_ssh_port=22 ansible_ssh_user=root ansible_ssh_pass='000000'

# 测试:ansible 主机名 -m 指定模块
[root@localhost ansible]# ansible web01 -m ping
192.168.232.101 | SUCCESS => {
    "ansible_facts": {
        "discovered_interpreter_python": "/usr/bin/python"
    }, 
    "changed": false, 
    "ping": "pong"
}

[root@localhost ansible]# ansible web02 -m ping
192.168.232.102 | SUCCESS => {
    "ansible_facts": {
        "discovered_interpreter_python": "/usr/bin/python"
    }, 
    "changed": false, 
    "ping": "pong"
}

如果遇到报错(红色字体)

在ansible.cfg配置文件中开启这两个:(将注释注销了)

host_key_checking = False #跳过检查主机指纹

log_path = /var/log/ansible.log #ansible日志

# 方式二:

ip + 用户密码

[root@localhost ansible]# vi /etc/ansible/hosts 
[web01]
192.168.232.101 ansible_ssh_pass='000000'
[web02]
192.168.232.102 ansible_ssh_pass='000000'

# 测试:ansible 主机名 -m 指定模块
[root@localhost ansible]# ansible web01 -m ping
192.168.232.101 | SUCCESS => {
    "ansible_facts": {
        "discovered_interpreter_python": "/usr/bin/python"
    }, 
    "changed": false, 
    "ping": "pong"
}
[root@localhost ansible]# ansible web02 -m ping
192.168.232.102 | SUCCESS => {
    "ansible_facts": {
        "discovered_interpreter_python": "/usr/bin/python"
    }, 
    "changed": false, 
    "ping": "pong"
}

#没有定义用户时,默认使用当前登录用户;

2)多主机配置

#  IP+端口+密码
[root@localhost ansible]# vi /etc/ansible/hosts 
[web]
192.168.232.101 ansible_ssh_port=22 ansible_ssh_user=root ansible_ssh_pass='000000'
192.168.232.102 ansible_ssh_port=22 ansible_ssh_user=root ansible_ssh_pass='000000'

# 测试:ansible 主机名 -m 指定模块
[root@localhost ansible]# ansible web -m ping
192.168.232.101 | SUCCESS => {
    "ansible_facts": {
        "discovered_interpreter_python": "/usr/bin/python"
    }, 
    "changed": false, 
    "ping": "pong"
}
192.168.232.102 | SUCCESS => {
    "ansible_facts": {
        "discovered_interpreter_python": "/usr/bin/python"
    }, 
    "changed": false, 
    "ping": "pong"
}

主机组:

#  主机组变量+主机+密码
[root@localhost ansible]# vi /etc/ansible/hosts 
[web_group]
192.168.232.101
192.168.232.102

[web_group:vars]
ansible_ssh_pass='000000'

# 测试:ansible 主机名 -m 指定模块
[root@localhost ansible]# ansible web_group -m ping
192.168.232.101 | SUCCESS => {
    "ansible_facts": {
        "discovered_interpreter_python": "/usr/bin/python"
    }, 
    "changed": false, 
    "ping": "pong"
}
192.168.232.102 | SUCCESS => {
    "ansible_facts": {
        "discovered_interpreter_python": "/usr/bin/python"
    }, 
    "changed": false, 
    "ping": "pong"
}
#   定义多组,多组嵌套
# webservers组包括两个子组[apache,nginx]
[root@localhost ansible]# vim /etc/ansible/hosts 
#定义总ip
[web_group]
172.16.11.209
172.16.10.232
172.16.10.129
#apache有两台
[apache]
172.16.11.209
172.16.10.232

#nginx有一台
[nginx]
172.16.10.129 ansible_ssh_pass='csnginx123'

#定义密码
[apache:vars]
ansible_ssh_pass='123123'

[web_group:children]
apache
nginx



# 测试:ansible 主机名 -m 指定模块
[root@localhost ansible]# ansible web_group -m ping
172.16.11.209 | SUCCESS => {
    "ansible_facts": {
        "discovered_interpreter_python": "/usr/bin/python"
    }, 
    "changed": false, 
    "ping": "pong"
}
172.16.10.232 | SUCCESS => {
    "ansible_facts": {
        "discovered_interpreter_python": "/usr/bin/python"
    }, 
    "changed": false, 
    "ping": "pong"
}
172.16.10.129 | SUCCESS => {
    "ansible_facts": {
        "discovered_interpreter_python": "/usr/bin/python"
    }, 
    "changed": false, 
    "ping": "pong"
}

[root@localhost ansible]# ansible apache -m ping
172.16.11.209 | SUCCESS => {
    "ansible_facts": {
        "discovered_interpreter_python": "/usr/bin/python"
    }, 
    "changed": false, 
    "ping": "pong"
}
172.16.10.232 | SUCCESS => {
    "ansible_facts": {
        "discovered_interpreter_python": "/usr/bin/python"
    }, 
    "changed": false, 
    "ping": "pong"
}

[root@localhost ansible]# ansible nginx -m ping
172.16.10.129 | SUCCESS => {
    "ansible_facts": {
        "discovered_interpreter_python": "/usr/bin/python"
    }, 
    "changed": false, 
    "ping": "pong"
}

五、相关文章

Ansible自动化运维(一)介绍、安装部署-CSDN博客icon-default.png?t=O83Ahttps://blog.csdn.net/lifeng4321/article/details/144146216?spm=1001.2014.3001.5501

标签:运维,python,ansible,server,etc,Ansible,ssh,自动化,root
From: https://blog.csdn.net/lifeng4321/article/details/144146216

相关文章

  • RPA:电商订单处理自动化
    哈喽,大家好,我是若木,最近闲暇时间较多,于是便跟着教程做了一个及RPA,谈到这个,可能很多人并不是很了解,但是实际上,这玩意却遍布文末生活的边边角角。话不多说,我直接上内容,毕竟,即使我用更加华丽的辞藻来描述不如直接展示内容更能减少时间更能减少读者的阅读时间。问题:小李在一家电......
  • DevOps 平台越发展,开发运维越快失业?
    随笔从千万粉丝“何同学”抄袭开源项目说起,为何纯技术死路一条?数据源的统一与拆分监控报警系统的指标、规则与执行闭环我们的系统应该配置哪些监控报警项?监控报警系统如何实现自监控?java老矣,尚能饭否?一骑红尘妃子笑,无人知是荔枝来!张居正的考成法,对我们有何参考价......
  • 【Elasticsearch】容器日志管理:提升容器化应用运维效率
    ......
  • 使用 Vyper 和 Python 进行自动化登录并处理验证码
    虽然Vyper本身并不适合直接处理网页自动化任务,但我们可以通过Vyper来编写控制逻辑,并利用Python进行验证码的处理和图像识别。我们的目标是创建一个智能合约,模拟通过调用Python脚本来完成验证码的识别与登录过程。环境准备要完成自动化登录并处理验证码,我们需要以下工具......
  • 使用 Nim 和 Python 自动化处理登录和验证码
    项目概述这个项目的目标是实现一个自动化登录过程,其中包括:使用Nim编写自动化脚本来控制浏览器。通过Selenium完成自动化操作。使用外部Python脚本处理验证码的识别。2.环境准备Nim编程语言:用于编写主脚本来自动化登录操作。Selenium(Python):用Python编写验证......
  • 使用 Zig 实现自动化登录并处理验证码
    Zig是一种新的系统编程语言,它提供了与C类似的性能和控制能力,同时还具备更简洁的语法和强大的类型系统。在本篇文章中,我们将展示如何利用Zig语言配合外部工具来处理网页自动化中的验证码问题。我们将借助外部Python脚本来执行验证码的图像处理与识别,并通过Zig进行控制和调......
  • 抖店飞鸽客服自动化插件-自动回复或自动转接会话
    当自动回复的机器人客服无法解决的一些问题,比如投诉,退款等自动转接给其他人工控制的客服 抖店飞鸽客服后台地址为https://im.jinritemai.com/pc_seller_v2/main/workspace飞鸽客服创建子账号地址https://fxg.jinritemai.com/ffa/w/subaccount/employee      ......
  • 运维脚本:网络连通性测试
    1. 背景介绍在日常运维工作中,网络连通性是确保系统稳定性和高可用性的关键因素之一。通过测试网络连通性,运维人员可以快速诊断网络问题,判断系统与其他设备或服务的连接状态。这对于预防和处理网络故障至关重要。本文将介绍如何编写和使用一个简单的运维脚本,来自动化测试服务器......
  • 打造合理运维服务目录,开启高效运维之旅
    在当今数字化浪潮下,高效的运维服务对于企业的稳定运营和持续发展起着举足轻重的作用。而运维服务目录的设计,则是构建卓越运维服务体系的基石。一个合理的运维服务目录,能够确保IT服务有条不紊地进行,提高服务效率,降低运营风险,最终提升用户满意度和企业竞争力。今天,我们就来深入探......
  • 无线AC AP监控运维方案,保障无线网络稳定运行
        当前,无线网络已经成为企业信息化建设不可或缺的一部分,因其高效率、高可用和低成本的特性被广泛应用于IT基础设施建设中。如何保障网线网络的畅通和稳定,正在成为IT运维人员的一项重点任务。    面对无线网络的大规模和高复杂特点,北京智和信通无线网络运维方案......