基於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 "[email protected]"
git config --global user.name  "vincent"
git clone https://root:vincent%[email protected]: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]

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章