学习Ansible自动化

自动化运维工具
​ shell脚本/Ansible(无客户端)/Saltstack

目录

  • 学习Ansible自动化
    • 1.Ansible基本概述
    • 2.Ansible能做什么
    • 3.Ansible软件特点
    • 4.Ansible架构介绍(见图说明)
    • 5.ansible的配置
        • 1.安装ansible
      • 2.部署好公钥认证
      • 3.配置主机清单
      • 4.验证
      • 主机组配置方式
        • 第一种:[oldboy_pass]
        • 第二中:支持变量的模式
        • 第三种:支持嵌套组
    • 6.调用模块来部署架构
      • Ansible注意事项->提示颜色信息说明
      • 1.command模块
      • 2.shell模块
      • 3.yum模块 对安装服务的控制
      • 4.copy模块 对文件的控制
      • 5.service模块 对服务的控制
      • 6.group模块 创建组
      • 7.user模块创建用户模块
      • 8.file模块创建修改文件权限
      • 9.mount模块 挂载
      • 10.script模块 执行脚本
      • 11.cron 计划任务
    • 7.Ad-Hoc简介
    • 8.Ansible playbook剧本使用
      • **1.YAML三板斧 (语法结构)**
      • **2.playbook的核心参数**
      • **3.命令格式**
      • 2.ansible playbook 安装apache示例
    • 多个剧本合并:
  • Ansible部署rsync+nfs+sersync实现方法
    • **1.角色**
    • 2.实现步骤:
    • **3.基础部署(hosts:all)**
    • 4.rsync部署
    • 5.nfs部署
    • 6.sersync部署
    • 7.web部署
    • 8.剧本合并
    • 9.执行ansible剧本install_rsync+web1+nfs.yaml

1.Ansible基本概述

​ Ansible是一个配置管理系统configuration management system你只需要使用ssh访问你的服务器或设备就行

2.Ansible能做什么

​ ansible可以帮我们完成一些批量任务,或者完成一些经常重复的工作

比如:同时在100台服务器上安装nginx服务,并在安装后启动服务

3.Ansible软件特点

  • ansible不需要单独安装客户端,ssh就相当于ansible客户端
  • ansible不需要启动任何服务,仅需要安装工具即可
  • ansible依赖大量的python模块来实现批量管理。
  • ansible配置文件/etc/ansible/ansible.cfg

4.Ansible架构介绍(见图说明)

  • 连接插件connectior plugins用于连接主机 用来连接被管理端
  • 核心模块 core modules 连接主机实现操作, 它依赖于具体的模块来做具体的事情
  • 自定义模块 custom modules,根据自己的需求编写具体的模块
  • 插件 plugins,完成模块功能的补充
  • 剧本 playbooks,ansible的配置文件,将多个任务定义在剧本中,由ansible自动执行
  • 主机清单 inventor,定义ansible需要操作主机的范围
    最重要的一点是 ansible是模块化的 它所有的操作都依赖于模块

例如:ansible yan -m command -a “df -Th”

5.ansible的配置

部署环境

主机 ip 角色
ansible 192.168.101.90 172.16.20.90 ansible管理端
NFS 192.168.101.80 172.16.20.100 ansible受控端
rsync_backup 192.168.101.81 172.16.20.101 ansible受控端
web1 192.168.101.82 172.16.20.102 ansible受控端
web2 192.168.101.83 172.16.20.103 ansible受控端

1.安装ansible

yum -y install ansible

2.部署好公钥认证

ssh-copy-id -i ~/.ssh/id_rsa.pub  root@192.168.101.81
ssh-copy-id -i ~/.ssh/id_rsa.pub  root@192.168.101.82
ssh-copy-id -i ~/.ssh/id_rsa.pub  root@192.168.101.83
ssh-copy-id -i ~/.ssh/id_rsa.pub  root@192.168.101.84

3.配置主机清单

vim /etc/ansible/hosts[oldboy_pass]
192.168.101.80
192.168.101.81
192.168.101.83
192.168.101.83

参数
ansible_ssh_host:定义host ssh地址
ansible_ssh_port:定义host ssh端口
ansible_ssh_user:定义host ssh 认证用户
ansible_ssh_pass:定义ssh认证密码
ansible_sudo:定义sudo用户
ansible_sudo_pass:定义sudu密码
ansible_sudo_exe:定义hosts sudo路径
ansible_connection:定义hosts连接方式
ansible_ssh_private_key_file:定义hosts私钥
ansible_ssh_shell_type:定义hosts shell类型
ansible_python_interpreter:定义hosts任我执行python路径
ansible_*_interpreter:定义hosts其他语言解析路径

例如 192.168.101.80 ansible_ssh_user=root ansible_ssh_pass=123456 ansible_ssh_port=22

4.验证

[root@m01 ~]# ansible yan -m ping
192.168.101.82 | SUCCESS => {"changed": false, "ping": "pong"
}
192.168.101.83 | SUCCESS => {"changed": false, "ping": "pong"
}
192.168.101.80 | SUCCESS => {"changed": false, "ping": "pong"
}
192.168.101.81 | SUCCESS => {"changed": false, "ping": "pong"
}ansible yan -m command -a "df -Th"
ansible yan -m command -a "ls"
ansible yan -m shell -a "df -h | grep /$

"

ansible清单管理

inventory文件通常用于自定义要管理主机的认证信息,列入ssh登录用户名、密码及key相关信息。如何配置Inventory文件

主机

  • 支持主机名通配以及正则表达式、列入web[1:3].oldboy.com
  • 支持基于非标准的ssh端口,列入www…oldboy.com:666
  • 支持变量,可对个别主机的特殊配置,如登录用户、密码等

主机组配置方式

支持嵌套组,列入[oldboy:children],那么在oldboy模块下面的组都会被game
支持指定变量,列如[oldboy:vars]在下面至变量
如果没有做SSH秘钥认证,可以把用户名密码写到/etc/ansible/hosts

第一种:[oldboy_pass]

192.168.101.80 ansible_ssh_user=root ansible_ssh_pass=123456 ansible_ssh_port=22
192.168.101.81 ansible_ssh_user=root ansible_ssh_pass=123456 ansible_ssh_port=22

第二中:支持变量的模式

 [yan]
192.168.101.80
192.168.101.81
192.168.101.82
192.168.101.83
[yan:vars]
ansible_ssh_pass=123.com.cn

第三种:支持嵌套组

nfs]
192.168.101.80
[rsync_backup]
192.168.101.81
[web1]
192.168.101.82
[web2]
192.168.101.83
[zong:children]
nfs
rsync_backup
web1
web2

6.调用模块来部署架构

安装软件包-修改配置文件-创建程序用户组-创建目录,并修改所属和权限-挂载-启动服务-测试

Ansible注意事项->提示颜色信息说明

  • 翔黄色:对远程节点进行相应修改
  • 帽子绿:对远程节点不进行相应修改
  • 深红色:操作执行命令有异常
  • 浅紫色:表示对命令执行发出警告信息(可能存在的问题,给你一下意见)

ansible的帮助工具
​ ansible-doc 模块名
​ ansible-doc 模块名 -s 列出改模块的所有着选项
​ ansible-doc -l 列出所有模块

1.command模块

[root@m01 ~]# ansible oldboy -m command -a "hostname"

2.shell模块

[root@m01 ~]# ansible oldboy -m shell -a "df -h | grep /$" -f 3   -f  =forks   //结果返回的数量

注意:command和shell模块区别:
​ command只能调用一条指令
​ shell可以使用管道

3.yum模块 对安装服务的控制

[root@m01 ~]# ansible web1 -m  yum -a "name=httpd state=installed"
  • ​ name //指定要安装的软件包名称,如果要有多个,用“,”隔离开
  • ​ state //指定使用yum的方法
  • ​ installed,present //安装软件包
  • ​ removed,absent //移除软件包
  • ​ latest //安装最新软件包

4.copy模块 对文件的控制

#推送文件模块,

[root@m01 ~]#ansible ansible -m copy -a "src=/etc/hosts dest=/etc/"

#在推送覆盖远程端文件前,先远程已有文件进行备份,按时间信息备份

[root@m01 ~]#ansible ansible -m copy -a "src=/etc/hosts dest=/etc/ backup=yes"

#直接向远端文件内写入数据信息,并且会覆盖远端文件原有数据信息

[root@m01 ~]# ansible web1 -m copy -a "content='123:qqqq' dest=/root/test123a.txt"

#推送远端文件,改变文件权限属组、属主

[root@m01 ~]# ansible ansible -m copy -a "content='123.com' dest=/root/aa.txt owner=www group=www mode=600"

参数

  • src —推送数据的源文件信息
  • dest ----推送数据的目标路径
  • backup ----推送传输过去的文件,进行备份
  • content ----直接批量在呗管理端文件种添加内容
  • group ----将本地文件推送到远端,指定文件属组信息
  • owner ----将本地文件推送到远端,指定文件属主信息
  • mode ----将本地文件推送到远端,指定文件权限信息

5.service模块 对服务的控制

[root@m01 ~]# ansible web1 -m service -a "name=named state=started enabled=yes"
  • ​ name #定义要启动服务的名称
  • ​ state #指定服务状态是停止或是运行,停止和运行指定要写成过去式
    ​ started #启动
    ​ stoped #停止
    ​ restarted #重启
    ​ reloaded #装载
  • ​ enabled #是否让服务开机自启动

6.group模块 创建组

[root@m01 ~]# ansible all -m group -a "name=www gid=666"                //创建ansible组
[root@m01 ~]# ansible web -m group -a "name=ansible state=absent"      //删除ansible组
  • ​ gid 设置组id
  • ​ name 需要管理的组名
  • ​ state 执行状态,absent删除、
    ​ present创建(默认)

7.user模块创建用户模块

[root@m01 ~]# ansible web -m user -a "name=zhangsan uid=103 group=ansible shell=/sbin/nologin "[root@m01 ~]# echo "123"| openssl passwd -1 -stdin      //-1使用MD5进行加密  --stdin 非交互式
$1$eaawW9Ns$XPSPMJQVb/UWnknWw44cw/
[root@m01 ~]# ansible web -m user -a "name=zhangsan uid=103 group=ansible shell=/sbin/nologin "  注意:password不能使用明文加密;需要加密、passowrd的加密值需要使用双引号。
  • =name #用户名
  • uid #uid
  • group #gid或groupname
  • state #执行状态,absent(删除)、present(创建)默认
  • shell #登录shell /bin/bash(默认)、/sbin/nologin
  • create_home #创建用户时,是否创建家目录,create_home=no/yes
  • password #这只密码,不能使用中文,需要使用openssl加密后的密码
    ​ 注意:password不能使用明文加密,需要加密
    ​ #-1使用MD5进行加密 --stdin 非交互式

8.file模块创建修改文件权限

[root@m01 ~]# ansible web -m file -a "path=/data owner=www group=www mode=777 state=touch"   //创建文件
[root@m01 ~]# ansible web -m file -a "path=/data1 owner=www group=www mode=777 state=directory"  //创建目录
[root@m01 ~]# ansible web -m file -a "path=/data1 owner=www group=www mode=777"      //修改文件属性
[root@m01 ~]# ansible web -m file -a "src=/etc/hosts path=/opt/hosts1 state=link" //创建软连接
[root@nginx_web2 opt]# ll
总用量 0
lrwxrwxrwx 1 root root 10 1月  14 12:29 hosts1 -> /etc/hosts
  • path 目标文件路径
    ​ copy模块的dest
    ​ 其他模块的name
  • src #源文件路径
  • owner #属主
  • group #属组
  • mode #权限
  • state #absent 删除
    ​ #directory 创建目录
    ​ #file 修改文件属性(默认)
    ​ #touch 创建文件
    ​ #link hard 链接
  • recurse #递归 recurse=yes
    总结:file模块进适合创建目录,修改所属,创建软连接,开除这些操作的其他文件管理都通过copy模块来实现

9.mount模块 挂载

案例1:通过nfs实现网络文件共享
安装nfs

[root@m01 ~]# ansible web2  -m yum -a "name=nfs-utils,rpcbind state=installed"
[root@m01 ~]# ansible web2 -m service -a "name=rpcbind state=started"
[root@m01 ~]# ansible web2 -m service -a "name=nfs state=started"

修改配置文件

[root@m01 ~]# ansible web2 -m copy -a "content='/date 192.168.101.0/24(rw,all_squash,sync,anonuid=666,anongid=666)' dest=/etc/exports"

创建目录、用户、并修改所属

[root@m01 ~]# ansible web2 -m file -a "path=/data group=www owner=www"

重载配置文件

[root@m01 ~]# ansible web2 -m service -a "name=nfs state=restarted"

挂载

[root@m01 ~]# ansible web1 -m mount -a "src=192.168.101.83:/date path=/var/www/html fstype=nfs  state=mounted"        //挂载设备,则开机自动挂载
[root@m01 ~]# ansible web1 -m mount -a "src=192.168.101.83:/date path=/var/www/html fstype=nfs  state=umounted"          //卸载设备
  • path #挂载点
  • src #需要挂载的设备
  • fstype #需要挂载文件系统
    ​ iso9660 光驱
    ​ ext4
    ​ nfs
    ​ cifs samba的共享文件系统
    ​ ntfs windows磁盘文件系统
  • opts #挂载属性
    ​ noatime
    ​ noexec
    ​ nosuid
  • state #挂载动作
    ​ present #开机挂载,进将挂再配置写入/etc/fstab
    ​ mounted #挂载设备,并将配置写入/etc/fstab
    ​ unmounted #卸载设备,不会清楚/etc/fstab
    ​ absent #卸载设备,会清楚/etc/fstab

10.script模块 执行脚本

ansible web -m script -a "/root/useradd.sh"

11.cron 计划任务

列子:每天的凌晨1点执行rsync_backup

[root@m01 ~]# ansible all -m copy -a "src=/root/rsync_backup.sh dest=/root/ mode=a+x"[root@m01 ~]# ansible all -m cron -a "name='Rsync Backup' hour=1 minute=0 job='/bin/bash /root/rsync_backup.sh &> /dev/null'"

推送脚本至每天受控端

  • name #描述,必须要写,否则无法删除
  • job #任务(命令)
  • state #执行状态,absent 删除 、present创建(默认)
  • minute 分钟
    Minute when the job should run ( 0-59, *, */2, etc )
    [Default: *]
  • month 月
    Month of the year the job should run ( 1-12, *, */2, etc )
    [Default: *]
  • hour 小时
    Hour when the job should run ( 0-23, *, */2, etc )
    [Default: *]
  • day 天数
    Day of the month the job should run ( 1-31, *, */2, etc )
    (Aliases: dom)[Default: *]

7.Ad-Hoc简介

所谓ad-hoc命令是什么呢?

这其实是一个概念性的名字,是相对于写Ansible playbook来说的。类似于再命令行敲入shell命令和写shell scripts两者之间的关系。

如果我们敲入一些命令去比较快速的完成一些事情,而不需要将这些执行的命令特别的保存下来,这样的命令叫做ad-hoc命令。

ansible提供两种方式去完成任务

  • d-hoc命令,:执行shell命令或shell脚本。可以执行一些简单的命令,不需要将这些命令保存下来,适合执行简单的命令
  • asible playbook :可以解决较复杂的任务,可以将命令保存下来。适合执行配置管理或部署客户机。

ad-hoc是指将ansible临时执行的一条命令,并且不需要保存的命令,对复杂的命令会使用playbook。ad-hoc的执行依赖于模块,ansible官方提供了大量的模块。如:command、raw、shell、file、cron等具体可以通过ansible-doc -了来进行查看。可使用用ansible-doc-s module来查看某个模块的参数,也可以使用ansible-doc help module来查看改模块更详细的信息。

8.Ansible playbook剧本使用

playbook是由一个或多个模块组成,使用多个不同模块,完成一件事情
playbook通过yaml语法识别描述的状态文件。扩展名是.yaml

1.YAML三板斧 (语法结构)

缩进:
​ YAML使用一个固定的缩进风格表示层级结构,你每个缩进由两个空格组成,不能使用tab(默认,因为tab=4个空格)
​ 解决方法:

[root@m01 ~]# cat .vimrc
set tabstop=2

冒号:
​ 以冒号结尾的除外,其他所有冒号后面必须有空格

短横线:
​ 表示列表项,使用一个段横杠加一个空格
​ 多个项使用同样的缩进级别作为同一个列表。

2.playbook的核心参数

​ hosts:主机清单
​ tasks:任务
​ vars:变量
​ handlers:特定条件触发的任务
​ template:包含模板的文本文件

3.命令格式

​ ansible-playbook [选项参数] 剧本文件
​ 命令常用选项**

  • ​ -C, --check 模拟运行
  • –list-hosts 列出剧本主机清单
  • –list-tags 列出剧本标记
    –list-tasks 列入剧本任务
  • –syntax-check 检查语法

2.ansible playbook 安装apache示例

[root@m01 ansible_playbook]# vim apache.yaml
hosts: web2                     //主机清单
tasks:                          //任务name: Install Httpd             //描述yum: name=httpd state=installed       name: Configure Httpd_confcopy: src=./conf/httpd.conf dest=/etc/httpd/conf/httpd.confnotify: Restart Http Service //关联handlers 此命令操作就执行handlers   name: Start Http Serverservice: name=httpd state=started enabled=yeshandlers:                    //与上面的notify关联name: Restart Http Serviceservice: name=httpd state=restarted#模拟检测并执行
[root@m01 playbook_yaml]#  ansible-playbook -C apache.yaml
[root@m01 playbook_yaml]#  ansible-playbook apache.yaml

多个剧本合并:

vim mail.yaml
- import_playbook: base.yaml
- import_playbook: rsync.yaml
- import_playbook: nfs.yaml
- import_sersync.yaml
- import_web.yaml

Ansible部署rsync+nfs+sersync实现方法

1.角色

设备名 ens192 ens224
NFS 192.168.101.80 172.16.20.100
rsync_backup 192.168.101.81 172.16.20.101
web1 192.168.101.82 172.16.20.102
web2 192.168.101.83 172.16.20.103

2.实现步骤:

  • 保证ssh密钥认证失效
  • 安装ansible
  • 准备相关文件并修改

-rw-r–r-- 1 root root 542 1月 16 10:32 config
-rw-r–r-- 1 root root 67 1月 16 12:59 exports
-rw-r–r-- 1 root root 11753 1月 16 10:37 httpd.conf
-rw-r–r-- 1 root root 17 1月 16 10:43 index.html
-rwxr-xr-x 1 root root 563 1月 16 17:12 rsync_backup.sh
-rw-r–r-- 1 root root 624 1月 16 17:11 rsyncd.conf
-rw-r–r-- 1 root root 27 1月 16 10:36 rsync.passwd
-rw-r–r-- 1 root root 4 1月 16 10:36 rsync.password
drwxr-xr-x 2 root root 41 1月 16 16:20 sersync

3.基础部署(hosts:all)

vim all.yaml
- hosts: alltasks:- name: Disable selinux #关闭selinuxcopy: src=/etc/ansible/conf/config dest=/etc/selinux/config- name: Create Group  #创建组group: name=www gid=777- name: Create User  #创建用户user: name=www uid=777 group=www shell=/sbin/nologin createhome=no- name: Install NFS #安装nfs rpcbindyum: name=nfs-utils,rsync state=installed- name: Install RPCbind #安装nfs rpcbindyum: name=rpcbind state=installed- name: Stop friewalld  #关闭防火墙service: name=firewalld state=stopped- name: Copy rsync_backup.sh #复制脚本copy: src=/etc/ansible/conf/rsync_backup.sh dest=/root/rsync_backup.sh mode=a+x- name: cron rsync_backup #址作任务计划cron: name='Rsync_backup' hour=0 minute=0 job='/bin/bash /root/rsync_backup.sh &> /dev/null'

4.rsync部署

vim install_rsync.yaml
hosts: rsync_backup
tasks:- name: Copy Rsyncd.conf #复制配置文件copy: src=/etc/ansible/conf/rsyncd.conf dest=/etc/rsyncd.confnotify: Restarted rsync- name: Copy Rsync.passwd  #复制认证密码copy: src=/etc/ansible/conf/rsync.passwd dest=/etc/rsync.passwd mode=600- name: Create path=/backup #创建目录file: path=/backup group=www owner=www state=directory- name: Create path=/html #创建html目录file: path=/html group=www owner=www state=directory- name: Start Rsyncd  #启动rsyncservice: name=rsyncd state=started enabled=yeshandlers:- name: Restarted rsync #重启rsyncservice: name=rsyncd state=restarted

5.nfs部署

vim install_nfs.yaml
- hosts: nfs-servicetasks:- name: Copy File exports #复制nfs配置文件copy: content='/html 192.168.101.0/24(rw,all_squash,sync,anonuid=777,anongid=777)' dest=/etc/exportsnotify: Restarted nfs- name: Copy File rsync.password #复制认证密码copy: src=/etc/ansible/conf/rsync.password dest=/etc/rsync.password mode=600- name: Create path=/html #创建目录file: path=/html group=www owner=www state=directory- name: bianxie .html  #编辑htmlcopy: content='rsync+nfs hellword' dest=/html/index.html- name: Start rpcbind  #启动nfsservice: name=rpcbind state=started enabled=yes-  service: name=rpcbind state=started enabled=yes- name: Start nfs  #启动startservice: name=nfs state=started enabled=yeshandlers:- name: Restarted nfs #重启nfsservice: name=nfs state=restarted

6.sersync部署

vim install_sersync.yaml
- hosts: nfs-servicetasks:- name: Copy file sersync  #复制sersync文件copy: src=/etc/ansible/conf/sersync dest=/usr/local/ mode=777- name: sersync  #运行sersync脚本shell: /usr/local/sersync/sersync2 -dro /usr/local/sersync/confxml.xml

7.web部署

vim install_httpd.yaml
hosts: web1
tasks:- name: Install Httpd  #安装httpdyum: name=httpd state=installed- name: Copy httpd.conf  #复制配置文件copy: src=/etc/ansible/conf/httpd.conf dest=/etc/httpd/conf/httpd.confnotify: Restarted httpd- name: Start httpd #启动httpdservice: name=httpd state=started- name: Mount 192.168.101.82:/html /var/www/html #挂载html目录mount: src=192.168.101.82:/html path=/var/www/html fstype=nfs state=mountedhandlers:- name: Restarted httpd  #重启httpdservice: name=httpd state=restarted

8.剧本合并

[root@m01 playbook_yaml]# vim install_rsync+web1+nfs.yaml - import_playbook: all.yaml
- import_playbook: install_rsync.yaml
- import_playbook: install_nfs.yaml
- import_playbook: install_sersync.yaml
- import_playbook: install_httpd.yaml

9.执行ansible剧本install_rsync+web1+nfs.yaml

#模拟检测
[root@m01 playbook_yaml]#  ansible-playbook -C install_rsync+web1+nfs.yaml
#执行
[root@m01 playbook_yaml]#  ansible-playbook  install_rsync+web1+nfs.yaml

学习Ansible自动化相关推荐

  1. ansible自动化部署(一)

    ansible自动化部署 最近因为工作需要学习了ansible,把这几天所学的东西做了个总结,和大家分享一下: 1.什么是ansible?ansible能干什么? ansible是新出现的自动化运维工 ...

  2. 一小时学会Ansible自动化运维

    [欢迎关注微信公众号:厦门微思网络] 微思网络(官网):https://www.xmws.cn/ 今天分享一个讲解 Ansible 的 PPT,内容非常全面,可帮助你更好的学习Ansible. 红帽R ...

  3. K8S实战集训第一课 Ansible自动化部署k8s、弹性伸缩、Helm包管理、k8s网络模型介绍

    Ansible自动化部署K8S集群 一.Ansible自动化部署K8S集群 1.1 Ansible介绍 Ansible是一种IT自动化工具.它可以配置系统,部署软件以及协调更高级的IT任务,例如持续部 ...

  4. ansible自动化运维工具

    ansible自动化运维工具 ansible自动化运维脚本工具 ansible自动化运维工具 一.ssh工作原理和基本命令 1.ssh原理 2.ssh的基本命令 二.anible 自动化运维工具 1. ...

  5. ansible自动化运维从入门到精通

    ansible自动化运维 Ansible介绍 Ansible是一个同时管理多个远程主机的软件(任何可以通过SSH协议登录的机器),因此Ansible可以管理远程虚拟机.物理机,也可以是本地主机. An ...

  6. @ansible自动化运维详解(总述)

    ansible [自动化运维应用场景] "运维的未来是,让研发人员能够借助工具.自动化和流程,并且让他们能够在运维干预极少的情况下部署和运营服务,从而实现自助服务.每个角色都应该努力使工作实 ...

  7. Ansible自动化运维(五)----Ansible剧本

    Ansible自动化运维(五)----Ansible剧本 Ansible核心的功能,作用就是进行配置管理. Ansible需要编写的 playbook 剧本需要遵循一定的规则,格式,这个格式就称之为y ...

  8. Ansible自动化运维工具介绍与部署

    ansible自动化运维工具介绍与部署 文章目录 一.什么是自动化运维? 二.常用的自动化运维工具 2.1 Ansible 2.2 SaltStack 2.3 Puppet 2.4 三种自动化工具特点 ...

  9. 基于强化学习的自动化剪枝模型

    点击上方"视学算法",选择加"星标"或"置顶" 重磅干货,第一时间送达 来源丨AI科技评论 编辑丨极市平台 导读 GitHub上最新开源的一 ...

最新文章

  1. 如何更改gridview中任意单元格颜色或者内容。
  2. 近期遇到的一些信号处理的问题,做一下总结
  3. undefined symbol: _Py_ZeroStruct
  4. input[type=file] 异步上传文件
  5. 01,完全,多重,分组
  6. CMake基础 第5节 安装项目
  7. Tomcat端口占用相关的问题
  8. ORA-01756: quoted string not properly terminated
  9. layui 自动渲染_Layui表格自动渲染
  10. LUA验证系统PHP,用Nginx+Lua实现高性能、高可靠、安全的登陆验证
  11. 使用ENVI对遥感图像进行图像镶嵌、图像裁剪。
  12. number数据类型
  13. 《郭论》郭德纲/著 读后得2021-02-22
  14. 为你的网站添加 htpps
  15. 【简单详细】为Unity游戏制作开场动画video,新手必看
  16. 可以远程控制的浏览器(双核)让浏览器动起来
  17. Win10调整各窗口的任务栏位置
  18. win 10 安装时候无法格式化分区,错误 0x80070057
  19. 网络七层协议具体是什么?
  20. 海外调查问卷渠道平台

热门文章

  1. 2020最新尚硅谷- 大数据课程
  2. python 例外 重试_Python例外:简介
  3. python office转pdf linux_python 如何将office文件转换为PDF
  4. 视频转换格式,用DOS命令
  5. JavaScript倒计时算法(计算剩余多少天)实现
  6. Hibernate:Acquisition Attempt Failed Clearing pending acquires.
  7. A reference for learning process
  8. mysql插入时间少八个小时
  9. 数据库课程设计之通讯录管理系统之目录
  10. android到底要多少内存,手机内存究竟要多大才够用?