基于ansible的生产环境部署构建(一) 操纵主机简单部署

简单说明:

  • 本系列记录使用ansible初始化部署生产环境主机的各项过程
  • 本系列生产主机使用《CentOS6实验机模板搭建部署》和《CentOS6重置网卡克隆后的自适应脚本(二)》预部署,CentOS7系统类似
  • 本系列环境需要一台Gitlab服务器保存ansible代码和生产项目代码
  • 本系列环境需要一台Nginx服务器作为文件共享服务器

操纵主机简单部署:

  • 依据《CentOS7实验机模板搭建部署》克隆一台CentOS7作为操纵主机,部署安装ansible
HOSTNAME=ansible_ops
hostnamectl set-hostname "$HOSTNAME"
echo "$HOSTNAME">/etc/hostname
echo "$(grep -E '127|::1' /etc/hosts)">/etc/hosts
echo "$(ip a|grep "inet "|grep -v 127|awk -F'[ /]' '{print $6}') $HOSTNAME">>/etc/hosts

wget -O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.repo
yum clean all && yum makecache faster
yum -y install ansible

sed -i '/^#host_key_checking =/ahost_key_checking = False' /etc/ansible/ansible.cfg
  • 在Gitlab之上创建一个空项目,下载到操纵主机
yum -y install git
mkdir -p ~/devops && cd ~/devops
cd ~/devops
git config --global http.sslVerify false
git config --global user.email "vincent@local.com"
git config --global user.name  "vincent"
git clone https://root:vincent%40123@gitlab.vincent.com:10194/devops/ansible.git
# 密码为vincent@123,其中@需要转译为%40
  • 创建并部署操纵目录并配置共享的默认变量文件
WorkDir=~/devops/ansible/os_init
mkdir -pv ${WorkDir}/{inventory,roles,software,pro_mark} && cd ${WorkDir}
cat >defaults_var.yml<<\EOF
---
# 工作目录
work_dir: ~/devops/ansible/os_init
# hosts文件路径
inventory_hosts: "{{ work_dir }}/inventory/hosts"

# 默认的root密码
ansible_ssh_pass: "vincent"
# su到root用户的密码
ansible_become_pass: "vincent"

# 默认主机名
host_name: "{{ target_hostname_prefix }}-{{ hostname_tail.stdout }}"

# 主机名配置命令
host_name_set_6: "hostname '{{ host_name }}' && sed -i 's/^HOSTNAME.*$/HOSTNAME={{ host_name }}/g' /etc/sysconfig/network"
host_name_set_7: "hostnamectl set-hostname '{{ host_name }}' && echo '{{ host_name }}'>/etc/hostname"

# 文件共享服务器地址
file_share_server: "https://wget.vincent.com:10194"

# ssh公私钥文件url
private_key: "{{ file_share_server }}/ansible/ssh-key/id_rsa"
public_key:  "{{ file_share_server }}/ansible/ssh-key/id_rsa.pub"

# zabbix agent rpm包
zabbix_agent_6_name: "zabbix-agent-3.0.31-1.el6.x86_64.rpm"
zabbix_agent_7_name: "zabbix-agent-3.0.31-1.el7.x86_64.rpm"
zabbix_agent_6_url: "{{ file_share_server }}/zabbix/{{ zabbix_agent_6_name }}"
zabbix_agent_7_url: "{{ file_share_server }}/zabbix/{{ zabbix_agent_7_name }}"

# java 部署包
java6_name: "jdk-6u45-linux-x64.bin"
java7_name: "jdk-7u80-linux-x64.tar.gz"
java8_name: "jdk-8u241-linux-x64.tar.gz"
java6_url: "{{ file_share_server }}/jdk/{{ java6_name }}"
java7_url: "{{ file_share_server }}/jdk/{{ java7_name }}"
java8_url: "{{ file_share_server }}/jdk/{{ java8_name }}"
java6_dirname: "jdk1.6.0_45"
java7_dirname: "jdk1.7.0_80"
java8_dirname: "jdk1.8.0_241"

# tomcat 部署包
tomcat6_name: "apache-tomcat-6.0.53.tar.gz"
tomcat7_name: "apache-tomcat-7.0.90.tar.gz"
tomcat8_name: "apache-tomcat-8.5.55.tar.gz"
tomcat6_url: "{{ file_share_server }}/tomcat/{{ tomcat6_name }}"
tomcat7_url: "{{ file_share_server }}/tomcat/{{ tomcat7_name }}"
tomcat8_url: "{{ file_share_server }}/tomcat/{{ tomcat8_name }}"
tomcat6_dirname: "apache-tomcat-6.0.53"
tomcat7_dirname: "apache-tomcat-7.0.90"
tomcat8_dirname: "apache-tomcat-8.5.55"

# jvm 配置参数
opts1: "-Djava.security.egd=file:/dev/./urandom -Xms1256m -Xmx1512m"
opts2: "{{ opts1 }} -XX:PermSize=164m -XX:MaxPermSize=228m"
opts3: "{{ opts2 }} -XX:-UseGCOverheadLimit"
opts4: "{{ opts3 }} -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=/tmp"

# logstash rpm 包
logstash_name: "logstash-7.7.0.rpm"
logstash_url: "{{ file_share_server }}/elk/{{ logstash_name }}"

# 项目配置文件保存目录
pro_mark: "{{ work_dir }}/pro_mark"

# gitlib代码仓库地址
gitlib_url: "https://gitlab.vincent.com:10194"
EOF
  • 克隆两台实验机作为测试主机,一台CentOS6,一台CentOS7,并写入到hosts配置中,初始IP为2和3,目标IP为100和101
cat >inventory/hosts<<EOF
os1 ansible_ssh_host=192.168.77.2 target_ip=192.168.77.100 target_hostname_prefix=NN-web  project=vincent/shareprofit.git sub_pro=shareprofit-soaport      java_version=java_1.8 tomcat_version=tomcat8 location=office
os2 ansible_ssh_host=192.168.77.3 target_ip=192.168.77.101 target_hostname_prefix=MAN-ser project=vincent/shareprofit.git sub_pro=shareprofit-merchantport java_version=java_1.8 tomcat_version=tomcat8 location=office
EOF

[TOC]

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值