linux部署ansible自动化运维

ansible自动化运维

1,编写ansible的仓库(比赛已经安装,无需关注)

1、虚拟机右击---设置---添加---CD/DVD驱动器---完成---确定

2、将ansible.iso的光盘连接上(右下角呈绿色状态)

3、查看光盘挂载信息

df -h

4、挂载光盘(/dev/sr1)

mount /dev/sr1 /opt

df -h

5、编写ansible的仓库

cd /etc/yum.repos.d/

ls

vim ansible.repo

  1 [Ansible]

  2 name=Ansible

  3 baseurl=file:///opt

  4 gpgcheck=0

  5 enabled=1

yum clean all  #清理缓存

yum makecache #建立缓存

yum repolist #刷新

 

2,部署ansible(前面的仓库就是用来部署ansible的)

CentOS7安装ansible

更新yum仓库的镜像源

wget -O /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-7.repo

1c5f245c093e43bebb29b77565db6fee.png

安装epel扩展包(扩展包才有ansible软件包)

wget -O /etc/yum.repos.d/epel.repo https://mirrors.aliyun.com/repo/epel-7.repo

5a6f69cbbc9d4efb8b5f32d8393c1544.png

安装ansible

yum install -y ansible

752767fd07ad400a89635ae550c1f679.png

5、查询ansible是否安装

rpm -q ansible

78299a033a0346ca8f3048ce26b24c6b.png

 

3,ansible生效配置文件

1、当系统中有多个absible的配置文件时,只能有一个生效,谁的优先级越大谁就生效

2、查看生效的配置文件

ansible --version

1041c0bc73f949819635ff1fd6d23314.png

3、要求使用普通用户来做ansible,并且ansible的生效文件有要求,例如在用户的家目录

cp /etc/ansible/ansible.cfg .

ls

422473ebcedf4ecf9ee8bcee83b59840.png

ansible --version

b5509c3cdfb8471f874e7ffd762dd36d.png

  

4、因为当前生效的配置文件为/root/ansible.cfg,所以必须修改/root/ansible.cfg的文件才能往后面做

 

4,清单文件

1、相当于老师手中的花名册,清单文件中有哪些主机就说明这些主机可以被控制节点管理

vim /root/ansible.cfg

 14 inventory      = /root/inventory   指的清单文件的位置

 15 #inventory      = /etc/ansible/hosts  默认清单文件存放的位置

928a063bc668474a8027cff0febd079c.png

2、创建指定的清单文件

vim /root/inventory

[test]    #表示主机组的名字

192.168.23.142  #表示主机组下面的主机

e32bcfd7322c4ac7b887eed744d64aeb.png

3、验证清单文件是否生效,简称:列出清单树

ansible-inventory --graph

1ffea3701ef0482db69e743895f89f8a.png

备注:带@表示组名

 

5,ad-hoc临时命令

命令格式:ansible 主机/主机组 [-m 模块]  -a "命令"

1、使用临时命令测试ls(报错,原因:因为没有输入密码)

ansible test -a "ls"

c34914a9184f40a9ab43380ddbce58a4.png

2、再次使用临时命令 -k 指定密码

ansible test -a "ls" -k

511aa09fb9d84db6a05881491297ca54.png

3、使用临时命令查看对端的当前所在路径

ansible test -a "pwd" -k

0c6bf7d2033d4c14b6ca2eb3ecc9a0f0.png

 

4、使用临时命令查看对端的主机名

ansible test -a "hostname" -k

6fca61861acb4e7a81d9cf0cb7988408.png

 

5、使用临时命令在对端主机上的当前所在路径创建文件

ansible test -a "touch 1.txt" -k

d76edbdc989a45a7afa9c11a10524c6c.png

6、使用临时命令查看对端的当前所在路径的文件

ansible test -a "ls" -k

412da71947754ecea50972816e35b638.png

 

6,免密

因为当前是root用户,所以只需要做以下2步

1、在主配置文件中取消指纹验证

vim /root/ansible.cfg  

 72 host_key_checking = False

 73 #host_key_checking = False

caa636e6f9f74ccb913ec91b3c34566d.png

 

2、在清单文件中添加密码

vim /root/inventory

 [all:vars]

 ansible_password=123456

 [test]

 192.168.23.142

939f263ed2c24e94840bb1c0d3f945b6.png

 

3、再次测试

ansible test -a "useradd user1"

ansible test -a "id user1"

74ea8b8d4c6c43a499cfe1540f6366ac.png

 

7.修改tab的缩进-为playbook做准备

vim ~/.vimrc

set number ts=2 sw=2 et

4b6d162bed344b398a9fabc6626336d2.png

 

8.帮助

1、统计ansible中有多少个模块有帮助

ansible-doc -l  | wc -l

0b7c74aa42744e49b45491f652e99a1c.png

2、在模块中过滤出user

ansible-doc -l  | grep user

ef5889ab135f4064be906ec3bfbed003.png

3、查看user的帮助

ansible-doc user

/EX

1adc311dbc0c471ca66575875873007a.png

 

9.集中缩进

1、跳转到要缩进的行

2、按ctrl v进入可视化块模式

3、按↑↓键选中要缩进的行

4、按I在行首输入

5、按tab缩进

6、按ecs(两下)

 

10.编写简单的playbook

Ansible常用模块列表:

模块名称

功能描述

ping

检查指定节点机器是否还能连通。

command

在远程主机执行命令,不支持管道符和重定向。

raw

执行原始的命令,不通过模块子系统。

shell

类似于command模块,但支持更全面的功能,包括管道和重定向。

script

在远程主机上执行本地脚本。

template

将模板文件复制到远程主机并支持变量替换。

yum

管理RedHat/CentOS系统的软件包。

apt

管理Ubuntu/Debian系统的软件包。

copy

复制文件到远程主机。

fetch

从远程主机获取文件到本地。

file

管理文件和目录的属性。

unarchive

解压归档文件到远程主机。

user

管理用户账户。

group

管理用户组。

service

管理系统服务。

firewalld

管理firewalld防火墙规则。

cron

管理定时任务。

dnf

管理Fedora系统的软件包(类似于yum)。

synchronize

同步本地和远程主机之间的文件和目录。

wait_for

等待某个条件满足后再继续执行。

pause

暂停执行一段时间。

fail

人为地使任务失败,并显示错误信息。

debug

输出变量的值,用于调试。

 

创建用户

vim user.yml

  1. ---              #表示playbook的开头(可省,但不建议省)
  1. - name: useradd  # - name:表示解释说明,解释此playbook的功能
  2.   hosts: test    #表示此playbook应该到哪些主机组和主机上,如果有多个用,隔开
  3.   tasks:         #接下来具体要实施的任务
  4.   - name: Add the user 'johnd'   #- name:解释说明,对此任务的解释说明
  5.     user:        #模块名
  6.        name: qq1  #创建用户的名
  7.        uid: 1010  #用户的uid

 

ansible-playbook user.yml

备注:红色表示错误,黄色表示更改,绿色表示没有更改

3cf090a7bba6496c8c86c84c176a8489.png

根据红色报错信息修正错误之后

09257193a8a94e39bd1afa39625399f4.png

验证实验效果

ansible test -a "grep qq1 /etc/passwd"

a485c896685b4ccd8ff1ffdd4aa0bf30.png

 

创建组

1、在模块中过滤出group

ansible-doc -l  | grep group

7d545a8c41584931970092e592516837.png

2、查看user的帮助

ansible-doc group

/EX

ce03f15452944107afb2b8a1dc832075.png

3,编写playbook vim group.yml

---

- name: groupadd

   hosts: test

   tasks:

   - name: Ensure group "somegroup" exists

     group:

        name: group1

        state: present

4,根据检查排错 ansible-playbook group.yml

b8b2c0a436aa40348a245496c19bf31f.png

5,验证实验效果 ansible test -a "tail -n 1 /etc/group"

fd3f1b5f1fdb4db0940028e2e194ca62.png

 

安装软件包+开启服务

管理软件包的模块

ansible-doc -l | grep yum

ce9c6b58d0be44b9a87d37877413f3b1.png

ansible-doc  yum

/EX

3ea417284ada4073b7d170ad701f92bc.png

管理服务的模块

ansible-doc -l | grep service

a53dbabc6d7149309a9712e411ddce89.png

ansible-doc service

/EX

a181ebbbbee64e31a7b47e4d26089977.png

编写vim httpd.yml

  1 ---

  2 - name: web

  3   hosts: test

  4   tasks:

  5   - name: install the latset version of Apache

  6     yum:

  7         name: httpd

  8         state: latest

  9   - name: Start service httpd, if not started

 10     service:

 11        name: httpd

 12        state: started

 13        enabled: yes

验证playbook是否配置成功 ansible-playbook httpd.yml

33328fff92ab4e6a9a34924759cfce43.png

验证实验效果 ansible test -a "systemctl status  httpd"

2c13576d9f84424c913c0e51c63ea6e6.png

 

修改httpd的端口号(默认80端口)

替换配置文件中某一行的模块

ansible-doc -l | grep line

8886a57a205e454eb97a8cd2ae9f8bf8.png

ansible-doc lineinfile

/EX

708f52f3253e488293b363a7b065f29e.png

编辑playbook vim apache.yml

---

- name: listen

  hosts: test

  tasks:

    - name: Ensure the default Apache port is 8080

      lineinfile:

        path: /etc/httpd/conf/httpd.conf 

        regexp: '^Listen '

        insertafter: '^#Listen '

        line: 'Listen 8080'

        state: present

        backup: yes

检验配置是否成功:ansible-playbook apache.yml

9a824d8fbfdf4136a820066b31d76a1b.png

验证配置效果

ansible test -a "grep ^Listen  /etc/httpd/conf/httpd.conf"

be39a8ffc45248d5b2d3eb56ea2a1064.png

 

复制文件

查找复制文件的模块

ansible-doc -l | grep copy

383802459cfd4b7e87b932946f58a380.png

ansible-doc copy

/EX

b5174ba6d28b4da4a195cc2df80a7bbb.png

编辑playbook vim copy.yml

---
- name: copy
  hosts: test
  tasks:
  - name: Copy file with owner and permissions
    copy:
      src: /etc/fstab
      dest: /var/tmp/fstab

排查错误 ansible-playbook copy.yml

26441c8d86e749f58ee6a5f6ffd8a968.png

验证实验结果  ansible test -a "ls -ld /var/tmp/fstab"

ccaf566c5613464eb412aeefb5a8d46a.png

 

11.循环(loop)

1,批量创建用户(未循环操作)vim useradd.yml

---
- name: loop useradd
  hosts: test
  tasks:
  - name: Add the user
    user:
      name: qq10
  - name: Add the user
    user:
      name: qq11
  - name: Add the user
    user:
      name: qq12

排查错误 ansible-playbook useradd.yml

0caa97fb82cd4241af487e696b439c02.png

 验证实验结果 ansible test -a "tail -n 3 /etc/passwd"

5a40fa56903e49cd97af17d0357065ad.png

 

2,批量创建用户(使用循环操作)vim useradd1.yml

---
- name: loop
  hosts: test
  tasks:
  - name: Add the user
    user:
      name: "{{ item }}"
    loop:
    - wx1
    - wx2
    - wx3

#"{{ item }}"跟loop是固定搭配

#loop下面就行你要循环的名字

ansible-playbook useradd1.yml

985ac863a3cc450cb3577389e6b06c8c.png

 ansible test -a "tail -n 3 /etc/passwd"

1d14f0c9a82a4aeb98f13972fcfc83f9.png

 

3,通过循环批量创建组 vim group1.yml

---
- name: groupadd loop
  hosts: test
  tasks:
  - name: Ensure group "somegroup" exists
    group:
      name: "{{ item }}"
      state: present
    loop:
    - group10
    - group20
    - group30

 

ansible-playbook group1.yml

fd59920bef2042ad89652fc8076a40f4.png

ansible test -a "tail -n 3 /etc/group"

a43a62514dd04b569d30208987c8851b.png

 

12,利用变量实现模板复制

查看帮助

ansible-doc -l |grep setup

e28603cd853644168b42cf0c3ce18a17.png

ansible-doc setup

/EX

f9e196738a29429087d53b1fa48b7fee.png

 

使用临时命令找变量

查找ipv4相关的变量 ansible test -m setup -a "filter=*ipv4*"

5cba48e8a6ff448886d4cbe6ef321bf0.png

查找bios相关的变量 ansible test -m setup -a "filter=*bios*"

0ec95bb4f21746e686bfc5e03a2be1bd.png

查找cpu相关的变量 ansible test -m setup -a "filter=*cpu*"

67c4be16fc754edc80c72a3aa5cb9e46.png

 

1、编写模板,需求内容如下:

被控节点的ipv4地址

被控节点的bios版本

被控节点的CPU颗数

 

2、编写模板

vim test.j2

{{ ansible_default_ipv4.address }} {{ ansible_bios_version }}  {{ ansible_processor_vcpus }}

 

3、编写playbook将test.j2的模板复制到被控节点并显示具体值

复制带有变量的模板

ansible-doc -l | grep temp

e019d6f8735f4be2987e652b7773eb1e.png

ansible-doc template

8891a92e783440738fca55aa1747a8bb.png

编写playbook vim template.yml

---
- name: template
  hosts: test
  tasks:
  - name: Template a file to /etc/files.conf 
    template:
      src: test.j2
      dest: /tmp/test.txt 

 

ansible-playbook template.yml

c7f42cc881de4991acb17f5392707bba.png

ansible test -a "cat /tmp/test.txt"

52360d8c0eb74de881df5736ec8068cc.png

 

使用普通用户

要求使用user1用户部署ansible,生效的配置文件为/home/user1/ansible.cfg,清单文件路径为/home/user1/inventory

 

1、查看当前生效的配置文件

ansible --version

b61296dda16a44d9ac4da72608760d95.png

2、修改生效的配置文件

cp /etc/ansible/ansible.cfg .

ls

64f92b49ff4f4223a290efbf17c286a4.png

3、修改清单文件

vim ansible.cfg

inventory      = /home/user1/inventory

inventory      = /etc/ansible/hosts

e400ccd0b4c0427c8e3999a73ae1c175.png

4、修改清单文件内容

vim /home/user1/inventory

[dev]

192.168.23.142

3bdc7609116042ba99fdc7e293a020d8.png

图形化的方式显示 Ansible 库存(inventory)的结构 ansible-inventory --graph

26f4efc716be429db06352472a09e813.png

 

5、使用临时命令做测试(报错)

ansible dev -a "ls"

f6a2783ee7544b6cb746abb86c3d083d.png

这个错误信息表明,Ansible 尝试通过 SSH 连接到目标主机,但被拒绝了。拒绝的原因可能是以下几种情况之一:

  1. SSH 密钥问题:目标主机拒绝了你的 SSH 密钥。这可能是因为你使用的密钥没有被添加到目标主机的 ~/.ssh/authorized_keys 文件中。
  2. 用户名或密码错误:如果你使用的是密码认证方式,那么可能是用户名或密码错误。
  3. SSH 配置问题:目标主机的 SSH 配置可能不允许你使用的认证方式。
  4. 防火墙或网络问题:目标主机的防火墙可能阻止了 SSH 连接,或者存在其他网络问题。

为了进一步排查这个问题,你可以尝试以下步骤:

  1. 检查 SSH 密钥:确保你使用的 SSH 密钥已经被添加到目标主机的 ~/.ssh/authorized_keys 文件中。
  2. 检查用户名和密码:如果你使用的是密码认证方式,确保你输入的用户名和密码是正确的。
  3. 检查 SSH 配置:查看目标主机的 SSH 配置文件(通常是 /etc/ssh/sshd_config),确保配置允许你使用的认证方式。
  4. 检查防火墙和网络配置:确保目标主机的防火墙没有阻止 SSH 连接,并且网络配置正确。

 

ansible dev -a "ls" -k

SSH password: 被控节点的密码

23b6aab6640c459cae6a840329401254.png

ansible dev -a "touch 1.txt" -k

SSH password: 被控节点的密码

c9a7070b077c4491938f4f1f4e6893d3.png

ansible dev -a "ls" -k

SSH password: 被控节点的密码

230720a3954344488a1899ac3b963723.png

 

6、免密

vim ansible.cfg

#取消指纹验证

 72 host_key_checking = False

 73 #host_key_checking = False

2b424a70f9174121b609be3961ad5788.png

#远程用户使用root身份执行

109 remote_user = root

110 #remote_user = root

7f078b7500fb43baa3634d00c206ac2b.png

 

设置密码 vim inventory

  1 [all:vars]

  2 ansible_password=123456

  3 [dev]

  4 192.168.23.142

3889f0e63bbf49c480d8289659a2cdb5.png

测试验证实验结果

ansible dev  -a "useradd stu1"

ansible dev  -a "id stu1"

df75ef449b91472b862fc0d33419610f.png

 

7,loop循环-未 vim loop.yml

---
- name: loop
  hosts: dev
  tasks:
  - name: Add the user
    user:
      name: student1
  - name: Add the user
    user:
      name: student2

验证实验效果

ansible-playbook loop.yml

f17d67cdd03a4bebaca1d466db30c3e4.png

ansible dev -a "tail -n 2 /etc/passwd"

11df721c3b434836a746f003088ab1c0.png

 

8,loop循环

vim loop.yml

---
- name: loop
  hosts: dev
  tasks:
  - name: Add the user
    user:
      name: "{{ item }}"
    loop:
    - stu10
    - stu11
    - stu12

 

ansible-playbook loop.yml

e2586c724824415bb2ebbc9356901d93.png

ansible dev -a "tail -n 3 /etc/passwd"

189ae8f5f41642a6afb001b87fb9eaf0.png

 

9,创建组 vim group.yml

---
- name: groupadd
  hosts: dev
  tasks:
  - name: Ensure group "somegroup" exists
    group:
      name: "{{ item }}"
      state: present
    loop:
    - group10
    - group20
    - group30

 

ansible-playbook group.yml

79ca01ed33cd420a8a05c439b52642d2.png

ansible dev -a "tail -n 3 /etc/group"

e5f9fbb189dd4d0fb2cba10498576d5b.png

 

10,item.name、item.uid、item.groups

vim loop.yml

---
- name: loop
  hosts: dev
  tasks:
  - name: Add the user
    user:
      name: "{{ item.name  }}"
      uid: "{{ item.uid  }}"
      group: "{{ item.group  }}"
    loop:
    - name: userq1
      uid: 1050
      group: group10
    - name: userq2
      uid: 1040
      group: group20
    - name: userq3
      uid: 1030
      group: group30

 

ansible-playbook loop.yml

7caf97fb97a444479eb83f06a2a3c1f1.png

ansible dev -a "tail -n 3 /etc/passwd"

e89204c1db264e7196fe98d6f71e959a.png

ansible dev -a "id userq1"

ansible dev -a "id userq2"

ansible dev -a "id userq3"

464654ab6abd45ee9b6ac8efeece3b56.png

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/937322.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Java——网络编程(中)—TCP通讯(上)

一 (网络编程常用类) (Java为了跨平台,在网络应用通信时是不允许直接调用操作系统接口的,而是由java.net包来提供网络功能。下面来介绍几个java.net包中的常用的类) 1 InetAddress类的使用 (封装计算机的IP地址和DNS) (这个类没有构造方法——>如…

SQL server学习05-查询数据表中的数据(上)

目录 一,基本格式 1,简单的SQL查询语句 2,关键字TOP 3,关键字DISTINCT 二,模糊查询 1,通配符 三,对结果集排序 1,不含关键字DISTINCT 2,含关键字DISTINCT 3&…

Gitlab ci/cd

关于gitlab ci/cd,就是实现DevOps的能力,即Development &Operations的缩写,也就是开发&运维。CI/CD 指的是软件开发的持续集成方法,我们可以持续构建、测试和部署软件。通过持续方法的迭代能使得我们减少在错误代码或者错…

Leetcode42-环形链表

题目 给定一个链表的头节点 head ,返回链表开始入环的第一个节点。 如果链表无环,则返回 null。 如果链表中有某个节点,可以通过连续跟踪 next 指针再次到达,则链表中存在环。 为了表示给定链表中的环,评测系统内部使…

计算机网络错题

文章目录 码分复用透明传输差错检测停止-等待协议回退N帧协议CSMA/CD协议以太网交换机Vlanip地址的无分类编制方法ip地址的应用规划ip数据包的发送和转发过程路由信息协议IPI2016201720202022 2.5信道 码分复用 透明传输 差错检测 停止-等待协议 回退N帧协议 CSMA/CD协议 以太网…

改进系列(5):在ResNet网络添加SelfAttention自注意力层实现的遥感卫星下的土地利用情况图像分类

目录 1. ResNet介绍 2. SelfAttention 层 3. ResNet34 SelfAttention 4. 遥感卫星下的土地使用情况分类 4.1 土地使用情况数据集 4.2 训练 4.3 训练结果 4.4 推理 1. ResNet介绍 ResNet(残差网络)是一种深度卷积神经网络模型,由Ka…

ARM循环程序和子程序设计

1、计算下列两组数据的累加和并存入到sum1和 sum2 单元中。datal:0x12,0x935,0x17,0x100,0x95,0x345。 data2:0x357,0x778,0x129,0x188,0x190,0x155,0x167。 1.定义数据段 ;定义数据段,类型为data(表示为数据段),权限为可读可写(程序可以读取和修改这…

蓝桥杯刷题——day5

蓝桥杯刷题——day5 题目一题干解题思路一代码解题思路二代码 题目二题干解题思路代码 题目一 题干 给定n个整数 a1,a2,⋯ ,an,求它们两两相乘再相加的和,即: 示例一: 输入: 4 1 3 6 9 输出: 117 题目链…

1_linux系统网络性能如何优化——几种开源网络协议栈比较

之前合集《计算机网络从入门到放弃》第一阶段算是已经完成了。都是理论,没有实操,让“程序猿”很难受,操作性不如 Modbus发送的报文何时等到应答和 tcp通信测试报告单1——connect和send。开始是想看linux内核网络协议栈的源码,然…

opencv——识别图片颜色并绘制轮廓

图像边缘检测 本实验要用到Canny算法,Canny边缘检测方法常被誉为边缘检测的最优方法。 首先,Canny算法的输入端应为图像的二值化结果,接收到二值化图像后,需要按照如下步骤进行: 高斯滤波。计算图像的梯度和方向。非极…

Edge SCDN深度解析,边缘安全加速的创新实践

边缘安全加速(Edge Secure Content Delivery Network,SCDN)是酷盾安全推出的边缘集分布式 DDoS 防护、CC 防护、WAF 防护、BOT 行为分析为一体的安全加速解决方案。通过边缘缓存技术,智能调度使用户就近获取所需内容,为…

软考高级架构 —— 10.6 大型网站系统架构演化实例 + 软件架构维护

10.6 大型网站系统架构演化实例 大型网站的技术挑战主要来自于庞大的用户,高并发的访问和海量的数据,主要解决这类问题。 1. 单体架构 特点: 所有资源(应用程序、数据库、文件)集中在一台服务器上。适用场景: 小型网站&am…

Golang囊地鼠gopher

开发知识点-golang 介绍红队专题-Golang工具Fscan简介主要功能ubuntu 安装windows 安装常用命令:项目框架源文件common目录Plugins目录Webscan目录入口点插件扫描类型爆破插件common.ScantypeWebtitle函数webpoc扫描POC 执行CEL-GO 实践CEL指纹识别免杀源码特征参考链接红队专…

多分类交叉熵与稀疏分类交叉熵

总结: 标签为 One-hot 编码的多分类问题,用分类交叉熵对于标签为整数的多分类问题,用稀疏分类交叉熵稀疏分类交叉熵内部会将整数标签转换为 One-hot 编码,而如果标签已经是 One-hot 编码的形式,再使用稀疏分类交叉熵就会多此一举。 算例 假设我们有三个类别:A、B 和 C。…

360极速浏览器不支持看PDF

360安全浏览器采用的是基于IE内核和Chrome内核的双核浏览器。360极速浏览器是源自Chromium开源项目的浏览器,不但完美融合了IE内核引擎,而且实现了双核引擎的无缝切换。因此在速度上,360极速浏览器的极速体验感更佳。 展示自己的时候要在有优…

零基础微信小程序开发——小程序的宿主环境(保姆级教程+超详细)

🎥 作者简介: CSDN\阿里云\腾讯云\华为云开发社区优质创作者,专注分享大数据、Python、数据库、人工智能等领域的优质内容 🌸个人主页: 长风清留杨的博客 🍃形式准则: 无论成就大小,…

麒麟信安推出支持信创PC的新一代云桌面方案,助力政务信创高效安全运维

12月11日,在第二届国家新一代自主安全计算系统产业集群融通生态大会上,麒麟信安发布了支持信创PC的新一代云桌面方案,该方案是基于国际TCI架构实现国产PC机云化纳管在国内的首次发布,并与银河麒麟桌面操作系统、长城国产PC整机实现…

vim优化

1.编辑如下内容&#xff1a; cat > /root/.vimrc <<EOF set tabstop2 " 设置 Tab 为 2 个空格 set shiftwidth2 " 设置自动缩进为 2 个空格 set expandtab " 将 Tab 转换为空格 " 基本设置 set number syntax on" 快捷键设置…

hive—常用的日期函数

目录 1、current_date 当前日期 2、now() 或 current_timestamp() 当前时间 3、datediff(endDate, startDate) 计算日期相差天数 4、months_between(endDate, startDate) 日期相差月数 5、date_add(startDate, numDays) 日期加N天 6、date_sub(startDate, numDays) 日期减…

医学分割数据集肾结石分割数据集labelme格式359张1类别

数据集格式&#xff1a;labelme格式(不包含mask文件&#xff0c;仅仅包含jpg图片和对应的json文件) 图片数量(jpg文件个数)&#xff1a;359 标注数量(json文件个数)&#xff1a;359 标注类别数&#xff1a;1 标注类别名称:["kidney stone"] 每个类别标注的框数&…