運維需求見表:
| 主機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)
