运维需求见表:
主机IP | 部署服务 | 说明 |
192.168.21.66 | Ansible、JDK | 仅允许jiangwei用户运行JDK |
192.168.21.67 | JDK | |
192.168.21.68 | JDK | |
192.168.21.69 | JDK |
1.在ansible安装【参见我的ansible安装笔记】完成后,编辑/etc/ansible/ansible.cfg配置文件,编辑内容如下:
inventory = /etc/ansible/hosts
roles_path = /opt/ansible
其他配置默认,保存上述配置。
2.编辑JDK roles,在/opt/ansible目录下创建jdk目录了和jdkinstall.yaml文件
3.JDK目录结构如下:
jdk
├── files
│ ├── .bash_profile
│ └── jdk1.8.0_144.tar.gz
└── tasks
└── main.yml
其中,jdk1.8.0_144.tar.gz为安装包,可去oracle官网下载,main.yml为具体安装步骤
3.1) main.yml文件内容如下:
- name: Create directory /opt/jdk
file: path=/opt/jdk state=directory owner=jiangwei group=jiangwei
- name: Unarchive JDK Software
unarchive: src=jdk1.8.0_144.tar.gz dest=/opt/jdk/
- name: Copy JDK env .bash_profile
copy: src=.bash_profile dest=/home/jiangwei/ mode=755
- name: enable jdk env
shell: sh /home/jiangwei/.bash_profile
3.2) bash_profile内容如下:
# .bash_profile
# Get the aliases and functions
if [ -f ~/.bashrc ]; then
. ~/.bashrc
fi
# User specific environment and startup programs
export JAVA_HOME=/opt/jdk/jdk1.8.0_144
export LD_LIBRARY_PATH=$JAVA_HOME/lib:$LD_LIBRARY_PATH
export PATH=$JAVA_HOME/bin:$HOME/bin:$PATH
3.3) jdkinstall.yml内容如下:
- hosts: jdk
roles:
- jdk
4.配置jdk所要安装的主机,vi /etc/ansible/hosts,内容如下:
[jdk]
192.168.21.66
192.168.21.67
192.168.21.68
192.168.21.69
[jdk:vars]
ansible_python_interpreter=/usr/bin/python3
ansible_ssh_user=root
5.配置SSH用户root免密登陆,步骤如下:
5.1)设置各个用户的root密码为1
5.2)root用户登陆192.168.21.66上,执行ssh-keygen,Enter一路下去,会在默认的家目录下生成公私钥。
5.3)执行ssh-copy-id -i /root/.ssh/id_rsa.pub root@192.168.21.66/67/68/69,输入对应的root密码,即可实现从192.168.21.66服务器上 用root账户免密登陆到192.168.21.66/67/68/69上。
6.分别在所要安装JDK的机器上创建用户jiangwei,按照部署的运维需求,仅有jianwei用户安装jdk,其他用户不安装
6.1)useradd -r -m jiangwei
7.测试是否ansible能够ping通JDK所要安装的主机
7.1) 登陆192.168.21.66上执行ansible jdk -m ping,看结果是否为success
8.安装JDK,执行ansible-playbook /opt/ansible/jdkinstall.yml
9.验证:分别登陆所要安装JDK的服务器,然后su - jiangwei,执行java -version,有如下输出即可成功安装:
$ java -version
java version "1.8.0_144"
Java(TM) SE Runtime Environment (build 1.8.0_144-b01)
Java HotSpot(TM) 64-Bit Server VM (build 25.144-b01, mixed mode)