为实现EM中CRS rolling upgrade如何设置sudo以及sudo环境变量
今天在EM dbconsole 11.2环境里给11gR2的CRS打rolling patch时碰到不少关于sudo的问题,特此记录以免忘记。
因为EM都是通过Agent来进行操作的,所有不可能拥有root权限,而打有些patch的时候又不得不用root权限,所以有必要为grid(Grid Infra的user,就是以前的Clusterware),oracle(RAC database的user)两个用户设置sudo。下面以grid用户为例,说明一下。
首先,要编辑sudo,推荐使用visudo命令,而不要去修改/etc/sudoers的权限(默认是440,即只读)。
以root用户登录
[root@cdcjp64vm3 ~]# visudo
找到
root ALL=(ALL) ALL
这一行,在其下面添加
grid ALL=(ALL) NOPASSWD: ALL
注意一定要加NOPASSWD,因为EM是从web界面上直接操作,在其打patch过程中是没法人工输入密码的,当然在打patch之前会让你输入一次grid用户的密码,但是这个密码似乎不能存起来留到之后的交互过程中使用。
另外,找到
Defaults env_keep
这个部分是使用sudo之后要保留的环境变量列表,默认里面是没有ORACLE_HOME的,在rolling upgrade里面有一步需要ORACLE_HOME环境变量,否则会提示让你设置ORACLE_HOME。改为如下:
Defaults env_keep = "COLORS DISPLAY HOSTNAME HISTSIZE INPUTRC KDEDIR \
LS_COLORS MAIL PS1 PS2 QTDIR USERNAME \
LANG LC_ADDRESS LC_CTYPE LC_COLLATE LC_IDENTIFICATION \
LC_MEASUREMENT LC_MESSAGES LC_MONETARY LC_NAME LC_NUMERIC\
LC_PAPER LC_TELEPHONE LC_TIME LC_ALL LANGUAGE LINGUAS \
_XKB_CHARSET XAUTHORITY ORACLE_HOME"验证一下:
[grid@cdcjp64vm3 ~] sudo env|grep ORA ORACLE_HOME=/u01/app/oracle/product/11.2.0/dbhome_1
OK。现在这样设置就能给CRS打patch了。

最近评论