使用ansible进行服务器初始化

前言

三台CentOS7机器,一台作为ansible管理机,两台作为ansible客户机。使用ansible管理机完成两台客户机的初始化,主要包括java和tomcat的安装配置。
ansible管理机IP为:192.168.56.101。
ansible客户机IP为:192.168.56.102/103。

管理机配置

1、安装ansible
yum install ansible

2、生成密钥
ssh-keygen

3、把公钥拷贝到客户机
ssh-copy-id -i .ssh/id_rsa.pub -p 22 root@192.168.56.102

4、客户机IP写入到hosts
vim /etc/ansible/hosts

1
2
3
[commonservers]
192.168.56.102
192.168.56.103

5、测试连接
ansible all -m ping

客户机配置

客户机不需要额外配置。

java配置

1、在oracle官网下载jdk。

2、下载后上传文件到ansible管理机,假设为jdk-8u161-linux-x64.tar.gz。

3、管理机中创建jdk.env,内容为:

1
2
3
4
export JAVA_HOME=/usr/lib/jvm/jdk1.8.0_161
export JRE_HOME=$JAVA_HOME/jre
export CLASSPATH=$JAVA_HOME/lib:$JRE_HOME/lib:$CLASSPATH
export PATH=$JAVA_HOME/bin:$JRE_HOME/bin:$PATH

4、管理机中创建java-install.yml,内容为:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
---
- hosts: commonservers
tasks:
- name: copy jdk.tar.gz
copy:
src: ./jdk-8u161-linux-x64.tar.gz
dest: ~/jdk.tar.gz
- name: create jvm directory
shell: mkdir -p /usr/lib/jvm
- name: unzip jdk.tar.gz
shell: tar -zxf jdk.tar.gz -C /usr/lib/jvm/
- name: copy env to clients
copy:
src: ./jdk.env
dest: ~/jdk.env
- name: write jdk env to profile
shell: cat jdk.env | tee >> /etc/profile
- name: write jdk env to .bashrc
shell: cat jdk.env | tee >> /root/.bashrc
- name: make the config active
shell: source /root/.bashrc
- name: test jdk
shell: java -version
register: java_out
- name: show java result
debug: var=java_out verbosity=0

5、检查并且执行脚本

1
2
ansible-playbook java-install.yml --syntax-check
ansible-playbook java-install.yml

tomcat配置

1、在apache官网下载tomcat。

2、下载后上传文件上传到ansible管理机,假设为apache-tomcat-8.0.50.tar.gz。

2、管理机创建tomcat-install.yml,内容为:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
---
- hosts: commonservers
tasks:
- name: copy tomcat
copy:
src: ./apache-tomcat-8.0.50.tar.gz
dest: ~/tomcat.tar.gz
- name: unzip tomcat.tar.gz
shell: tar -zxf tomcat.tar.gz -C /opt/
- name: start tomcat
shell: nohup /opt/apache-tomcat-8.0.50/bin/startup.sh &
- name: test tomcat
shell: ps aux | grep tomcat
register: tomcat_out
- name: show tomcat result
debug: var=tomcat_out verbosity=0

3、检查并且执行脚本

1
2
ansible-playbook tomcat-install.yml --syntax-check
ansible-playbook tomcat-install.yml

0%