CentOS6u8 java和tomcat多版本模板的ansible批量部署实现(一)

部署ssh-key:


依据《CentOS6实验机模板搭建部署》克隆部署试验机,IP:192.168.77.200
依据《CentOS7 python3.6 ansible2.5 源码安装》部署ansible主机,IP:192.168.77.100
192.168.77.100操作:

# 创建deploy用户下的ssh公私钥,将公钥部署到192.168.77.200之上,需要提前获取192.168.77.200的root密码
yum -y install sshpass
su - deploy
ssh-keygen
RootDefaultPass=vincent
# 需要提前获取192.168.77.200的root密码
sshpass -p ${RootDefaultPass} ssh-copy-id -o StrictHostKeyChecking=no root@192.168.77.200
ssh root@192.168.77.200 date
echo 192.168.77.200>/tmp/hosts
ansible -i /tmp/hosts 192.168.77.200 -u root -m ping
rm -rf /tmp/hosts

系统部署和软件升级:


192.168.77.100操作:

su - deploy
mkdir -pv os/{inventory,roles}
# 配置被操控的主机信息
cat >os/inventory/proenv<<EOF
192.168.77.200 Host_name=web Ethernet=eth0
[Server]
192.168.77.200
EOF
# 设置主机名为web,指定网卡设备名

# 创建os角色,实现对hostname、hosts的配置,升级系统
mkdir -pv os/roles/os/{files,tasks,templates}
cat >os/roles/os/templates/os.sh.j2<<EOF
#!/bin/bash
source ~/.bash_profile
hostname {{ Host_name }}
echo "\$(grep -E '127|::1' /etc/hosts)">/etc/hosts
echo "\$(ifconfig {{ Ethernet }}|grep inet|awk -F'[ :]' '{print \$13}') {{ Host_name }}">>/etc/hosts
sed -i "s/^HOSTNAME.*$/HOSTNAME={{ Host_name }}/g" /etc/sysconfig/network
EOF
cat >os/roles/os/tasks/main.yml<<EOF
- name: rsync os.sh
  template: src=roles/os/templates/os.sh.j2 dest=/tmp/os.sh
- name: setup hosts
  shell: "bash /tmp/os.sh"
- name: update os
  shell: "yum -y update warn=False"
EOF

cat >os/deploy.yml<<EOF
- hosts: "Server"
  gather_facts: true
  remote_user: root
  roles:
    - os
EOF

cd os
ansible-playbook -i inventory/proenv ./deploy.yml
cd

[TOC]

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值