2024版最新Ansible下载安装教程(非常详细)零基础入门到精通,收藏这一篇就够了

ansible软件下载 ansible ansible是一款功能强大的自动化运维工具 Linux自动化运维ansible–简介和基本 详见: https://blog.youkuaiyun.com/timonium/article/details/117170986 ansible官网 官网:https://www.ansible.com/ 官方文档:https://docs.ansible.com/ 官方软件下载: https://releases.ansible.com/ansible/ 源码包下载 官网下载目前最新版源码包(20 阅读详情
AI摘要

本文介绍了Ansible,它是为类Unix系统开发的配置和自动化工具,具有部署简单、模块化等特点,还说明了其安装、命令参数和使用方法。此外,提供了网络安全渗透测试的入门知识,包括多种攻击类型及防御方法,还分享了黑客/网络安全学习包资料。

【Ansible中文手册领取方式见文末!!】

Ansible 的概述

1. Ansible简介

Ansible是一款为类Unix系统开发的自由开源的配置和自动化工具。它用Python写成,类似于saltstack和Puppet,但是有一个不同和优点是我们不需要在节点中安装任何客户端。

它使用SSH来和节点进行通信。Ansible基于 Python paramiko 开发,分布式,无需客户端,轻量级,配置语法使用 YMAL 及 Jinja2模板语言,更强的远程命令执行操作。

2. 官方网站

https://www.ansible.com/

我们可以看到上面的红帽标志,红帽公司于2015年10月收购了ansible,而ansible成立于2013年。

3. ansible 的特点

1)部署简单,没有客户端,只需在主控端部署Ansible环境,被控端无需做任何操作;

2)模块化:调用特定的模块,完成特定任务

3)默认使用SSH协议对设备进行管理;

4)主从集中化管理;

5)配置简单、功能强大、扩展性强;

6)支持API及自定义模块,可通过Python轻松扩展;

7)通过Playbooks来定制强大的配置、状态管理

8)对云计算平台、大数据都有很好的支持;

9)具有幂等性:一个操作在一个主机上执行一遍和执行N遍的结果是一样的。

Ansible是基于模块工作的,本身没有批量部署的能力。真正具有批量部署的是ansible所运行的模块,ansible只是提供一种框架。主要包括:

1)连接插件connection plugins:负责和被监控端实现通信;

2)host inventory:指定操作的主机,是一个配置文件里面定义监控的主机;

3)各种模块核心模块、command模块、自定义模块;

4)借助于插件完成记录日志邮件等功能;

5)playbook:剧本执行多个任务时,非必需可以让节点一次性运行多个任务。

4. ansible的工作机制

Ansible 在管理节点将 Ansible 模块通过 SSH 协议推送到被管理端执行,执行完之后自动删除,可以使用 SVN 等来管理自定义模块及编排。

由图可以看出Ansible的组成由一下模块组成:

  • Ansible:ansible的核心模块

  • Host Inventory:主机清单,也就是被管理的主机列表

  • Playbooks:ansible的剧本,可想象为将多个任务放置在一起,一块执行

  • Core Modules:ansible的核心模块

  • Custom Modules:自定义模块

  • Connection Plugins:连接插件,用于与被管控主机之间基于SSH建立连接关系

  • Plugins:其他插件,包括记录日志等

Asible的安装

1. 设置EPEL仓库

Ansible仓库默认不在yum仓库中,因此我们需要使用下面的命令启用epel仓库

[root@itlaoxin162 ~]# yum install epel-release -y

2. 使用yum安装Ansible

[root@itlaoxin162 ~]# yum install ansible

3. 查看ansible的版本

[root@itlaoxin162 ~]# ansible --version

ansible 2.9.18

ansible的命令参数

anisble命令语法:ansible [-i 主机文件] [-f 批次] [组名] [-m 模块名称] [-a 模块参数]

ansible-doc 详细参数

[root@itlaoxin162 ~]# ansible-doc -l

列出所有模块列表

指定查看某个模块的参数

ansible-doc -s 模块名字

[root@itlaoxin162 ~]# ansible-doc -s onyx_ospf

- name: Manage OSPF protocol on Mellanox ONYX network devices

onyx_ospf:

 interfaces:            # List of interfaces and areas. Required if \`state=present'.

 ospf:                  # (required) OSPF instance number 1-65535

 router\_id:             # OSPF router ID. Required if \`state=present'.

 state:                 # OSPF state.

[root@itlaoxin162 ~]# ansible-doc -s service

- name: Manage services

service:

 arguments:             # Additional arguments provided on the command line.

 enabled:               # Whether the service should start on boot. \*At least one of

                          state and enabled are

                          required.\*

 name:                  # (required) Name of the service.

 pattern:               # If the service does not respond to the status command,

                          name a substring to look

                          for as would be found in

                          the output of the \`ps'

                          command as a stand-in for a

                          status result. If the

                          string is found, the

                          service will be assumed to

                          be started.

 runlevel:              # For OpenRC init scripts (e.g. Gentoo) only. The runlevel

                          that this service belongs

                          to.

 sleep:                 # If the service is being \`restarted' then sleep this many

                          seconds between the stop

Ansible的使用

1. 基于端口,用户,密码定义主机清单

格式:ansible基于ssh连接-i (inventory)参数后指定的远程主机时,也可以写端口,用户,密码。

如:

ansible_ssh_port: 指定ssh端口 ansible_ssh_user:指定 ssh 用户 ansible_ssh_pass: 指定 ssh 用户登录是认证密码(明文密码不安全) ansible_sudo_pass: 指明 sudo 时候的密码

添加的内容如下:

[root@itlaoxin162 ~]# grep -v ^# /etc/ansible/hosts |grep -v ^$

[web-servers]

192.168.1.163 ansible_ssh_port=22 ansible_ssh_user=root ansible_ssh_pass=12345678

[root@itlaoxin16

直接添加到文件文末就可以

测试主机的连通性

[root@itlaoxin162 ~]# ansible -i /etc/ansible/hosts web-servers -m ping

[WARNING]: Invalid characters were found in group names but not replaced, us

see details

192.168.1.163 | SUCCESS => {

“ansible_facts”: {

   "discovered\_interpreter\_python": "/usr/bin/python"

},

“changed”: false,

“ping”: “pong”

}

查看组下所有的IP:

[root@itlaoxin162 ~]# ansible all --list

[WARNING]: Invalid characters were found in group names but not replaced, use

-vvvv to see details

hosts (1):

192.168.1.163

[root@itlaoxin162 ~]#

2. 基于ssh密钥来访问定义主机清单

设置密钥

[root@itlaoxin162 ~]# ssh-keygen

Generating public/private rsa key pair.

Enter file in which to save the key (/root/.ssh/id_rsa):

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:CWdEZJbtzH4+ypeXe80jPnBr9UX/0yChZtX5DCjKckg root@itlaoxin162

The key’s randomart image is:

±–[RSA 2048]----+

| o*o |

| +. . |

| . o+ o . |

| E+ .= + + .|

| . oSo + . =.|

| o + =.o…=|

| o o oooo+*|

| . ==ooB|

| ooo++oo|

±—[SHA256]-----+

[root@itlaoxin162 ~]#

拷贝密钥并测试

[root@itlaoxin162 ~]# ssh-copy-id root@192.168.1.163

/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@192.168.1.163’s password:

Number of key(s) added: 1

Now try logging into the machine, with: “ssh ‘root@192.168.1.163’”

and check to make sure that only the key(s) you wanted were added.

**登陆测试:**

[root@itlaoxin162 ~]# ssh 192.168.1.163

Last login: Wed Apr 21 08:13:14 2021 from 192.168.1.162

71服务器也发送密钥

[root@itlaoxin162 ~]# ssh-copy-id root@192.168.1.71

修改hosts

vim /etc/ansible/hosts

查看配置文件中刚刚修改的内容

[root@itlaoxin162 ~]# grep -v “^#” /etc/ansible/hosts |grep -v “^$”

[web-servers]

192.168.1.163

192.168.1.71

ansible远程执行命令测试

ping模块 主要用来检测网络的连通性

command模块,执行shell命令

使用ping检查‘web-servers’或者ansible节点的连通性。

[root@itlaoxin162 ~]# ansible -i /etc/ansible/hosts ‘web-servers’ -m ping

[WARNING]: Invalid characters were found in group names but not replaced, use

-vvvv to see details

192.168.1.163 | SUCCESS => {

“ansible_facts”: {

   "discovered\_interpreter\_python": "/usr/bin/python"

},

“changed”: false,

“ping”: “pong”

}

192.168.1.71 | SUCCESS => {

“ansible_facts”: {

   "discovered\_interpreter\_python": "/usr/bin/python"

},

“changed”: false,

“ping”: “pong”

}

[root@itlaoxin162 ~]#

这条命令我们也可以不指定hosts,效果是一样的,我们只要指定组即可

[root@itlaoxin162 ~]# ansible ‘web-servers’ -m ping

[WARNING]: Invalid characters were found in group names but not replaced, use

-vvvv to see details

192.168.1.71 | SUCCESS => {

“ansible_facts”: {

   "discovered\_interpreter\_python": "/usr/bin/python"

},

“changed”: false,

“ping”: “pong”

}

192.168.1.163 | SUCCESS => {

“ansible_facts”: {

   "discovered\_interpreter\_python": "/usr/bin/python"

},

“changed”: false,

“ping”: “pong”

}

[root@itlaoxin162 ~]#

有时候我们为了方便阅读也把主机组名写在最后面

web-servers 这个组名,放在最后面

[root@itlaoxin162 ~]# ansible -m command -a “uptime” ‘web-servers’

[WARNING]: Invalid characters were found in group names but not replaced, use

-vvvv to see details

192.168.1.71 | CHANGED | rc=0 >>

08:37:28 up 11 min, 3 users, load average: 0.02, 0.15, 0.17

192.168.1.163 | CHANGED | rc=0 >>

08:37:28 up 1:58, 5 users, load average: 0.00, 0.01, 0.05

[root@itlaoxin162 ~]#

案例1:检查节点的内存情况

[root@itlaoxin162 ~]# ansible -m command -a "free -m " ‘web-servers’

[WARNING]: Invalid characters were found in group names but not replaced, use

-vvvv to see details

192.168.1.71 | CHANGED | rc=0 >>

         total        used        free      shared  buff/cache   available

Mem: 3770 826 2283 15 661 2709

Swap: 2047 0 2047

192.168.1.163 | CHANGED | rc=0 >>

         total        used        free      shared  buff/cache   available

Mem: 3770 892 1076 38 1802 2588

Swap: 2047 0 2047

[root@itlaoxin162 ~]#

案例2:给节点增加用户

[root@itlaoxin162 ~]# ansible -m command -a “useradd itoldxin” ‘web-servers’

[WARNING]: Invalid characters were found in group names but not replaced, use

-vvvv to see details

192.168.1.71 | CHANGED | rc=0 >>

192.168.1.163 | CHANGED | rc=0 >>

[root@itlaoxin162 ~]#

查看是否创建用户成功

[root@itlaoxin162 ~]# ansible -m command -a “id itoldxin” ‘web-servers’

[WARNING]: Invalid characters were found in group names but not replaced, use

-vvvv to see details

192.168.1.71 | CHANGED | rc=0 >>

uid=1001(itoldxin) gid=1001(itoldxin) 组=1001(itoldxin)

192.168.1.163 | CHANGED | rc=0 >>

uid=1001(itoldxin) gid=1001(itoldxin) 组=1001(itoldxin)

[root@itlaoxin162 ~]#

Ansible的高级用法

1. ansible的常用模块

1) ansible的3个远程模块的区别

command :ansible的默认模块,不指定-m参数的时候,使用的就是command模块;常见的命令都可以使用,但命令的执行不是通过shell来执行的,所以< > | and & z这些操作都不可以,不支持管道,没法批量执行命令

shell模块:使用shell模块的时候默认是通过/bin/sh来执行的,所以在终端输入的各种命令都可以使用

scripts模块:使用scripts模块可以在本地写一个脚本,在远程服务器上执行

案例1:使用shell模块的案例

[root@itlaoxin162 ~]# ansible -i /etc/ansible/hosts web-servers -m shell -a “source ~/.bash_profile && df -h|head -n 1”

[WARNING]: Invalid characters were found in group names but not replaced, use

-vvvv to see details

192.168.1.71 | CHANGED | rc=0 >>

文件系统 容量 已用 可用 已用% 挂载点

192.168.1.163 | CHANGED | rc=0 >>

文件系统 容量 已用 可用 已用% 挂载点

[root@itlaoxin162 ~]#

注意:shell也可以把一个脚本copy到远程端然后再执行,但这样的话就需要调用两次ansible,所以script的出现就解决了这个问题;

案例2:使用script 模块

先写一个脚本:

[root@itlaoxin162 ~]# cat !$

cat /etc/ansible/test.sh

#!/bin/bash

date

hostname

echo "

[root@itlaoxin162 ~]#

执行查看结果:

[root@itlaoxin162 ~]# ansible -i /etc/ansible/hosts web-servers -m script -a “/etc/ansible/test.sh”

[WARNING]: Invalid characters were found in group names but not replaced, use

-vvvv to see details

192.168.1.71 | CHANGED => {

“changed”: true,

“rc”: 0,

“stderr”: “Shared connection to 192.168.1.71 closed.\r\n”,

“stderr_lines”: [

   "Shared connection to 192.168.1.71 closed."

],

“stdout”: “2021年 04月 21日 星期三 08:59:33 CST\r\nk8s-master\r\n\r\n”,

“stdout_lines”: [

   "2021年 04月 21日 星期三 08:59:33 CST",

   "k8s-master",

]

}

192.168.1.163 | CHANGED => {

“changed”: true,

“rc”: 0,

“stderr”: “Shared connection to 192.168.1.163 closed.\r\n”,

“stderr_lines”: [

   "Shared connection to 192.168.1.163 closed."

],

“stdout”: “2021年 04月 21日 星期三 08:59:33 CST\r\nitlaoxin-163\r\n\r\n”,

“stdout_lines”: [

   "2021年 04月 21日 星期三 08:59:33 CST",

   "itlaoxin-163",

]

}

[root@itlaoxin162 ~]#

可以看到已经执行成功

2) copy模块的使用

copy模块:实现主控端向目标主机拷贝文件,类似scp功能

案例1:把ansible主机的/etc/hosts 拷贝到主机组机器中的/root/下

[root@itlaoxin162 ~]# ansible -i /etc/ansible/hosts web-servers -m copy -a “src=/etc/hosts dest=/root owner=root group=root mode=0777”

[WARNING]: Invalid characters were found in group names but not replaced, use

-vvvv to see details

192.168.1.71 | CHANGED => {

“ansible_facts”: {

   "discovered\_interpreter\_python": "/usr/bin/python"

},

“changed”: true,

“checksum”: “700a03c76a37e929d448b3be6419f4289d9314e6”,

“dest”: “/root/hosts”,

“gid”: 0,

“group”: “root”,

“md5sum”: “138004edd9d16f2818e20842fc1f273d”,

“mode”: “0777”,

“owner”: “root”,

“secontext”: “system_u:object_r:admin_home_t:s0”,

“size”: 183,

“src”: “/root/.ansible/tmp/ansible-tmp-1618966980.44-20046-203314294949142/source”,

“state”: “file”,

“uid”: 0

}

192.168.1.163 | CHANGED => {

“ansible_facts”: {

   "discovered\_interpreter\_python": "/usr/bin/python"

},

“changed”: true,

“checksum”: “700a03c76a37e929d448b3be6419f4289d9314e6”,

“dest”: “/root/hosts”,

“gid”: 0,

“group”: “root”,

“md5sum”: “138004edd9d16f2818e20842fc1f273d”,

“mode”: “0777”,

“owner”: “root”,

“secontext”: “system_u:object_r:admin_home_t:s0”,

“size”: 183,

“src”: “/root/.ansible/tmp/ansible-tmp-1618966980.45-20045-254958397204815/source”,

“state”: “file”,

“uid”: 0

}

[root@itlaoxin162 ~]#

查看是否执行成功:

[root@itlaoxin162 ~]# ansible -m command -a “ls /root/hosts” ‘web-servers’

[WARNING]: Invalid characters were found in group names but not replaced, use

-vvvv to see details

192.168.1.71 | CHANGED | rc=0 >>

/root/hosts

192.168.1.163 | CHANGED | rc=0 >>

/root/hosts

[root@itlaoxin162 ~]#

注意:command 不能使用ll命令,但可以使用ls -l的命令

[root@itlaoxin162 ~]# ansible -m command -a “ls -l /root/hosts” ‘web-servers’

[WARNING]: Invalid characters were found in group names but not replaced, use

-vvvv to see details

192.168.1.71 | CHANGED | rc=0 >>

-rwxrwxrwx. 1 root root 183 4月 21 09:03 /root/hosts

192.168.1.163 | CHANGED | rc=0 >>

-rwxrwxrwx. 1 root root 183 4月 21 09:03 /root/hosts

[root@itlaoxin162 ~]#

3. file模块

案例5 给文件设置权限

[root@itlaoxin162 ~]# ansible -i /etc/ansible/hosts web-servers -m file -a “path=/root/hosts mode=0755”

[WARNING]: Invalid characters were found in group names but not replaced, use

-vvvv to see details

192.168.1.71 | CHANGED => {

“ansible_facts”: {

   "discovered\_interpreter\_python": "/usr/bin/python"

},

“changed”: true,

“gid”: 0,

“group”: “root”,

“mode”: “0755”,

“owner”: “root”,

“path”: “/root/hosts”,

“secontext”: “system_u:object_r:admin_home_t:s0”,

“size”: 183,

“state”: “file”,

“uid”: 0

}

192.168.1.163 | CHANGED => {

“ansible_facts”: {

   "discovered\_interpreter\_python": "/usr/bin/python"

},

“changed”: true,

“gid”: 0,

“group”: “root”,

“mode”: “0755”,

“owner”: “root”,

“path”: “/root/hosts”,

“secontext”: “system_u:object_r:admin_home_t:s0”,

“size”: 183,

“state”: “file”,

“uid”: 0

}

[root@itlaoxin162 ~]#

查看权限:

[root@itlaoxin162 ~]# ansible -m command -a “ls -l /root/hosts” ‘web-servers’

[WARNING]: Invalid characters were found in group names but not replaced, use

-vvvv to see details

192.168.1.71 | CHANGED | rc=0 >>

-rwxr-xr-x. 1 root root 183 4月 21 09:03 /root/hosts

192.168.1.163 | CHANGED | rc=0 >>

-rwxr-xr-x. 1 root root 183 4月 21 09:03 /root/hosts

[root@itlaoxin162 ~]#

4. stat模块获取远程文件信息

案例6 获取文件信息

[root@itlaoxin162 ~]# ansible -i /etc/ansible/hosts web-servers -m stat -a “path=/root/hosts”

[WARNING]: Invalid characters were found in group names but not replaced, use

-vvvv to see details

192.168.1.71 | SUCCESS => {

“ansible_facts”: {

   "discovered\_interpreter\_python": "/usr/bin/python"

},

“changed”: false,

“stat”: {

   "atime": 1618966982.400622,

   "attr\_flags": "",

   "attributes": \[\],

   "block\_size": 4096,

   "blocks": 8,

   "charset": "us-ascii",

   "checksum": "700a03c76a37e929d448b3be6419f4289d9314e6",

   "ctime": 1618967480.9315438,

   "dev": 64768,

   "device\_type": 0,

   "executable": true,

   "exists": true,

   "gid": 0,

   "gr\_name": "root",

   "inode": 78337,

   "isblk": false,

   "ischr": false,

   "isdir": false,

   "isfifo": false,

   "isgid": false,

   "islnk": false,

   "isreg": true,

   "issock": false,

   "isuid": false,

   "mimetype": "text/plain",

   "mode": "0755",

   "mtime": 1618966981.7806218,

   "nlink": 1,

   "path": "/root/hosts",

   "pw\_name": "root",

   "readable": true,

   "rgrp": true,

   "roth": true,

   "rusr": true,

   "size": 183,

   "uid": 0,

   "version": "693378940",

   "wgrp": false,

   "woth": false,

   "writeable": true,

   "wusr": true,

   "xgrp": true,

   "xoth": true,

   "xusr": true

}

}

192.168.1.163 | SUCCESS => {

“ansible_facts”: {

   "discovered\_interpreter\_python": "/usr/bin/python"

},

“changed”: false,

“stat”: {

   "atime": 1618966982.6472814,

   "attr\_flags": "",

   "attributes": \[\],

   "block\_size": 4096,

   "blocks": 8,

   "charset": "us-ascii",

   "checksum": "700a03c76a37e929d448b3be6419f4289d9314e6",

   "ctime": 1618967481.0644567,

   "dev": 64768,

   "device\_type": 0,

   "executable": true,

   "exists": true,

   "gid": 0,

   "gr\_name": "root",

   "inode": 33662547,

   "isblk": false,

   "ischr": false,

   "isdir": false,

   "isfifo": false,

   "isgid": false,

   "islnk": false,

   "isreg": true,

   "issock": false,

   "isuid": false,

   "mimetype": "text/plain",

   "mode": "0755",

   "mtime": 1618966982.176287,

   "nlink": 1,

   "path": "/root/hosts",

   "pw\_name": "root",

   "readable": true,

   "rgrp": true,

   "roth": true,

   "rusr": true,

   "size": 183,

   "uid": 0,

   "version": "1103139934",

   "wgrp": false,

   "woth": false,

   "writeable": true,

   "wusr": true,

   "xgrp": true,

   "xoth": true,

   "xusr": true

}

}

5. get_url 模块

实现远程主机下载指定的url地址,支持sha256sum文件校验

案例7

ansible -i /etc/ansible/hosts web-servers -m get_url -a “url=https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm dest=/tmp/ mode=0440 force=yes”

1

注:url=https://xxx 的等号=前后不能有空格

扩展:查看force=yes的作用

6. yum模块

yum模块linux平台软件包管理。

yum模块可以提供的status状态:latest ,present,installed #这三个代表安装;removed, absent #这两个是卸载

案例8 使用yum模块安装httpd

ansible -i /etc/ansible/hosts web-servers -m yum -a “name=httpd state=latest”

7. cron模块远程管理主机crontab配置

案例9:增加每30分钟执行 echo"我是互联网老辛"

ansible -i /etc/ansible/hosts web-servers -m cron -a “name=‘list dir’ minute=’*/30’ job=‘echo ”

8. service 远程管理主机系统服务模块

service模块常用参数:

1)name参数:此参数用于指定需要操作的服务名称,比如 nginx,httpd。

2)state参数:此参数用于指定服务的状态

比如,我们想要启动远程主机中的httpd,则可以将 state 的值设置为 started;

如果想要停止远程主机中的服务,则可以将 state 的值设置为 stopped。

此参数的可用值有 started、stopped、restarted(重启)、reloaded。

enabled参数:此参数用于指定是否将服务设置为开机 启动项,设置为 yes 表示将对应服务设置为开机启动,设置为 no 表示不会开机启动。

注:想使用service模块启动服务,被启动的服务,必须可以使用service 命令启动或关闭

案例10 使用service模块重启httpd

[root@itlaoxin162 ~]# ansible -i /etc/ansible/hosts web-servers -m service -a “name=httpd state=restarted”

9. user模块 管理远程主机的用户

案例11:使用user模块创建一个用户itlaoxin

[root@itlaoxin162 ~]# ansible -i /etc/ansible/hosts web-servers -m user -a “name=itlaoxin state=present”

[WARNING]: Invalid characters were found in group names but not replaced, use

-vvvv to see details

192.168.1.71 | CHANGED => {

“ansible_facts”: {

   "discovered\_interpreter\_python": "/usr/bin/python"

},

“changed”: true,

“comment”: “”,

“create_home”: true,

“group”: 1002,

“home”: “/home/itlaoxin”,

“name”: “itlaoxin”,

“shell”: “/bin/bash”,

“state”: “present”,

“system”: false,

“uid”: 1002

}

192.168.1.163 | CHANGED => {

“ansible_facts”: {

   "discovered\_interpreter\_python": "/usr/bin/python"

},

“changed”: true,

“comment”: “”,

“create_home”: true,

“group”: 1002,

“home”: “/home/itlaoxin”,

“name”: “itlaoxin”,

“shell”: “/bin/bash”,

“state”: “present”,

“system”: false,

“uid”: 1002

}

[root@itlaoxin162 ~]#

ansible 实战案例

playbooks的介绍

1) 在playbooks 中定义任务:

- name:task description #任务描述信息

module_name: module_args #需要使用的模块名字:模块参数

2) ansible-playbook 执行 命令:

ansible-playbook site.yml

playbook是由一个或多个"play"组成的列表。play的主要功能在于将事先归为一组的主机装扮成事先通过ansible中的task定义好的角色。

github上提供了大量的实例供大家参考: https://github.com/ansible/ansible-examples

实战一:使用playbook 批量部署多台LAMP环境

先介绍下:Playbook常用文件夹作用

  • files:存放需要同步到异地服务器的源码文件及配置文件;

  • handlers:当服务的配置文件发生变化时需要进行的操作,比如:重启服务,重新加载配置文件,handlers ['hændləz] 处理程序

  • meta:角色定义,可留空;

  • tasks:需要进行的执行的任务;

  • templates:用于执行lamp安装的模板文件,一般为脚本;

  • vars:本次安装定义的变量

搭建思路

思路:我们搭建lanp架构,大概需要:

  • yum 安装服务

  • service 启动

  • copy 把网站拷贝过去

在playbooks 中定义任务:

name:task description #任务描述信息

module_name: module_args #需要使用的模块名字:

github上提供了大量的实例供大家参考:

https://github.com/ansible/ansible-examples 4.2

使用Playbook批量部署多台LAMP环境步骤.我们可以在ansible服务器上安装LAMP环境,然后,再将配置文件通过ansible拷贝到远程主机上

第一步:安装httpd软件

[root@ansible ~]# yum -y install httpd -y

第二部:安装MySQL

[root@ansible ~]# yum install mariadb-server mariadb -y #安装mysql服务

[root@ansible ~]# mkdir -p /mysqldata/data/ #创建目录作为数据存放的位置

[root@ansible ~]# chown -R mysql:mysql /mysqldata/ #授权

[root@ansible ~]# vim /etc/my.cnf #改变数据存放目录改:

2 datadir=/var/lib/mysql

改为:2 datadir=/mydata/data/

[root@ansible data]# systemctl start mariadb

第三步:安装PHP和php-mysql模块

[root@ansible ~]# yum -y install php php-mysql

第四步:提供php的测试页

[root@ansible ~]# vim /var/www/html/index.php

[root@ansible ~]# cat /var/www/html/index.php

phpinfo();

?>

[root@ansible ~]# systemctl reload httpd #启动httpd服务

httpd测试:http://192.168.43.162

确保已经出现上面的测试页,而且,要看到MySQL已经被整合进来了,才能进行下一步操作

第五:定义组名

[root@ansible ~]# vim /etc/ansible/hosts #还使用之前定义好的,这里不用修改

[webservers]

192.168.1.163

192.168.1.71

然后,将公钥信息复制到被控制节点,ansible和两个节点间通过ssh进行连接。下面3个命令之前已经做过,不用执行了。

[root@ansible ~]# ssh-keygen

[root@ansible ~]# ssh-copy-id root@192.168.1.163

[root@ansible ~]# ssh-copy-id root@192.168.1.71

第六:使用playbook创建一个LAMP构建的任务

1、创建相关文件

[root@ansible ~]# mkdir -pv /etc/ansible/lamp/roles/{prepare,httpd,mysql,php}/{tasks,files,templates,vars,meta,default,handlers}

我们将上面搭建成功的LAMP环境的httpd和MySQL的配置文件拷贝到对应目录下

[root@ansible ~]# cd /etc/ansible/ [root@ansible ansible]# cp /etc/httpd/conf/httpd.conf lamp/roles/httpd/files/

[root@ansible ansible]# cp /etc/my.cnf lamp/roles/mysql/files/

[root@ansible ansible]# 写prepare(前期准备)角色的playbooks

[root@ansible ansible]# vim lamp/roles/prepare/tasks/main.yml

[root@ansible ansible]# cat lamp/roles/prepare/tasks/main.yml

- name: delete yum config

shell: rm -rf /etc/yum.repos.d/* #删除原有的yum配置文件

- name: provide yumrepo file

shell: wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo #下载新的yum配置文件

- name: clean the yum repo

shell: yum clean all #清除原有的yum缓存信息

- name: clean the iptables

shell: iptables -F #清除原有防火墙规则,不然后可能上不了网

[root@ansible ansible]#

2、构建httpd的任务

[root@ansible ansible]# cd /etc/ansible/lamp/roles/

[root@ansible roles]# mv /var/www/html/index.php httpd/files/

[root@ansible roles]# vim httpd/tasks/main.yml

[root@ansible roles]# cat httpd/tasks/main.yml

[root@ansible roles]# cat httpd/tasks/main.yml

- name: web server install

yum: name=httpd state=present #安装httpd服务

- name: provide test page

copy: src=index.php dest=/var/www/html #提供测试页

- name: delete apache config

shell: rm -rf /etc/httpd/conf/httpd.conf #删除原有的apache配置文件,如果不删除,下面的copy任务是不会执行的,因为当源文件httpd.conf和目标文件一样时,copy命令是不执行的。如果copy命令不执行,那么notify将不调用handler。

- name: provide configuration file

copy: src=httpd.conf dest=/etc/httpd/conf/httpd.conf #提供httpd的配置文件

notify: restart httpd #当前面的copy复制成功后,通过notify通知名字为restart httpd的handlers运行

3、构建httpd的handlers

[root@ansible roles]# vim httpd/handlers/main.yml

[root@ansible roles]# cat httpd/handlers/main.yml

- name: restart httpd

service: name=httpd enabled=yes state=restarted

[root@ansible roles]#

4、部署我们的MariaDB数据库

创建MySQL服务的任务,需要安装MySQL服务,改变属主信息,启动MySQL

[root@ansible roles]# cd /etc/ansible/lamp/roles/

[root@ansible roles]# vim mysql/tasks/main.yml

[root@ansible roles]# cat mysql/tasks/main.yml

-name: install the mysql

yum: name=mariadb-server state=present #安装mysql服务

- name: mkdir date directory

shell: mkdir -p /mydata/data #创建挂载点目录

- name: provide configration file

copy: src=my.cnf dest=/etc/my.cnf #提供mysql的配置文件

- name: chage the owner

shell: chown -R mysql:mysql /mydata/ #更改属主和属组

- name: start mariadb

service: name=mariadb enabled=yes state=started #启动mysql服务

5、构建PHP的任务

[root@ansible roles]# vim php/tasks/main.yml

- name: install php

yum: name=php state=present #安装php

- name: install php-mysql

yum: name=php-mysql state=present #安装php与mysql交互的插件

6、定义整个的任务

[root@ansible roles]# cd /etc/ansible/lamp/roles/

[root@ansible roles]# vim site.yml

[root@ansible roles]# cat site.yml

- name: LAMP build

remote_user: root

hosts: web-servers

roles:

  • prepare

  • mysql

  • php

  • httpd

注:所有yml的配置文件中,空格必须严格对

开始部署:

[root@ansible roles]# ansible-playbook -i /etc/ansible/hosts /etc/ansible/lamp/roles/site.yml

然后,在浏览器中访问这两台节点主机,可以直接访问成功。做此实验室,需要准备干净环境,selinux、防火墙都要关闭。

实战二:使用ansible部署k8s及集群

安装git命令

[root@itlaoxin162 ~]# yum install git

使用git下载相应的ansible-k8s-insatall 包:

[root@itlaoxin162 ~]# git clone https://github.com/lizhenliang/ansible-install-k8s

正克隆到 ‘ansible-install-k8s’…

remote: Enumerating objects: 157, done.

remote: Counting objects: 100% (157/157), done.

remote: Compressing objects: 100% (123/123), done.

remote: Total 157 (delta 46), reused 114 (delta 20), pack-reused 0

接收对象中: 100% (157/157), 150.68 KiB | 110.00 KiB/s, done.

处理 delta 中: 100

进入到ansbile-install-k8s目录

修改hosts文件,根据规划修改对应IP和名称。

cd ansible-install-k8s

[root@itlaoxin162 ansible-install-k8s]# vim hosts

[root@itlaoxin162 ansible-install-k8s]# vim group_vars/all.yml

部署命令:

单Master版

ansible-playbook -i hosts single-master-deploy.yml -uroot -k

多master版

ansible-playbook -i hosts multi-master-deploy.yml -uroot -k

计算机热门就业方向

从目前市场情况来讲,网络安全的就业前景是非常不错的,2022年的统计数据,网络安全专业的缺口已经增长到140万人。

1、就业岗位多,发展方向广

①就业环境:网络安全可以在计算机科学与技术、信息通信、电子商务、互联网金融、电子政务等领域从事相关工作,还可以在政府机关事业单位、银行、保险、证券等金融机构,电信、传媒等行业从事相关工作。

②就业岗位:网络安全工程师、渗透测试工程师、代码审计工程师、等级保护工程师、安全运维工程师、安全运营工程师、安全服务工程师等。

2、薪资待遇可观,提升较快

作为一个新兴行业,网络安全人才的市场需求远远大于供给,企业想真正招到人才,就必须在薪酬福利上有足够的竞争优势。因此,网络安全领域的薪资近年来也呈现稳步增长的态势。

根据工信部发布的《网络安全产业人才发展报告》显示,网络安全人才平均年薪为21.28万元,整体薪资水平较高。数据显示,网络安全人才年薪主要集中在10-20万元,占比40.62%,与往年持平;其次是20-30万元,占比为38.43%,较2020年占比19.48%有显著提高;而年薪在10万以下人才占比由2020年的19.74%下降至2022年的9.08%。由此可见,网络安全行业作为新兴赛道,尚在快速发展阶段,从业人员薪资水平提升较快,也显示出网络安全行业相对更重视人才留存。

3、职业发展空间大

从网络安全专业学习的主要内容来看,包括linux运维、Python开发、渗透测试、代码审计、等级保护、应急响应、风险评估等。可见该网络安全专业的技术性很强,具有鲜明的专业特点,是一门能够学到真正技术的工科类专业之一。

因此,在职业发展上,网络安全专业除了就业岗位众多之外,由于专业技术性较强,在工作单位将处于技术核心骨干地位,职业发展空间很大。

盘点网络安全的岗位汇总

0****1

岗位一:渗透测试工程师

**岗位释义:**模拟黑客攻击,利用黑客技术,挖掘漏洞,提出修复建议。有些大厂,例如奇安信,甚至会将渗透岗位分为红蓝两方,对候选人的技术要求比较高,大部分刚入行的新人,也将渗透岗位作为后期的发展目标。

岗位职责:

  • 负责对客户网络、系统、应用进行渗透测试、安全评估和安全加固

  • 在出现网络攻击或安全事件时,提供应急响应服务,帮助用户恢复系统及调查取证

  • 针对客户网络架构,建议合理的网络安全解决方案

**工作难度:**5颗星

薪资现状:

0****2

岗位二:安全运维工程师

**岗位释义:**维护网络系统的正常、安全运行,如果受到黑客攻击,则需要进行应急响应和入侵排查安全加固。很多刚毕业入行的新人,基本都从运维做起。

岗位职责:

  • 日常终端维护,操作系统安装加固

  • 完成网络安全设备故障排查、处置

  • 完成相关管理制度文档的编写和提交

**工作难度:**3颗星

薪资现状:

0****3

岗位三:安全运营工程师

**岗位释义:**在运维的基础上,高效可持续地不断提升企业的安全防御能力。

岗位职责:

  • 负责监控、扫描等各类安全策略的制定和优化

  • 负责信息安全事件的应急响应

  • 参与网络安全评估工作、安全加固工作和监控等等

**工作难度:**3颗星

薪资现状:

0****4

岗位四:安全开发工程师

**岗位释义:**顾名思义,对安全产品及平台、策略等进行开发工作。

岗位职责:

  • 负责网络安全产品的系统技术设计、代码开发与实现、单元测试、静态检查、本地构建等工作;

  • 参与公司其他产品的系统技术设计以及研发工作。

**工作难度:**5颗星

薪资现状:

0****5

岗位五:等保测评工程师

**岗位释义:**等保测评也叫等级保护测评,主要负责开展信息安全等级保护测评、信息安全风险评估、应急响应、信息安全咨询等工作 。

岗位职责:

  • 网络安全等级保护测评项目实施;

  • Web渗透测试、操作系统安全加固等安全项目实施配合

**工作难度:**3颗星

薪资现状:

0****6

岗位六:安全研究工程师

**岗位释义:**网络安全领域的研究人才。

岗位职责:

  • 跟踪和分析国内外安全事件、发展趋势和解决方案

  • 承担或参与创新型课题研究

  • 参与项目方案设计,组织推动项目落实,完成研究内容、

  • 负责网络安全关键技术攻关和安全工具研发

**工作难度:**5颗星

薪资现状:

0****7

岗位七:漏洞挖掘工程师

**岗位释义:**主要从事逆向、软件分析、漏洞挖掘工作

岗位职责:

  • 通过模拟实施特定方法所获得的结果,评估计算机网络系统安全状况;

  • 通过特定技术的实施,寻找网络安全漏洞,发现但不利用漏洞。

**工作难度:**5颗星

薪资现状:

0****8

岗位八:安全管理工程师

**岗位释义:**负责信息安全相关流程、规范、标准的制定和评审,负责公司整体安全体系建设。

岗位职责:

  • 全业务系统网络安全技术体系的规划和建设,优化网络安全架构;

  • 负责网络安全相关流程、规范、标准的指定和评审,高效处置突发事件;

  • 负责网络安全防护系统的建设,提升网络安全保障水平;

**工作难度:**4颗星

0****9

岗位九:应急响应工程师

**岗位释义:**主要负责信息安全事件应急响应、攻击溯源、取证分析工作,参与应急响应、攻击溯源、取证分析技术的研究,提升整体重大信息安全事件应急处置能力。

岗位职责:

  • 负责信息安全事件应急响应、攻击溯源、取证分析工作;

  • 对安全事件的应急处置进行经验总结,开展应急响应培训;

  • 负责各业务系统的上线前安全测试(黑盒白盒)及渗透测试工作;

  • 参与应急响应、攻击溯源、取证分析技术的研究,提升整体重大信息安全事件应急处置能力。

  • 跟踪国内外安全热点事件、主流安全漏洞、威胁情报、黑灰产动态并进行分析研究,形成应对方案;

**工作难度:**4颗星

薪酬现状:

10

岗位十:数据安全工程师

**岗位释义:**主要对公司的数据安全的日常维护和管理工作,确保公司数据安全。

岗位职责:

  • 负责数据安全日常维护和管理工作,包括数据安全审核、数据安全事件的监控与响应、安全合规的审计与调查等;

  • 负责数据安全标准规范的制定和管理,包括数据安全需求识别、风险分析、数据分级分类、数据脱敏、数据流转、泄露防护、权限管控等;推进相关安全管控策略在平台落地、执行。

  • 负责开展与数据全生命周期管理有关的各项数据安全工作;

  • 负责跨平台、跨地域数据传输、交互等数据安全方案制定与落地

  • 定期组织开展数据安全自评工作,发现潜在数据安全风险,制定相应的管控措施,并推进落实整改。

**工作难度:**4颗星

薪酬现状:

黑客/网络安全学习路线

对于从来没有接触过黑客/网络安全的同学,目前网络安全、信息安全也是计算机大学生毕业薪资相对较高的学科。

大白也帮大家准备了详细的学习成长路线图。可以说是最科学最系统的学习路线,大家跟着这个大的方向学习准没问题。

这也是耗费了大白近四个月的时间,吐血整理,文章非常非常长,觉得有用的话,希望粉丝朋友帮忙点个**「分享」「收藏」「在看」「赞」**

网络安全/渗透测试法律法规必知必会****

今天大白就帮想学黑客/网络安全技术的朋友们入门必须先了解法律法律。

【网络安全零基础入门必知必会】网络安全行业分析报告(01)

【网络安全零基础入门必知必会】什么是黑客、白客、红客、极客、脚本小子?(02)

【网络安全零基础入门必知必会】网络安全市场分类(03)

【网络安全零基础入门必知必会】常见的网站攻击方式(04)

【网络安全零基础入门必知必会】网络安全专业术语全面解析(05)

【网络安全入门必知必会】《中华人民共和国网络安全法》(06)

【网络安全零基础入门必知必会】《计算机信息系统安全保护条例》(07)

【网络安全零基础入门必知必会】《中国计算机信息网络国际联网管理暂行规定》(08)

【网络安全零基础入门必知必会】《计算机信息网络国际互联网安全保护管理办法》(09)

【网络安全零基础入门必知必会】《互联网信息服务管理办法》(10)

【网络安全零基础入门必知必会】《计算机信息系统安全专用产品检测和销售许可证管理办法》(11)

【网络安全零基础入门必知必会】《通信网络安全防护管理办法》(12)

【网络安全零基础入门必知必会】《中华人民共和国国家安全法》(13)

【网络安全零基础入门必知必会】《中华人民共和国数据安全法》(14)

【网络安全零基础入门必知必会】《中华人民共和国个人信息保护法》(15)

【网络安全零基础入门必知必会】《网络产品安全漏洞管理规定》(16)

网络安全/渗透测试linux入门必知必会

【网络安全零基础入门必知必会】什么是Linux?Linux系统的组成与版本?什么是命令(01)

【网络安全零基础入门必知必会】VMware下载安装,使用VMware新建虚拟机,远程管理工具(02)

【网络安全零基础入门必知必会】VMware常用操作指南(非常详细)零基础入门到精通,收藏这一篇就够了(03)

【网络安全零基础入门必知必会】CentOS7安装流程步骤教程(非常详细)零基入门到精通,收藏这一篇就够了(04)

【网络安全零基础入门必知必会】Linux系统目录结构详细介绍(05)

【网络安全零基础入门必知必会】Linux 命令大全(非常详细)零基础入门到精通,收藏这一篇就够了(06)

【网络安全零基础入门必知必会】linux安全加固(非常详细)零基础入门到精通,收藏这一篇就够了(07)

网络安全/渗透测试****计算机网络入门必知必会****

【网络安全零基础入门必知必会】TCP/IP协议深入解析(非常详细)零基础入门到精通,收藏这一篇就够了(01)

【网络安全零基础入门必知必会】什么是HTTP数据包&Http数据包分析(非常详细)零基础入门到精通,收藏这一篇就够了(02)

【网络安全零基础入门必知必会】计算机网络—子网划分、子网掩码和网关(非常详细)零基础入门到精通,收藏这一篇就够了(03)

网络安全/渗透测试入门之HTML入门必知必会

【网络安全零基础入门必知必会】什么是HTML&HTML基本结构&HTML基本使用(非常详细)零基础入门到精通,收藏这一篇就够了1

【网络安全零基础入门必知必会】VScode、PhpStorm的安装使用、Php的环境配置,零基础入门到精通,收藏这一篇就够了2

【网络安全零基础入门必知必会】HTML之编写登录和文件上传(非常详细)零基础入门到精通,收藏这一篇就够了3

网络安全/渗透测试入门之Javascript入门必知必会

【网络安全零基础入门必知必会】Javascript语法基础(非常详细)零基础入门到精通,收藏这一篇就够了(01)

【网络安全零基础入门必知必会】Javascript实现Post请求、Ajax请求、输出数据到页面、实现前进后退、文件上传(02)

网络安全/渗透测试入门之Shell入门必知必会

【网络安全零基础入门必知必会】Shell编程基础入门(非常详细)零基础入门到精通,收藏这一篇就够了(第七章)

网络安全/渗透测试入门之PHP入门必知必会

【网络安全零基础入门】PHP环境搭建、安装Apache、安装与配置MySQL(非常详细)零基础入门到精通,收藏这一篇就够(01)

【网络安全零基础入门】PHP基础语法(非常详细)零基础入门到精通,收藏这一篇就够了(02)

【网络安全零基础入门必知必会】PHP+Bootstrap实现表单校验功能、PHP+MYSQL实现简单的用户注册登录功能(03)

网络安全/渗透测试入门之MySQL入门必知必会

【网络安全零基础入门必知必会】MySQL数据库基础知识/安装(非常详细)零基础入门到精通,收藏这一篇就够了(01)

【网络安全零基础入门必知必会】SQL语言入门(非常详细)零基础入门到精通,收藏这一篇就够了(02)

【网络安全零基础入门必知必会】MySQL函数使用大全(非常详细)零基础入门到精通,收藏这一篇就够了(03)

【网络安全零基础入门必知必会】MySQL多表查询语法(非常详细)零基础入门到精通,收藏这一篇就够了(04)

****网络安全/渗透测试入门之Python入门必知必会

【网络安全零基础入门必知必会】之Python+Pycharm安装保姆级教程,Python环境配置使用指南,收藏这一篇就够了【1】

【网络安全零基础入门必知必会】之Python编程入门教程(非常详细)零基础入门到精通,收藏这一篇就够了(2)

python开发之手写第一个python程序

python开发笔记之变量

python基础语法特征

python开发数据类型

python开发笔记之程序交互

python入门教程之python开发学习笔记基本数据类型

python入门教程之python开发笔记之格式化输出

python入门教程之python开发笔记基本运算符

python入门教程python开发基本流程控制if … else

python入门教程之python开发笔记流程控制之循环

python入门之Pycharm开发工具的使用

python入门教程之python字符编码转换

python入门之python开发字符编码

python入门之python开发基本数据类型数字

python入门python开发基本数据类型字符串

python入门python开发基本数据类型列表

python入门python开发基本数据类型

python入门教程之python开发可变和不可变数据类型和hash

python入门教程python开发字典数据类型

python入门之python开发笔记基本数据类型集合

python开发之collections模块

python开发笔记之三元运算

【网络安全零基础入门必知必会】之10个python爬虫入门实例(非常详细)零基础入门到精通,收藏这一篇就够了(3)

****网络安全/渗透测试入门之SQL注入入门必知必会

【网络安全渗透测试零基础入门必知必会】之初识SQL注入(非常详细)零基础入门到精通,收藏这一篇就够了(1)

【网络安全渗透测试零基础入门必知必会】之SQL手工注入基础语法&工具介绍(2)

【网络安全渗透测试零基础入门必知必会】之SQL注入实战(非常详细)零基础入门到精通,收藏这一篇就够了(3)

【网络安全渗透测试零基础入门必知必会】之SQLmap安装&实战(非常详细)零基础入门到精通,收藏这一篇就够了(4)

【网络安全渗透测试零基础入门必知必会】之SQL防御(非常详细)零基础入门到精通,收藏这一篇就够了(4)

****网络安全/渗透测试入门之XSS攻击入门必知必会

【网络安全渗透测试零基础入门必知必会】之XSS攻击基本概念和原理介绍(非常详细)零基础入门到精通,收藏这一篇就够了(1)

网络安全渗透测试零基础入门必知必会】之XSS攻击获取用户cookie和用户密码(实战演示)零基础入门到精通收藏这一篇就够了(2)

【网络安全渗透测试零基础入门必知必会】之XSS攻击获取键盘记录(实战演示)零基础入门到精通收藏这一篇就够了(3)

【网络安全渗透测试零基础入门必知必会】之xss-platform平台的入门搭建(非常详细)零基础入门到精通,收藏这一篇就够了4

【网络安全渗透测试入门】之XSS漏洞检测、利用和防御机制XSS游戏(非常详细)零基础入门到精通,收藏这一篇就够了5

****网络安全/渗透测试入门文件上传攻击与防御入门必知必会

【网络安全渗透测试零基础入门必知必会】之什么是文件包含漏洞&分类(非常详细)零基础入门到精通,收藏这一篇就够了1

【网络安全渗透测试零基础入门必知必会】之cve实际漏洞案例解析(非常详细)零基础入门到精通, 收藏这一篇就够了2

【网络安全渗透测试零基础入门必知必会】之PHP伪协议精讲(文件包含漏洞)零基础入门到精通,收藏这一篇就够了3

【网络安全渗透测试零基础入门必知必会】之如何搭建 DVWA 靶场保姆级教程(非常详细)零基础入门到精通,收藏这一篇就够了4

【网络安全渗透测试零基础入门必知必会】之Web漏洞-文件包含漏洞超详细全解(附实例)5

【网络安全渗透测试零基础入门必知必会】之文件上传漏洞修复方案6

****网络安全/渗透测试入门CSRF渗透与防御必知必会

【网络安全渗透测试零基础入门必知必会】之CSRF漏洞概述和原理(非常详细)零基础入门到精通, 收藏这一篇就够了1

【网络安全渗透测试零基础入门必知必会】之CSRF攻击的危害&分类(非常详细)零基础入门到精通, 收藏这一篇就够了2

【网络安全渗透测试零基础入门必知必会】之XSS与CSRF的区别(非常详细)零基础入门到精通, 收藏这一篇就够了3

【网络安全渗透测试零基础入门必知必会】之CSRF漏洞挖掘与自动化工具(非常详细)零基础入门到精通,收藏这一篇就够了4

【网络安全渗透测试零基础入门必知必会】之CSRF请求伪造&Referer同源&置空&配合XSS&Token值校验&复用删除5

****网络安全/渗透测试入门SSRF渗透与防御必知必会

【网络安全渗透测试零基础入门必知必会】之SSRF漏洞概述及原理(非常详细)零基础入门到精通,收藏这一篇就够了 1

【网络安全渗透测试零基础入门必知必会】之SSRF相关函数和协议(非常详细)零基础入门到精通,收藏这一篇就够了2

【网络安全渗透测试零基础入门必知必会】之SSRF漏洞原理攻击与防御(非常详细)零基础入门到精通,收藏这一篇就够了3**
**

****网络安全/渗透测试入门XXE渗透与防御必知必会

【网络安全渗透测试零基础入门必知必会】之XML外部实体注入(非常详细)零基础入门到精通,收藏这一篇就够了1

网络安全渗透测试零基础入门必知必会】之XXE的攻击与危害(非常详细)零基础入门到精通,收藏这一篇就够了2

【网络安全渗透测试零基础入门必知必会】之XXE漏洞漏洞及利用方法解析(非常详细)零基础入门到精通,收藏这一篇就够了3

【网络安全渗透测试零基础入门必知必会】之微信XXE安全漏洞处理(非常详细)零基础入门到精通,收藏这一篇就够了4

****网络安全/渗透测试入门远程代码执行渗透与防御必知必会

【网络安全渗透测试零基础入门必知必会】之远程代码执行原理介绍(非常详细)零基础入门到精通,收藏这一篇就够了1

【网络安全零基础入门必知必会】之CVE-2021-4034漏洞原理解析(非常详细)零基础入门到精通,收藏这一篇就够了2

【网络安全零基础入门必知必会】之PHP远程命令执行与代码执行原理利用与常见绕过总结3

【网络安全零基础入门必知必会】之WEB安全渗透测试-pikachu&DVWA靶场搭建教程,零基础入门到精通,收藏这一篇就够了4

****网络安全/渗透测试入门反序列化渗透与防御必知必会

【网络安全零基础入门必知必会】之什么是PHP对象反序列化操作(非常详细)零基础入门到精通,收藏这一篇就够了1

【网络安全零基础渗透测试入门必知必会】之php反序列化漏洞原理解析、如何防御此漏洞?如何利用此漏洞?2

【网络安全渗透测试零基础入门必知必会】之Java 反序列化漏洞(非常详细)零基础入门到精通,收藏这一篇就够了3

【网络安全渗透测试零基础入门必知必会】之Java反序列化漏洞及实例解析(非常详细)零基础入门到精通,收藏这一篇就够了4

【网络安全渗透测试零基础入门必知必会】之CTF题目解析Java代码审计中的反序列化漏洞,以及其他漏洞的组合利用5

网络安全/渗透测试**入门逻辑漏洞必知必会**

【网络安全渗透测试零基础入门必知必会】之一文带你0基础挖到逻辑漏洞(非常详细)零基础入门到精通,收藏这一篇就够了

网络安全/渗透测试入门暴力猜解与防御必知必会

【网络安全渗透测试零基础入门必知必会】之密码安全概述(非常详细)零基础入门到精通,收藏这一篇就够了1

【网络安全渗透测试零基础入门必知必会】之什么样的密码是不安全的?(非常详细)零基础入门到精通,收藏这一篇就够了2

【网络安全渗透测试零基础入门必知必会】之密码猜解思路(非常详细)零基础入门到精通,收藏这一篇就够了

【网络安全渗透测试零基础入门必知必会】之利用Python暴力破解邻居家WiFi密码、压缩包密码,收藏这一篇就够了4

【网络安全渗透测试零基础入门必知必会】之BurpSuite密码爆破实例演示,零基础入门到精通,收藏这一篇就够了5

【网络安全渗透测试零基础入门必知必会】之Hydra密码爆破工具使用教程图文教程,零基础入门到精通,收藏这一篇就够了

【网络安全渗透测试零基础入门必知必会】之暴力破解medusa,零基础入门到精通,收藏这一篇就够了7

【网络安全渗透测试零基础入门必知必会】之Metasploit抓取密码,零基础入门到精通,收藏这一篇就够了8

Wfuzz:功能强大的web漏洞挖掘工具

****网络安全/渗透测试入门掌握Redis未授权访问漏洞必知必会

【网络安全渗透测试零基础入门必知必会】之Redis未授权访问漏洞,零基础入门到精通,收藏这一篇就够了

【网络安全渗透测试零基础入门必知必会】之Redis服务器被攻击后该如何安全加固,零基础入门到精通,收藏这一篇就够了**
**

网络安全/渗透测试入门掌握**ARP渗透与防御关必知必会**

【网络安全渗透测试零基础入门必知必会】之ARP攻击原理解析,零基础入门到精通,收藏这一篇就够了

【网络安全渗透测试零基础入门必知必会】之ARP流量分析,零基础入门到精通,收藏这一篇就够了

【网络安全渗透测试零基础入门必知必会】之ARP防御策略与实践指南,零基础入门到精通,收藏这一篇就够了

网络安全/渗透测试入门掌握系统权限提升渗透与防御关****必知必会

【网络安全渗透测试零基础入门必知必会】之Windows提权常用命令,零基础入门到精通,收藏这一篇就够了

【网络安全渗透测试零基础入门必知必会】之Windows权限提升实战,零基础入门到精通,收藏这一篇就够了

【网络安全渗透测试零基础入门必知必会】之linux 提权(非常详细)零基础入门到精通,收藏这一篇就够了

网络安全/渗透测试入门掌握Dos与DDos渗透与防御相关****必知必会

【网络安全渗透测试零基础入门必知必会】之DoS与DDoS攻击原理(非常详细)零基础入门到精通,收藏这一篇就够了

【网络安全渗透测试零基础入门必知必会】之Syn-Flood攻击原理解析(非常详细)零基础入门到精通,收藏这一篇就够了

【网络安全渗透测试零基础入门必知必会】之IP源地址欺骗与dos攻击,零基础入门到精通,收藏这一篇就够了

【网络安全渗透测试零基础入门必知必会】之SNMP放大攻击原理及实战演示,零基础入门到精通,收藏这一篇就够了

【网络安全渗透测试零基础入门必知必会】之NTP放大攻击原理,零基础入门到精通,收藏这一篇就够了

【网络安全渗透测试零基础入门必知必会】之什么是CC攻击?CC攻击怎么防御?,零基础入门到精通,收藏这一篇就够了

【网络安全渗透测试零基础入门必知必会】之如何防御DDOS的攻击?零基础入门到精通,收藏这一篇就够了

网络安全/渗透测试入门掌握无线网络安全渗透与防御相关****必知必会

【网络安全渗透测试零基础入门必知必会】之Aircrack-ng详细使用安装教程,零基础入门到精通,收藏这一篇就够了

【网络安全渗透测试零基础入门必知必会】之aircrack-ng破解wifi密码(非常详细)零基础入门到精通,收藏这一篇就够了

【网络安全渗透测试零基础入门必知必会】之WEB渗透近源攻击,零基础入门到精通,收藏这一篇就够了

【网络安全渗透测试零基础入门必知必会】之无线渗透|Wi-Fi渗透思路,零基础入门到精通,收藏这一篇就够了

【网络安全渗透测试零基础入门必知必会】之渗透WEP新思路Hirte原理解析,零基础入门到精通,收藏这一篇就够了

【网络安全渗透测试零基础入门必知必会】之WPS的漏洞原理解析,零基础入门到精通,收藏这一篇就够了

网络安全/渗透测试入门掌握木马免杀问题与防御********必知必会

【网络安全渗透测试零基础入门必知必会】之Metasploit – 木马生成原理和方法,零基础入门到精通,收藏这篇就够了

【网络安全渗透测试零基础入门必知必会】之MSF使用教程永恒之蓝漏洞扫描与利用,收藏这一篇就够了

网络安全/渗透测试入门掌握Vulnhub靶场实战********必知必会

【网络安全渗透测试零基础入门必知必会】之Vulnhub靶机Prime使用指南,零基础入门到精通,收藏这一篇就够了

【网络安全渗透测试零基础入门必知必会】之Vulnhub靶场Breach1.0解析,零基础入门到精通,收藏这一篇就够了

【网络安全渗透测试零基础入门必知必会】之vulnhub靶场之DC-9,零基础入门到精通,收藏这一篇就够了

【网络安全渗透测试零基础入门必知必会】之Vulnhub靶机Kioptrix level-4 多种姿势渗透详解,收藏这一篇就够了

【网络安全渗透测试零基础入门必知必会】之Vulnhub靶场PWNOS: 2.0 多种渗透方法,收藏这一篇就够了

网络安全/渗透测试入门掌握社会工程学必知必会

【网络安全渗透测试零基础入门必知必会】之什么是社会工程学?定义、类型、攻击技术,收藏这一篇就够了

【网络安全渗透测试零基础入门必知必会】之社会工程学之香农-韦弗模式,收藏这一篇就够了

【网络安全渗透测试零基础入门必知必会】之社工学smcr通信模型,收藏这一篇就够了

【网络安全渗透测试零基础入门必知必会】之社会工程学之社工步骤整理(附相应工具下载)收藏这一篇就够了

网络安全/渗透测试入门掌握********渗透测试工具使用******必知必会**

2024版最新Kali Linux操作系统安装使用教程(非常详细)零基础入门到精通,收藏这一篇就够了

【网络安全渗透测试零基础入门必知必会】之渗透测试工具大全之Nmap安装使用命令指南,零基础入门到精通,收藏这一篇就够了

2024版最新AWVS安装使用教程(非常详细)零基础入门到精通,收藏这一篇就够了

2024版最新burpsuite安装使用教程(非常详细)零基础入门到精通,收藏这一篇就够了

2024版最新owasp_zap安装使用教程(非常详细)零基础入门到精通,收藏这一篇就够了

2024版最新Sqlmap安装使用教程(非常详细)零基础入门到精通,收藏这一篇就够了

2024版最新Metasploit安装使用教程(非常详细)零基础入门到精通,收藏这一篇就够了

2024版最新Nessus下载安装激活使用教程(非常详细)零基础入门到精通,收藏这一篇就够了

2024版最新Wireshark安装使用教程(非常详细)零基础入门到精通,收藏这一篇就够了

觉得有用的话,希望粉丝朋友帮大白点个**「分享」「收藏」「在看」「赞」**

黑客/网络安全学习包

资料目录

  1. 成长路线图&学习规划

  2. 配套视频教程

  3. SRC&黑客文籍

  4. 护网行动资料

  5. 黑客必读书单

  6. 面试题合集

因篇幅有限,仅展示部分资料,需要点击下方链接即可前往获取

优快云大礼包:《黑客&网络安全入门&进阶学习资源包》免费分享

1.成长路线图&学习规划

要学习一门新的技术,作为新手一定要先学习成长路线图,方向不对,努力白费。

对于从来没有接触过网络安全的同学,我们帮你准备了详细的学习成长路线图&学习规划。可以说是最科学最系统的学习路线,大家跟着这个大的方向学习准没问题。


因篇幅有限,仅展示部分资料,需要点击下方链接即可前往获取

优快云大礼包:《黑客&网络安全入门&进阶学习资源包》免费分享

2.视频教程

很多朋友都不喜欢晦涩的文字,我也为大家准备了视频教程,其中一共有21个章节,每个章节都是当前板块的精华浓缩。


因篇幅有限,仅展示部分资料,需要点击下方链接即可前往获取

优快云大礼包:《黑客&网络安全入门&进阶学习资源包》免费分享

3.SRC&黑客文籍

大家最喜欢也是最关心的SRC技术文籍&黑客技术也有收录

SRC技术文籍:

黑客资料由于是敏感资源,这里不能直接展示哦!

4.护网行动资料

其中关于HW护网行动,也准备了对应的资料,这些内容可相当于比赛的金手指!

5.黑客必读书单

**

**

6.面试题合集

当你自学到这里,你就要开始思考找工作的事情了,而工作绕不开的就是真题和面试题。

更多内容为防止和谐,可以扫描获取~

因篇幅有限,仅展示部分资料,需要点击下方链接即可前往获取

优快云大礼包:《黑客&网络安全入门&进阶学习资源包》免费分享

Ansible Ansible 自动化运维屁平台 运维自动化平台介绍 运维⾃动化平台是由管理机器和业务机器组成的: 管理机器:任务定制以及发布 业务机器:接受任务并执⾏ 运维⾃动化平台的优势: ⼀次性任务定制:任务⼀次性发给所有的业务机器 接收任务执⾏时间:任务主机并发完成任务,节省部署的时间 错误率低:避免重复,保证⼀次任务定制准确即可 常⻅的⾃动化运维⼯具 Puppet SaltStack Ansible Puppet、Ansible、SaltStack对⽐ 工具 语言 架构 协议 阅读详情

相关推荐

从入门到精通Ansible Playbook,一篇就够了

主机清单和剧本

这是博客的简介的简介 6217

Ansible 安装及使用说明

设置SSH无密码登录 为了避免ansible下发指令时输入被管理主机的密码,可以通过证书签名达到SSH无密码登录的效果,使用ssh-keygen产生一对密匙,使用ssh-copy-id来下发生成的公匙 关闭三台。到此,ansible的环境就部署完成了。也可以创建playbook来测试。配置好yum源后,通过命令。

weixin_45942735的博客 2716

ansible从入门到精通(完整篇)

转自ansible从入门到精通(完整篇)01 Ansible介绍与安装1. 介绍 Ansible2. 安装 Ansible02 部署Ansible1. 构建Ansible清单2. 管理Ansible配置文件2.1 配置Ansible2.2 配置文件优先级2.3 管理配置文件中的设置2.4 配置连接2.5 配置文件注释3. 运行临时命令03 ansible常用模块04 playbook1. 实施playbook2. 实施多个play2.1 缩写多个play2.2 play中的远程用户和特权升级2.3 查找用于

m0_66925868的博客 2322

ansible 安装

ansible 安装。

876

Ansible-2.9.27离线安装包

CentOS7,Python2.7.5,Ansible2.9.27,Ansible是一个基于Python开发的开源自动化工具,实现了批量运行命令、批量部署程序、批量配置系统等功能。默认通过SSH协议(也可使用其它协议)进行远程命令执行或下发配置,无需部署任何客户端代理软件(agentless)在被管控主机上,并可同时支持多台主机并行管理。Ansible是基于模块工作的,本身没有批量部署的能力,真正具有批量部署的是Ansible所运行的模块,Ansible只是提供一种框架。

ansible开发文件

ansible开发文件

Ansible离线安装

在一台能够连接互联网且与内网服务器系统一致的服务器,下载ansible安装包。

Z_linht的博客 2065

基于Python实现基于遥感指数的水体提取

基于Python实现基于遥感指数的水体提取

gis收藏家的博客 6145

入门级ansible教程(非常详细)零基础入门到精通,收藏这一篇就够了

我们的控制端一般拥有多个被控端,当我么需批量的去对主机进行操作的时候,这时候我们可以通过inventory定义主机组和主机,安装的时候,我们可以编写playbook或者AD-HOC,然后把模块等推给被控端,然后被控端再执行playbook或者AH-HOC,完成任务,这个推送过程是使用ssh的方式推送的,确保安全,并且客户端必须有Python2,确保能够执行playbook或者AD-HOC。攻击和防守要学的东西也不少,具体要学的东西我都写在了上面的路线图,如果你能学完它们,你去就业和接私活完全没有问题。

leah126的博客 2万+

IFRS 9与CECL对比解析:跨国企业财务必须掌握的两种信用损失模型

本文深度解析IFRS 9与CECL两种信用损失模型的差异,帮助跨国企业应对财务合规挑战。从基础架构、数据治理到监管策略,详细对比三阶段模型与单一阶段模型的核心区别,并提供实施双轨制的实务建议,助力企业优化资本管理和税务筹划。

3c4x5z6v7b的博客 668

FPGA 学习系列(2):Verilog 语法基础

Verilog 由门级建模数据流建模行为建模门级建模(Gate Level Modeling):使用基本逻辑门描述电路,接近硬件物理结构。数据流建模(Data Flow Modeling):使用assign语句进行组合逻辑建模,类似数学方程式。行为建模(Behavioral Modeling):使用always代码块和if-elsecase等控制语句建模,抽象程度较高。Verilog 代码一般由模块(module)组成,每个模块描述一个独立的硬件功能。

Azperk的博客 987

2025版最新Ansible下载安装教程(非常详细)零基础入门到精通,收藏这一篇就够了

Ansible是一款为类Unix系统开发的自由开源的配置和自动化工具。它用Python写成,类似于saltstack和Puppet,但是有一个不同和优点是我们不需要在节点中安装任何客户端。它使用SSH来和节点进行通信。Ansible基于 Python paramiko 开发,分布式,无需客户端,轻量级,配置语法使用 YMAL 及 Jinja2模板语言,更强的远程命令执行操作。

A1_3_9_7的博客 1673

Python爬虫实战:全面采集国家自然科学基金项目数据的全流程指南

国家自然科学基金委员会(NSFC)支持基础研究、应用基础研究,是我国科研投入的核心项目之一。公开的项目数据包括项目名称、负责人、资助金额、年度、单位等,具备极高科研和数据分析价值。requests:基础HTTP请求库,简单直观:异步HTTP请求库,适合大规模并发:HTML解析,提取数据:处理JavaScript渲染网页pandas:数据分析与清洗:数据库存储:重试机制实现。

2201_76125261的博客 753

入门级ansible教程(非常详细)零基础入门到精通,收藏这一篇就够了!

Ansible 绝对值得网络安全专业人员投入时间学习。它不仅仅是一个自动化工具,更是一个安全自动化的平台。不要盲目迷信 Ansible。只有将其与安全理念相结合,才能发挥其真正的价值。```黑客/网络安全学习包资料目录成长路线图&学习规划配套视频教程SRC&黑客文籍护网行动资料黑客必读书单面试题合集因篇幅有限,仅展示部分资料,需要点击下方链接即可前往获取优快云大礼包:《黑客&网络安全入门&进阶学习资源包》免费分享1.成长路线图&学习规划要学习一门新的技术,作为新手一定要。

leah126的博客 1360

ABAP Channels 实战:在 ABAP 7.40 中用 WebSocket 打造实时双向通信

本文详细介绍了SAP ABAP 7.40引入的ABAP Channels通信框架,包含AMC(ABAP Messaging Channels)和APC(ABAP Push Channels)两部分。AMC作为应用服务器内部的消息总线,支持发布/订阅模式,可实现跨会话实时通信;APC基于WebSocket协议,用于浏览器等客户端与ABAP服务器的双向实时交互。文章通过一个乒乓球游戏案例展示了ABAP Channels的实时协作能力,并详细解析了AMC的配置方法、消息发送与接收的代码实现,帮助开发者理解如何利用

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 220

Android PMS——概述(一)

PMS(Package Manager Service)是 Android 操作系统的一个重要组件,它负责管理应用程序的包信息以及与应用程序的安装、卸载、权限控制等相关功能,确保应用程序的安全性和稳定性。 Android PMS 负责维护一个应用程序包的清单信息,该清单是一个 XML 文件,包含应用程序的各种元数据,例如应用程序的包名、版本号、权限要求、组件信息等。PMS通过访问该清单文件来获取应用程序的信息。 此外,Android PMS 还负责应用程序的安装和卸载。在安装应用

小旭的专栏 1664

ansible自动化运维项目部署(非常详细)零基础入门到精通,收藏这篇就够了

自动化运维是指将日常运维的、大量的重复性工作自动化,把手工执行的工作,通过梳理分析,进行逻辑分解,借助平台或工具转为自动化操作。自动化是IT运维工作的升华,IT运维自动化不单纯是一个维护过程,更是一个管理的提升过程,是运维的更高层次,也是未来的发展趋势。Ansible是一款使用Python开发,模块化,依赖于ssh协议实现的自动化统一配置管理工具,自动化主要体现在Ansible集成了丰富模块以及功能组件,可以通过一个命令完成一系列的操作,进而能减少重复性的工作和维护成本,可以提高工作效率。

Python_0011的博客 1083

路径规划 | 图解Informed RRT*算法(附ROS C++/Python/Matlab仿真)

Informed RRT*算法针对RRT*算法进行了采样优化,用椭圆采样代替全局均匀采样,避免了RRT*算法搜索树上产生过多冗余分支的缺陷。本文图解Informed RRT*原理,并提供ROS C++/Python/Matlab三种实现加深理解

FRIGIDWINTER的博客 7482

2024年最全自动化运维工具-Ansible的Roles的使用,2024年最新快速从入门到精通

本书是获得了很多读者好评的Linux经典畅销书**《Linux从入门到精通》的第2版**。本书第﹖版以最新的Ubuntu 12.04为版本,循序渐进地向读者介绍了Linux 的基础应用、系统管理、网络应用、娱乐和办公、程序开发、服务器配置、系统安全等。另外,本书还为读者提供了大量的Linux学习资料和Ubuntu安装镜像文件,供读者免费下载。需要《Linux入门到精通》、《linux系统移植》、《Linux驱动开发入门实战》、《Linux开源网络全栈》电子书籍及教程的工程师朋友们劳烦您转发+评论。

2401_83739727的博客 864

手把手教你学Simulink——基于Simulink的无位置传感器PMSM滑模观测器(SMO)控制

本文基于Simulink平台实现无位置传感器PMSM滑模观测器(SMO)控制,解决了传统机械位置传感器存在的成本高、体积大、抗干扰差等问题。SMO通过滑模切换函数估算反电动势,进而获得转子位置和速度,具有强鲁棒性(参数变化20%误差仅0.4°)和良好低速性能(50rpm转矩衰减<5%)。文章详细介绍了PMSM数学模型、SMO算法设计、Simulink建模步骤及参数优化方法,提供了可直接工程应用的MATLAB代码和仿真模型,为电动汽车驱动、工业机器人等高精度控制场景提供了有效解决方案。

MHD0815的博客 228

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

Ansible 入门教程:从零开始掌握自动化运维,零基础入门到精通,收藏这一篇就够了_ansible菜鸟教程

*Ansible 是一款开源的自动化工具,广泛应用于配置管理、应用部署、任务自动化以及多节点管理等领域。**它由 Michael DeHaan 于 2012 年创建,ansible目前已经已经被红帽官方收购,是自动化运维工具中大家认可度最高的,并且上手容易,学习简单。是每位运维工程师必须掌握的技能之一。Ansible 使用声明式语言(YAML)定义任务,描述目标状态而非具体的执行步骤。这种方式使得配置更加直观、易读,同时减少了错误和不一致性。可读性强:YAML 格式简洁明了,易于理解和编写。可重用性高。

wananxuexihu的博客 1595

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

IT运维必会的30个工具(非常详细),零基础入门到精通,看这一篇就够了

IT运维必会的30个工具(非常详细),零基础入门到精通,看这一篇就够了

分享Python知识 1万+

SAP B1中文培訓教材_SDK

公司内部培训资料,对开发工具 ,DIAPI, UIAPI,Add-ON有详细解说

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

Ansible 入门教程:从零开始掌握自动化运维,零基础入门到精通,收藏这一篇就够了

*Ansible 是一款开源的自动化工具,广泛应用于配置管理、应用部署、任务自动化以及多节点管理等领域。**它由 Michael DeHaan 于 2012 年创建,ansible目前已经已经被红帽官方收购,是自动化运维工具中大家认可度最高的,并且上手容易,学习简单。是每位运维工程师必须掌握的技能之一。Ansible 使用声明式语言(YAML)定义任务,描述目标状态而非具体的执行步骤。这种方式使得配置更加直观、易读,同时减少了错误和不一致性。可读性强:YAML 格式简洁明了,易于理解和编写。可重用性高。

A1_3_9_7的博客 1182
上一篇: 如何区分自己的windows系统是正版还是盗版 ?从零基础到精通,收藏这篇就够了!
下一篇: 年薪五十万起,大模型公司偏爱哪种毕业生,零基础入门到精通,收藏这一篇就够了
程序员_大白
博客等级 码龄5年 1万+粉丝 4001原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值