1.Ansible基本概述

  1. Ansible是一个IT自动化的配置管理工具,自动化主要体现在Ansible集成了丰富模块,丰富的功能组件,
  2. 可以通过一个命令行完成一系列的操作。进而能减少我们重复性的工作和维护成本,以提高工作的效率。

2.Ansible的功能

  1. 1)批量执行远程命令,可以对N多台主机同时进行命令的执行
  2. 2)批量配置软件服务,可以进行自动化的方式配置和管理服务。
  3. 3)实现软件开发功能,jumpserver底层使用ansble来实现的自动化管理0
  4. 4)编排高级的IT任务,Ansibleplaybook是一门编程语言,可以用来描绘一套IT架构。

3.Ansible的特点

  1. 1.容易学习,无代理模式,不像saltstack既要学服务端又要学习客户端,还要学习服务端与客户端之间的通讯协议
  2. 2.操作灵活,体现在Ansible有较多的模块,提供了丰富的功能,playbook则提供了类似于编程语言的复杂功能
  3. 3.简单易用,体现在Ansible —个命令可以完成很多事情
  4. 4.安全可靠,因为Ansible使用了SSH协议进行通汛,既稳定又安全
  5. 5.可移植性高,可以将写好的playbook拷贝至任意机器进行执行

4.Ansible 基础架构

控制端 被控端 inventory ad-hoc playbook 连接协议

5.Ansible的安全配置

2.1.Ansible安装

外网地址 内网地址 角色
10.0.0.61 172.16.1.61 Ansible控制端
10.0.0.7 172.16.1.7 Ansible被控端
10.0.0.8 172.16.1.8 Ansible被控端

1.先安装epel源(提供最新的ansible)

[root@cheng ~]#wget -O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.repo

2.安装Ansible

  1. 1.通过yum进行安装
  2. [root@manager ~]# yum install ansible -y
  3. 2.查看ansible的版本
  4. [root@manager ~]# ansible --version
  5. ansible 2.8.5
  6. config file = /etc/ansible/ansible.cfg
  7. configured module search path = [u'/root/.ansible/plugins/modules', u'/usr/share/ansible/plugins/modules']
  8. ansible python module location = /usr/lib/python2.7/site-packages/ansible
  9. executable location = /usr/bin/ansible
  10. python version = 2.7.5 (default, Jun 20 2019, 20:27:34) [GCC 4.8.5 20150623 (Red Hat 4.8.5-36)]

3.ansible的配置文件,配置文件可以随意放,但有查找顺序

  1. $ANSIBLE_CONFIG
  2. ansible.cfg #当前目录下面查找
  3. .ansible.cfg #当前用户的家目录下查找
  4. /etc/ansible/ansible.cfg
  5. [root@m01 ~]# cat /etc/ansible/ansible.cfg
  6. #inventory = /etc/ansible/hosts #主机列表配置文件
  7. #library = /usr/share/my_modules/ #库文件存放目录
  8. #remote_tmp = ~/.ansible/tmp #临时py文件存放在远程主机目录
  9. #local_tmp = ~/.ansible/tmp #本机的临时执行目录
  10. #forks = 5 #默认并发数
  11. #sudo_user = root #默认sudo用户
  12. #ask_sudo_pass = True #每次执行是否询问sudo的ssh密码
  13. #ask_pass = True #每次执行是否询问ssh密码
  14. #remote_port = 22 #远程主机端口
  15. host_key_checking = False #跳过检查主机指纹
  16. log_path = /var/log/ansible.log #ansible日志
  17. [privilege_escalation] #如果是普通用户则需要配置提权
  18. #become=True
  19. #become_method=sudo
  20. #become_user=root
  21. #become_ask_pass=False

4.ansible 优先级验证

  1. [root@manager ~]# export
  2. ANSIBLE_CONFIG="/tmp/ansible.cfg"
  3. [root@manager ~]# touch /tmp/ansible.cfg
  4. [root@manager ~]# mkdir /project1
  5. [root@manager ~]# cd /project1/
  6. [root@manager project1]# touch ansible.cfg
  7. [root@manager project2]# ansible --version
  8. ansible 2.8.5
  9. config file = /project1/ansible.cfg
  10. [root@manager /]# mkdir /project2
  11. [root@manager /]# cd /project2/
  12. [root@manager project2]# touch ansible.cfg
  13. [root@manager project1]# ansible --version
  14. ansible 2.8.5
  15. config file = /project2/ansible.cfg
  16. [root@manager tmp]# touch ~/.ansible.cfg
  17. [root@manager tmp]# ansible --version
  18. ansible 2.8.5
  19. config file = /root/.ansible.cfg

6.Ansible Ineventory主机清单

1.场景一:基于ip+密码连接

  1. [root@manager project1]# cat hosts
  2. #方式一、主机+端口+密码
  3. [webservers]
  4. 172.16.1.7 ansible_ssh_port=22 ansible_ssh_user=root ansible_ssh_pass='123456'
  5. 172.16.1.8 ansible_ssh_port=22 ansible_ssh_user=root ansible_ssh_pass='123456'
  6. #方式二、主机+端口+密码
  7. [webservers]
  8. web[1:2].cheng ansible_ssh_pass='123456'
  9. #方式三、主机+端口+密码
  10. [webservers]
  11. web[1:2].cheng
  12. [webservers:vars]
  13. ansible_ssh_pass='123456'

2.场景二:基于密钥连接,需要先创建公钥和私钥,并下发公钥至被控端

  1. 1.先创建公钥和私钥
  2. [root@manager project1]# ssh-keygen -C manger@qq.com
  3. 2.下发公钥至被控端
  4. [root@manager ~]# ssh-copy-id -i ~/.ssh/id_rsa.pub
  5. root@172.16.1.7
  6. [root@manager ~]# ssh-copy-id -i ~/.ssh/id_rsa.pub
  7. root@172.16.1.8
  8. #方式一、主机+端口+密钥
  9. [root@manager ~]# cat hosts
  10. [webservers]
  11. 172.16.1.7
  12. 172.16.1.8
  13. #方式二、别名+主机+端口+密钥
  14. [webservers]
  15. web01 ansible_ssh_host=172.16.1.7 ansible_ssh_port=22
  16. web02 ansible_ssh_host=172.16.1.8 ansible_ssh_port=22

3.场景三:主机组使用方式

  1. [lbservers] #定义lbservers组
  2. 172.16.1.5
  3. 172.16.1.6
  4. [webservers] #定义webserver组
  5. 172.16.1.7
  6. 172.16.1.8
  7. [servers:children] #定义servers组包括两个子组
  8. [lbservers,webserver]
  9. lbservers
  10. webserver
  11. [root@manager project1]# ansible webservers --list-hosts -i hosts
  12. hosts (2):
  13. 172.16.1.7
  14. 172.16.1.8
  15. PS:如果控制端和被控制端第一次通讯,需要先添加指纹信息,那如果机器特别多少的情况下怎么办?
  16. 仅需开启ansible中的 host_key_checking = False

7.Ansible Ad-Hoc

1.常用模块

  1. command #执行命令 默认 不支持管道
  2. shell #执行命令 支持管道
  3. yum_reposity #yum仓库配置
  4. yum #yum安装软件
  5. get_url #和linux的wget一致
  6. copy #拷贝配置文件
  7. service|systemd #启动服务
  8. user #属主
  9. group #属组
  10. file #创建目录 创建文件 递归授权
  11. mount #挂载
  12. cron #定时任务
  13. firewalld #防火墙
  14. selinux #selinux

2.使用过程中需要先了解ansible-doc帮助手册

  1. [root@manager project1]# ansible-doc -l # 查看所有模块说明
  2. [root@manager project1]# ansible-doc copy # 表示指定模块方法
  3. [root@manager project1]# ansible-doc -s copy # 表示指定模块参数

3.command默认执行bash命令模块,模块不支持重定向或管道

ansible webservers -a "ps axu|grep nginx" -i hosts #不支持管道(简单命令)

4.shell模块,如果需要一些管道操作,则使用shell

ansible webservers -m shell -a "ps axu|grep nginx" -i hosts #支持管道

5.yum安装软件模块

  1. yum:
  2. state:
  3. present 安装
  4. absent 卸载
  5. latest 最新
  6. enablerepo #指定使用按个仓库
  7. disablerepo #排除使用哪个仓库
  8. 1.安装最新的httpd服务
  9. [root@manager project1]# ansible webservers -m yum -a "name=httpd state=latest disablerepo=webtatic-php" -i hosts
  10. 2.移除httpd服务
  11. [root@manager project1]# ansible webservers -m yum -a "name=httpd state=absent disablerepo=webtatic-php" -i hosts
  12. 3.安装httpd指定从按个仓库安装
  13. - name: install the latest version of Apache from
  14. the testing repo
  15. [root@manager project1]# ansible webservers -m yum -a "name=httpd state=latest enablerepo=testing" -i hosts
  16. 4.通过URL方式进行安装
  17. [root@manager project1]# ansible webservers -m yum -a "name=https://mirrors.aliyun.com/zabbix/zabbix/3.0/rhel/7/x86_64/zabbix-agent-3.0.0-1.el7.x86_64.rpm state=present disablerepo=webtatic-php" -i hosts
  18. - name: install nginx rpm from a local file (软件包必须在被控端主机)
  19. 5.在本地做软件升级操作
  20. [root@manager project1]# ansible webservers -m yum -a "name=/root/zabbix-agent-4.0.0-2.el7.x86_64.rpm state=present disablerepo=webtatic-php" -i hosts

6.copy文件拷贝模块

  1. copy:
  2. src #本地路径,可以是相对,可以是绝对
  3. dest #目标位置
  4. owner #属主
  5. group #属组
  6. mode #权限
  7. backup #备份
  8. 1.拷贝文件至被控节点【前提必须在控制端准备好对应的文件】
  9. [root@manager project1]# ansible webservers -m copy -a "src=./file/ansible.cheng.com.conf dest=/etc/nginx/conf.d/ansible.cheng.com.conf owner=root group=root mode=644" -i hosts
  10. 2.对远端已有文件进行备份,按照时间信息备份【控制端可作修改】
  11. [root@manager project1]# ansible webservers -m copy -a "src=./file/ansible.cheng.com.conf dest=/etc/nginx/conf.d/ansible.cheng.com.conf owner=root group=root mode=644 backup=yes" -i hosts
  12. 3.向被控端主机写入数据,并且会覆盖远端文件内原有数据信息
  13. [root@manager project1]# ansible webservers -m copy -a "content='hello word' dest=/tmp/test.html" -i hosts

7.ansible管理服务的启动与停止,使用service、systemd

  1. state:
  2. started #启动
  3. stopped #停止
  4. restarted #重启
  5. reloaded #重载
  6. enabled #是否开机自启
  7. yes #是
  8. no #否
  9. 1.启动nginx服务并加入开机自启
  10. [root@manager project1]# ansible webservers -m systemd -a "name=nginx state=restarted enabled=yes" -i hosts
  11. 2.停止http服务
  12. [root@manager project1]# ansible webservers -m systemd -a "name=httpd state=stopped" -i hosts

8.file文件创建模块

  1. 1.创建 /code/ansible
  2. path: #指定远程主机目录或文件
  3. recurse: #递归授权 yes|no
  4. state: #状态
  5. directory #在远端创建目录
  6. touch #在远端创建文件
  7. link #创建链接文件
  8. absent #表示删除文件或目录
  9. mode #设置文件或目录权限
  10. owner #设置文件或目录属主
  11. group #设置文件或目录属组
  12. 2.准备站点
  13. [root@manager project1]# ansible webservers -m file -a "path=/code/ansible state=directory mode=755 owner=www group=www" -i hosts
  14. 3.准备站点代码【前提在控制端准备index.html文件】
  15. [root@manager project1]# ansible webservers -m copy -a "src=./file/index.html dest=/code/ansible/index.html owner=www group=www mode=644" -i hosts

9.group组模块、user模块

  1. #group 整数int 小数 flot dasdsa str 真|假 bool
  2. #user
  3. name #名称
  4. uid #uid
  5. group #组名或gid
  6. create_home #是否创建家目录
  7. system #是否作为系统组
  8. shell #指定登录shell
  9. state
  10. present
  11. absent
  12. remove
  13. groups
  14. append
  15. password #给用户添加密码(记得单引号
  16. 1.创建gid666www
  17. [root@manager project1]# ansible webservers -m group -a "name=www gid=666 state=present" -i hosts
  18. 2.程序使用 www 666 666 /sbin/nologin 不创建家目录/home
  19. [root@manager project1]# ansible webservers -m user -a "name=www uid=666 group=666 create_home=no shell=/sbin/nologin state=present" -i hosts
  20. 3.正常用户 xiang 1000 1000 /bin/bash /home/xiang
  21. [root@manager project1]# ansible webservers -m user -a "name=xiang" -i hosts
  22. 4.移除用户xiang,并删除家目录所有内容
  23. [root@manager project1]# ansible webservers -m user -a "name=xiang state=absent remove=yes" -i hosts
  24. 5.创建 other用户.有两个附加组root bin,创建家目录,指定登录shell,设定密码123
  25. 5.1将明文密码进行hash加密,然后进行用户创建
  26. [root@manager project1]# ansible all -i localhost, -m debug -a "msg={{ '123'| password_hash('sha512', 'mysecretsalt') }}"
  27. localhost | SUCCESS => {
  28. "msg": "$6$mysecretsalt$gIIYs0Xgc7sSQkH.zKaz8/AfaMomYzR1QZYtccwmJcUt8VpLq4D055UCCX4MlwgePOP80ZRwhppvBF72RIAVi/"
  29. }
  30. 5.2创建
  31. [root@manager project1]# ansible webservers -m user -a 'name=other groups='root,bin' create_home=yes shell=/bin/bash password="$6$mysecretsalt$gIIYs0Xgc7sSQkH.zKaz8/AfaMomYzR1QZYtccwmJcUt8VpLq4D055UCCX4MlwgePOP80ZRwhppvBF72RIAVi/"' -i hosts

10.mount挂载模块

  1. 1.提前准备好nfs服务端【web进行测试】
  2. [root@web01 ~]# showmount -e 172.16.1.31
  3. Export list for 172.16.1.31:
  4. /data/zrlog 172.16.1.0/24
  5. /data/zh 172.16.1.0/24
  6. /data/edu 172.16.1.0/24
  7. 2.用管理端操作被控端,让被控端挂载nfs存储数据
  8. state:
  9. present #写入/etc/fstab【开机挂载,仅将挂载配置写入/etc/fstab】
  10. absent #卸载/etc/fstab【卸载设备,会清理/etc/fstab写入的配置】
  11. mounted #临时挂载【挂载设备,并将配置写入/etc/fstab】
  12. unmounted #卸载当前挂载【卸载设备,不会清除/etc/fstab写入的配置】
  13. 3.挂载过程中,如果目录不存在,则会创建该目录
  14. [root@manager project1]# ansible webservers -m mount -a "src=172.16.1.31:/data/word path=/test_wordpress fstype=nfs opts=defaults state=mounted" -i hosts
  15. 4.卸载当前挂载的
  16. [root@manager project1]# ansible webservers -m mount -a "src=172.16.1.31:/data/word path=/test_wordpress fstype=nfs opts=defaults state=unmounted" -i hosts
  17. 5.卸载/etc/fstab
  18. [root@manager project1]# ansible webservers -m mount -a "src=172.16.1.31:/data/word path=/test_wordpress fstype=nfs opts=defaults state=absent" -i hosts

11.crond定时任务模块

  1. minute #分
  2. hour #时
  3. day #日
  4. month #月
  5. week #周
  6. job #写具体执行的任务【执行+脚本路径】
  7. 1.使用ansible添加一条定时任务
  8. [root@manager project1]# ansible webservers -m cron -a 'name=test_jop minute=00 hour=02 job="/bin/bash /server/scripts/client_data_server.sh && >/dev/null/"' -i hosts
  9. [root@web01 ~]# crontab -l
  10. #Ansible: test_jop
  11. 00 02 * * * /bin/bash /server/scripts/client_data_server.sh && >/dev/null/
  12. 2.使用ansible添加每分钟执行的定时任务
  13. [root@manager project1]# ansible webservers -m cron -a 'name=test job="/bin/bash /server/scripts/test.sh &> /dev/null"' -i hosts
  14. [root@web01 ~]# crontab -l
  15. #Ansible: test
  16. * * * * * /bin/bash /server/scripts/test.sh &> /dev/null
  17. 3.删除test定时任务
  18. [root@manager project1]# ansible webservers -m cron -a 'name=test job="/bin/bash /server/scripts/test.sh &> /dev/null" state=absent' -i hosts

12.Firewalld模块

  1. firewalld:
  2. service #指定开放或关闭的服务名称
  3. port #指定开放或关闭的端口
  4. masquerade #开启地址伪装
  5. immediate #临时生效
  6. permanent #是否添加永久生效
  7. state #开启或是关闭
  8. zone #指定配置某个区域
  9. rich_rule #配置富规则
  10. source #指定来源IP
  11. 1.启动firewalld防火墙
  12. [root@manager project1]# ansible webservers -m systemd -a "name=firewalld state=started" -i hosts
  13. 2.开放http服务
  14. [root@manager project1]# ansible webservers -m firewalld -a "service=http state=enabled" -i hosts
  15. 3.开放8888端口
  16. [root@manager project1]# ansible webservers -m firewalld -a "port=8888/tcp state=enabled" -i hosts
  17. 4.只允许172.16.1.31网段
  18. [root@manager project1]# ansible webservers -m firewalld -a "source=172.16.1.31/32 zone=trusted state=enabled permanent=no" -i hosts
  19. ansible webservers -m firewalld -a 'rich_rule="rule family=ipv4 source address=10.0.0.1/32 service name=http accept" state=enabled' -i hosts
  20. 5.使用端口方式 2222
  21. [root@manager project1]# ansible webservers -m firewalld -a 'rich_rule="rule family=ipv4 source address=10.0.0.1/32 port port="2222" protocol=tcp accept" state=enabled' -i hosts

13.selinux模块

  1. 1.关闭selinux
  2. [root@manager project1]# ansible webservers -m selinux -a "state=disabled" -i hosts
  3. 2.官方语法:
  4. - name: Disable SELinux
  5. selinux:
  6. state: disabled

14.get_url文件下载模块

  1. url #文件在网络上的具体位置
  2. dest #下载到被控端的哪个目录下
  3. checksum #校验(md5 sha256)
  4. 1.通过get_url下载文件或者软件
  5. [root@manager project1]# ansible webservers -m get_url -a "url=https://mirrors.tuna.tsinghua.edu.cn/centos/8.0.1905/BaseOS/x86_64/os/Packages/dejavu-serif-fonts-2.35-6.el8.noarch.rpm dest=/tmp mode=777" -i hosts
  6. 2.下载一个文件前先进行md5校验,通过则下载,不通过则失败
  7. [root@manager project1]# wget https://mirrors.tuna.tsinghua.edu.cn/centos/8.0.1905/BaseOS/x86_64/os/Packages/ed-1.14.2-4.el8.x86_64.rpm
  8. [root@manager project1]# md5sum ed-1.14.2-4.el8.x86_64.rpm
  9. [root@manager project1]# ansible webservers -m get_url -a "url=https://mirrors.tuna.tsinghua.edu.cn/centos/8.0.1905/BaseOS/x86_64/os/Packages/ed-1.14.2-4.el8.x86_64.rpm dest=/tmp mode=777 checksum=md5:7f0d0501be51652645704f3f551cbdba" -i hosts

15.yum_repository模块

yum_repository模块可以管理远程主机上的yum仓库。

模块参数

参数 说明
name 必须参数,用于指定要操作的唯一的仓库ID,也就是".repo"配置文件中每个仓库对应的"中括号"内的仓库ID
baseurl 设置yum仓库的baseurl
description 设置仓库的注释信息,也就是".repo"配置文件中每个仓库对应的"name字段"对应的内容。
file 设置仓库的配置文件名称,即设置".repo"配置文件的文件名前缀,在不使用此参数的情况下,默认以name参数的仓库ID作为".repo"配置文件的文件名前缀,同一个'.repo'配置文件中可以存在多个yum源
enabled 设置是否激活对应的yum源,此参数默认值为yes,表示启用对应的yum源,设置为no表示不启用对应的yum源。
gpgcheck 设置是否开启rpm包验证功能,默认值为no,表示不启用包验证,设置为yes表示开启包验证功能。
gpgcakey 当gpgcheck参数设置为yes时,需要使用此参数指定验证包所需的公钥
state 默认值为present,当值设置为absent时,表示删除对应的yum源
  1. 1.自定义下载源并设置仓库的名称【在被控主机上设置IDaliEpelyum源,
  2. 仓库配置文件路径为/etc/yum.repos.d/aliEpel.repo
  3. [root@manager project1]# ansible webservers -m yum_repository -a 'name=aliEpel description="alibaba EPEL" baseurl=http://mirrors.aliyun.com/epel/7/$basearch' -i hosts
  4. 172.16.1.8 | CHANGED => {
  5. "ansible_facts": {
  6. "discovered_interpreter_python": "/usr/bin/python"
  7. },
  8. "changed": true,
  9. "repo": "aliEpel",
  10. "state": "present"
  11. }
  12. 172.16.1.7 | CHANGED => {
  13. "ansible_facts": {
  14. "discovered_interpreter_python": "/usr/bin/python"
  15. },
  16. "changed": true,
  17. "repo": "aliEpel",
  18. "state": "present"
  19. }
  20. 2.检验下载的阿里源
  21. [root@manager project1]# ansible webservers -a "ls /etc/yum.repos.d/" -i hosts
  22. 172.16.1.8 | CHANGED | rc=0 >>
  23. aliEpel.repo
  24. CentOS-Base.repo
  25. epel.repo
  26. nginx.repo
  27. php.repo
  28. 172.16.1.7 | CHANGED | rc=0 >>
  29. aliEpel.repo
  30. CentOS-Base.repo
  31. epel.repo
  32. nginx.repo
  33. php.repo
  34. 3.删除/etc/yum.repos.d文件中的aliEpel
  35. [root@manager project1]# ansible webservers -m yum_repository -a "name=aliEpel file=aliEpel state=absent" -i hosts
  36. 172.16.1.7 | CHANGED => {
  37. "ansible_facts": {
  38. "discovered_interpreter_python": "/usr/bin/python"
  39. },
  40. "changed": true,
  41. "repo": "aliEpel",
  42. "state": "absent"
  43. }
  44. 172.16.1.8 | CHANGED => {
  45. "ansible_facts": {
  46. "discovered_interpreter_python": "/usr/bin/python"
  47. },
  48. "changed": true,
  49. "repo": "aliEpel",
  50. "state": "absent"
  51. }

1.Ansible自动化管理工具的更多相关文章

  1. ANSIBLE自动化管理工具

    ansible 基础 自动化运维工具 官网:https://www.ansible.com/ 官方文档:https://docs.ansible.com/ ansible 特性 1. 模块化:调用特定 ...

  2. Ansible批量自动化管理工具(二)

    Ansible批量自动化管理工具(二) 链接:https://pan.baidu.com/s/1A3Iq3gGkGS27L_Gt37_I0g 提取码:ncy2 复制这段内容后打开百度网盘手机App,操 ...

  3. Ansible批量自动化管理工具

    一,工具与环境介绍 1.1 ansible简介 批量管理服务器的工具 无需部署agent,通过ssh进行管理 流行的自动化运维工具:https://github.com/ansible/ansible ...

  4. Ansible批量自动化管理工具 roles标准化

    批量管理服务器的工具,无需部署代理,通过ssh进行管理,是python写的 ansible 常用模块 : (1)shell命令模块执行命令 (2)copy模块批量下发文件或文件夹 (3)script模 ...

  5. Linux系统——Ansible批量管理工具

    批量管理工具: (1)ansible 操作简单(适用于500台以下服务器) (2)saltstack 比较复杂(一般适用于1000-4w台服务器) (3)puppet超级复杂 systemctl(统一 ...

  6. ansible 自动化管理

    1 什么样的情形需要批量部署 1.操作系统的安装 常见的有collber,red hat satelite(redhat)系统专用. 2.操作系统的配置 常见的有cfengine,puppet,che ...

  7. ansible批量管理工具的搭建与简单的操作

    ansible的安装 # [root@localhost ~]# cat /etc/redhat-release CentOS Linux release (Core) [root@localhost ...

  8. Chocolatey 简介(软件自动化管理工具)

    一.Chocolatey 管理Windows软件的明智方法 1.建立在技术的无人值守安装和PowerShell.建立在技术的无人值守安装和PowerShell. 2.轻松管理Windows软件的所有方 ...

  9. Python之开发自动化管理工具paramiko

    一.paramiko模块使用 1)远程执行主机命令获取结果 方法一 import paramiko # 创建SSH对象 ssh = paramiko.SSHClient() # 允许连接不在know_ ...

随机推荐

  1. 饶有特色的 CSS3 展示横条.html

     

  2. 机器学习笔记(九)---- 集成学习(ensemble learning)【华为云技术分享】

    集成学习不是一种具体的算法,而是在机器学习中为了提升预测精度而采取的一种或多种策略.其原理是通过构建多个弱监督模型并使用一定策略得到一个更好更全面的强监督模型.集成学习简单的示例图如下: 通过训练得到 ...

  3. JetBrains 迷你地图插件 CodeGlance

    JetBrains 本身不带迷你地图功能,但可以通过插件的形式来实现. 直接在 Settings 里边搜索 CodeGlance,安装后重启 IDE 就有了.

  4. lodash.memoize

    目录 _.memoize(func, [resolver]) 举例1: 获取J(1000000)的值 举例2: 斐波那契数列F(1000)的值 _.memoize(func, [resolver]) ...

  5. CSU OJ2151 集训难度

    小L正在组织acm暑假集训,但众所周知,暑假集训的萌新中有OI神犇,也有暑假才开始学算法的萌新,如果统一集训的难度,无法很好地让萌新们得到训练,所以小L想了一个办法,根据每次测试的情况,改变萌新们的集 ...

  6. 显示cifar图片

    # coding:utf-8 import numpy as np import matplotlib.pyplot as plt import pickle FILE_PATH = r"D ...

  7. 笔记||Python3之文件的读写

    [文件的读模式]            文件的对象:文件的读写通过文件操作对象进行. Python2  -----  File Python3  -----  TextIOWrapper       ...

  8. Selenium之单选框操作

    单选框操作: 何为单选框?就是永远只能选中一个选项的意思.一般单选框的图标都是呈圆形的.我们通过selenium可直接定位到被选中的选项上,然后用click方法实现点击. 下面附上一段rb.html代 ...

  9. Postman 关联接口测试(带有token鉴权)

    Postman 关联接口测试(带有token鉴权) 一.登陆接口 创建一个request请求 在Tests中添加JavaScript代码,用来获取鉴权 pm.test("V2", ...

  10. 【Java Web开发学习】Spring MVC异常统一处理

    [Java Web开发学习]Spring MVC异常统一处理 文采有限,若有错误,欢迎留言指正. 转载:https://www.cnblogs.com/yangchongxing/p/9271900. ...