目录
1.1 编写目的... 4
1.2 适用范围... 4
1.3 名词解释... 4
1.4 格式约定... 4
1.5 集群信息记录... 5
2 集群日常管理... 5
2.1 集群信息备份与还原... 5
2.2 新增节点或资源... 5
2.2.1 新增节点.. 5
2.2.2 数据库数据盘lv扩容.. 6
2.2.3 新增VG和DB. 6
2.3 删除节点或资源... 10
2.3.1 删除节点.. 10
2.3.2 删除资源.. 11
2.4 修改资源配置... 11
2.4.1 修改资源运行位置(迁移资源).. 11
2.4.2 将节点状态设置为online. 11
2.4.3 将节点状态设置为standby. 11
2.4.4 将节点状态为offline. 12
2.4.5 停止资源.. 12
2.4.6 启动资源.. 12
2.4.7 集群管理资源.. 12
2.4.8 集群不管理资源.. 12
2.5 查询集群信息... 12
2.5.1 查询集群中节点状态信息.. 12
2.5.2 查询集群中资源状态.. 12
2.5.3 查看集群所有配置信息.. 13
2.5.4 查看单一资源配置信息.. 13
3 问题诊断... 13
3.1 新节点无法加入集群... 13
3.1.1 可能的原因一.. 13
3.1.2 可能的原因二.. 14
3.2 资源无法启动... 14
3.2.1 可能的原因一.. 14
3.2.2 可能的原因二.. 14
4 应急:手工管理资源... 15
5 附录:... 15
5.1 名称解释... 15
5.2 crm shell的使用... 16
5.3 参考文档:... 16
1
文档简介
1.1 编写目的
为Linux提供快速批量操作的能力。
1.2 适用范围
该文档的阅读对象为基础平台管理部系统组相关人员。
1.3 名词解释
此处仅做简单翻译,详细解析请看附录。
序号 | 术语/缩略语 | 全称和说明 |
1 | ansible | 对服务器批量操作的自动化运维工具。 |
1.4 格式约定
以“#”开头代表root用户;
以“$”开头代表普通用户;
以“>”开头代表DB用户;
以“SQL>”开头代表sqlplus命令;
以“灰色底纹”标注的为命令或输入字符;
以“斜体”标注的为配置文件内容;
以 “绿色”字体表示在配置时该字段需要需要根据实际情况进行修改。
“所有节点”表示集群中的所有机器;
“主节点”表示“节点一”,集群中的第一台机器(下面的wbep-huana01)。
2 集群日常管理
2.1 参数与实例
参数说明:
# ansible -h
-i 指定登陆的目标主机ip的文件列表(一行一个,可以使用通配符)。并指定文件中的组。指定所有文件中所有服务器使用关键字all。主机可以使用[xxx]分组。xxx自己命名。
-m 使用指定的模块。如果不指定,则默认使用-m command。常用模块file, copy, script, command(不支持管道), shell(支持管道), raw(支持管道的原始字符串,不安全)
-a 指定上面-m模块使用的参数。如果不指定参数可以不写。
-u 指定登陆用户,如sflog
-k 输入登陆密码,即-u指定的用户的密码
-S 大S,指定使用su命令
-R 指定su到指定的用户sfroot,需要和-S命令一起使用
--ask-su-pass 输入su到指定用户的密码
--private-key=PRIVATE_KEY_FILE 指定登陆用的private key文件,如果使用了该选项就不用指定上面的-k参数。
-f 指定fork出的并行处理进程数,默认值是5。
-o 使用精简的输出
-vvvv 显示详细输出
注意:如果执行失败,可能会有ansible进程卡在后台导致重新连接到目标服务器失败,此时可以将ansible的卡死的进程杀掉,或者等它1分钟后自动退出。
例子
# ansible -i /home/660785/playbooks/task1/h1 all -mshell -a "/bin/touch /tmp/ababc" -u sflog
# ansible -i /tmp/a.txt all -a"/usr/bin/sysauto_SF hbainfo" -u sflog -S -R sfroot--private-key=/root/.ssh/id_rsa --ask-su-pass
2.2 查看帮助
查看ansible支持的参数
# ansible-h
查看当前版本ansible支持的模块
# ansible-doc-l
查看模块的用法
# ansible-doc <模块名>
查看模块在playbook中的写法
# ansible-doc -s <模块名>
2.3 常用模块用法
Ping模块:测试连接到目标主机,如果成功返回一个pong。主要用于测试密钥是否正确。
# ansible -i/home/660785/playbooks/task1/h1 all -m ping-u sflog
command模块:执行shell命令,ansible 默认使用的模块,不支持管道(命令最好写全路径)
# ansible -i /home/660785/playbooks/task1/h1 all -m command -a "/bin/touch /tmp/ababc"-u sflog
shell模块:执行shell命令,支持管道
# ansible -i /home/660785/playbooks/task1/h1 all -m shell -a "/bin/df -hP | /bin/grep nfsc"-u sflog
raw模块:执行shell命令,可用于连接未安装python或jason的服务器。运行未经过ansible检查的原始命令。较危险,最好不使用。但可用于在低于rhel5.5的服务器上安装python-simplejson包,以支持其他模块。
# ansible -i /home/660785/playbooks/task1/h1 all -m raw -a "/usr/bin/yum install python-simplejson -y"-u sflog -S -R sfroot --ask-su-pass
copy模块:用于复制当前服务器上的文件到目标服务器上指定位置,并可设置文件的源数据信息。
# ansible -i /tmp/o.txt all -m copy -a "src=/tmp/del_oracle_trace.shdest=/etc/sf/shell/del_oracle_trace.sh owner=oracle mode=500" -usflog -S -R sfroot --ask-su-pass -o
file模块:用于修改目标服务器上指定文件的元数据信息。
# ansible -i /tmp/o.txt all -m file -a "path=/var/log/dangecommand.logmode=666" -u sflog -S -R sfroot --ask-su-pass -o
setup模块:可调用ansible自身的、也可以调用其它自动化工具(比如chef的ohai)的信息收集工具目标服务器上主机硬件和os配置信息。并以jason格式返回。Filter参数可以用来过滤出需要的内容。
# ansible -i /tmp/a.txt all -m setup -a 'filter=ohai_os_version' -u sflog -S-R sfroot --ask-su-pass –o
2.4 交互式用法
使用ansible-console命令可以将命令批量下发到各服务器,且是交互式的console界面:
# ansible-console -i 1.txt -u sysauto --private-key=私钥路径