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指令。
|
|