scala学习笔记(二)变量/作用域/类与对象
变量
变量不过是保留的内存空间,定义一个变量变在内存里开辟了一块空间,其类型决定它 的大小和能赋值什么类型。
变量声明
scala的变量分为var
和val
分别代表mutable variable
和immutable variable
变量数据类型
变量的类型指定于变量名与等号=
之间
也可以不指定初始值
变量不过是保留的内存空间,定义一个变量变在内存里开辟了一块空间,其类型决定它 的大小和能赋值什么类型。
scala的变量分为var
和val
分别代表mutable variable
和immutable variable
变量的类型指定于变量名与等号=
之间
也可以不指定初始值
生产力、扩展性和可靠性
java
良好的互操作性scala在WEB应用中使用广泛,以下是最流行的几个框架
公司新上架了一批浪潮的服务器,型号为SA5212M4
,使用了LSI
的SAS3008
磁盘控制器,安装了CentOS 6.7
,在进行一些基础配置如RAID
hot spare
的时候,走过不少弯路(浪潮的技术支持只能呵呵)。
IPMI
是什么?浏览一下介绍文档之后大概明白它解决的问题就是:怎么为远程机器配置BIOS,远程机器网络配置出错导致断网咋办…之类的问题。一句话:IPMI是一个独立于OS甚至BIOS之外的系统,它能管理电源、显示等底层甚至硬件层次的资源,但它也能与OS通信,比如你可以通过ipmitools来设置ipmi的一些参数。
ipmitool
是一个允许你通过shell来使用ipmi的工具,其它安装过程为
确认服务启动之后,你可以通过它来打印ipmi信息,管理ipmi的用户和密码等
从nginx 1.9开始,开源版中也有了tcp load balancing,为此投入了很多人力,这也是一个典型的商业软件开发支持开源产品的例子(此特性最早出现于nginx的商业版nginx plus)。
nginx最初是一个反向代理,如今已经具有非常丰富的特性,web server, 缓存/加速,反向代理 , 应用网关。
Nginx一般用作繁忙网站的前端,44.9%的前10000最繁忙商业网站使用了nginx作为前端。
当你在内部使用nginx为应用实现代理和load balancing时,tcp load balancing将使你受益。现代应用使用各种协议而不只是http,nginx可用来处理这些内部流量,比如mysql load balancing就是一个好例子。
jumpserver
也叫做跳板机,当多人需要对多个机器(集群)进行操作时,为了方便操作、安全、授权管理和审计,可以使用一台机器作为跳板机,所有用户必须也只能先登录此系统再跳转到其它资产。
我们使用了一个国内团队开发的开发跳板机系统jumpserver。该系统安装简便且功能丰富。CentOS6具体的安装过程如下。
下载工程文件
不要安装到/root目录。
开始安装
安装过程中会询问是否安装mysql,可视自己的情况选择yes
or no
, 并且要求输入数据库的user password等作息,注意此处输入的是Jumpserver使用的数据库和帐户信息,而不是root
用户信息。也就是安装程序并不会创建数据库,需要自己在数据库中预先创建与填入信息相符的数据库。
登录数据库:
输入密码进入:
创建数据库
创建用户
邮箱信息请自行填入和确认,也可以跳过。
Ad-Hoc
可以理解为临时,一些临时场景只需运行一次的指令,可以用这种模式完成。
在特定时间重启atlanta
的所有机器
如果想用sudo
权限的话
其中-k
意为交互式地输入密码,-f
指fork
出多个进程来并行
command
模块(缺省)并不支持pipe
,如果要用命重定向,请使用shell
模块。
当命令中含有引号时一定要特别注意,以免命令在本地被吃掉,比如以上命令如果不使用'
而使用双引"
,那么变量变会在本地取值。
实际上大部分ansible
模块都与简单地命令不同,它们都是指定状态而过过程,以达到“幂等”的效果,这是ansible
的一个重要设计理念。
ansible
的命令格式为
如
Pattern
支持常用的通配符和部分正则表达式,来指定符合某种模式的主机集。all
和*
表示所有主机
也可以指定单个或多个或模糊匹配主机
也可以指定多个group
,即属于任意一个即可,用:
分隔。
也可以排除某些主机,如属于webserver
但不属于pheonix
还可以指定交集
对ansible来说,几乎每个yaml文件都以一个列表开头,而每一项则是一个key-value对。yaml文件可分别以---
和...
来标识文件的开始和结束。
ymal列表项起始于同一缩进的-
,注意空格不可省略。
而字典则是以:
分割,空格同样不可省略。
ansible
同时和多种系统工作,它会选择inventory
文件中的部分主机执行不同的操作,这个文件默认位于/etc/ansible/hosts
。你也可以同时使用多个inventory
或者动态地从云端pull
。
inventory
文件的模式类似ini
:
方括号中是组名,同个主机可以位于多个组中,此时变量将来自所有其所属的组。如果ssh主机使用非默认的22端口,可以使用:
将其指定于主机名之后badwolf.example.com:5309
。
如果是静态IP想取个别名,可使用以下的方式。
了解ansible
如何通过ssh
与远程主机通信是很重要的。
ansible 1.3
和之后版本会默认使用openssh
,以支持ControlPersist
,Kerberos
和~/.ssh/config
配置。在一些较老的版本中,如RH/CentOS
较早版本时,openssh
版本可能太老而不支持部分以上特性,此时ansible
会使用python
的OpenSSH
实现paramiko
。如果需要Kerberized ssh
,建议使用ubuntu
、fedora
等openssh
版本较新的发行版。
而<=1.2的版本中,默认为paramiko
,使用-c
选项切换到native
的ssh.
有很小的可能会遇到不支持SFTP
的情况,此时可以在配置文件中切换到SCP
。
与远程主机通信时,默认使用ssh key
,也可以通过-k
选项来使用密码,如果需要sudo特性且sudo要求密码时,可使用--ask-become-pass
。
也许是常识:控制主机离被控制集群越近,执行速度越快,因此尽量选用较近的主机。ansible
也并不一定要使用ssh
,传输方式是插件式的,支持本地管理方式、chroot,lxc
和jail containers, ansible-pull
模式能够按日程从中央git
服务器中pull
指令。
|
|