1. Introdução ao papel
O Ansible introduziu novos recursos desde a versão 1.2 para a organização hierárquica e estrutural dos manuais. As funções podem carregar automaticamente arquivos variáveis, tarefas e manipuladores de acordo com a estrutura hierárquica. Para usar funções, você só precisa usar a diretiva de inclusão no manual. Simplificando, as funções são um mecanismo pelo qual variáveis, arquivos, tarefas, modelos e processadores são colocados em diretórios separados e podem ser incluídos convenientemente. As funções geralmente são usadas em cenários onde os serviços são construídos com base na estrutura do host, mas também podem ser usados em cenários como a construção de daemons.
Estrutura de diretório de funções de Ansible
project/ 项目名称,有以下子目录
tasks/ 定义task、role的基本元素,至少包含一个名为main.yaml的文件;其他需要的文件在此通过include进行包含
files/ 存放由copy或者script模块调用的文件
vars/ 不常用,定义变量;至少包含一个名为main.yaml的文件;其他需要的文件在此通过include进行包含
default/ 不常用,设定默认变量时使用此目录中的main.yaml
templates/ template模块查找所需要的模板问文件的目录
handlers/
meta/ 不常用,定义当前角色的特殊设定以及依赖关系
2. Caixa
Implante o nginx em um dos servidores, implante o tomcat nos dois servidores e use o nginx como proxy reverso para implementar o acesso de polling aos serviços.
2.1 O arquivo de entrada total da função
cat install.yml
- hosts: 10.99.200.110
remote_user: root
gather_facts: false
roles:
- nginx
- hosts: test
remote_user: root
gather_facts: false
roles:
- tomcat
2.2 implantação do nginx
passo 1: definir variáveis
cat vars / main.yml
# defile nginx deploy host ip
nginx_ip: '10.99.200.110'
nginx_port: 10086
nginx_core: 4
nginx_user: 'root'
tomcat_server: 'TMS'
tomcat_server1: '10.99.200.110'
tomcat_server2: '10.99.200.111'
tomcat_port1: 8080
tomcat_port2: 8080
etapa 2: implantar o nginx
cat main.yml
- name: unpress nginx
unarchive: src=install_nginx-1.16.1.tar.gz dest=/tmp/
tags:
- unpress
- name: install nginx
shell: cd /tmp/install_nginx-1.16.1 && bash install.sh
- name: replace nginx conf
template: src=nginx.conf.ji2 dest=/usr/local/nginx/conf/nginx.conf
notify:
- reload-nginx
tags:
- reload nginx
- name: start nginx
shell: /etc/init.d/nginx -s reload
etapa 3: modelo de arquivo de configuração nginx
cat templates / nginx.conf.ji2
user {
{
nginx_user }};
worker_processes {
{
nginx_core }};
events {
worker_connections 51200;
accept_mutex on;
multi_accept on;
use epoll;
}
http {
include mime.types;
default_type application/octet-stream;
client_max_body_size 500M;
client_header_buffer_size 4k;
server_tokens off;
log_format main '$remote_addr - $remote_user [$time_local] "$request" '
'$status $body_bytes_sent "$http_referer" '
'"$http_user_agent" "$http_x_forwarded_for"';
access_log /usr/local/nginx/logs/access.log main;
send_timeout 60;
tcp_nodelay on;
underscores_in_headers on;
keepalive_timeout 120;
gzip on;
gzip_min_length 10k;
gzip_buffers 16 64k;
gzip_http_version 1.1;
gzip_comp_level 3;
gzip_types text/plain application/x-javascript text/css application/xml text/javascript application/x-httpd-php application/javascript application/json;
gzip_disable "MSIE [1-6]\.";
gzip_vary on;
proxy_temp_path /usr/local/nginx/ngx_cache 1 2;
proxy_cache_path /usr/local/nginx/ngx_cache/temp levels=1:2 keys_zone=content:1024m inactive=2d max_size=10G;
upstream {
{
tomcat_server }} {
server {
{
tomcat_server1 }}:{
{
tomcat_port1 }};
server {
{
tomcat_server2 }}:{
{
tomcat_port2 }};
}
server {
listen {
{
nginx_port }};
server_name {
{
nginx_ip }};
location / {
root html;
index index.html index.htm;
proxy_pass http://{
{
tomcat_server }};
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}
}
include /usr/local/nginx/conf/conf.d/*.conf;
}
passo 4: operação do gatilho nginx
manipuladores de gatos / main.yml
- name: reload-nginx
shell: /etc/init.d/nginx -s reload
2.3 implantação do tomcat
etapa 1: Definir os parâmetros de instalação do tomcat
cat vars / main.yml
# defile tomcat deploy args
tomcat_path: "/u01/isi/application"
tomcat_version: "apache-tomcat-9.0.33"
etapa 2: implantar o tomcat
tarefas cat / main.yml
# install tomcat
- name: unpress pacakges
unarchive: src={
{
tomcat_version }}.tar.gz dest={
{
tomcat_path }}
- name: copy scripts for tomcat
copy: src=start.sh dest={
{
tomcat_path }}/{
{
tomcat_version }} mode=0755
- name: copy scripts for tomcat
copy: src=stop.sh dest={
{
tomcat_path }}/{
{
tomcat_version }} mode=0755
- name: start tomcat
shell: cd {
{
tomcat_path }}/{
{
tomcat_version }} && source /etc/profile && ./start.sh
etapa 3: escrever o script de inicialização do tomcat
cat files / start.sh
#!/bin/bash
cd /u01/isi/application/apache-tomcat-9.0.33
nohup ./bin/startup.sh &
cat files / stop.sh
#!/bin/bash
ps -ef | grep apache-tomcat-9.0.33 | grep -v grep | awk '{print $2}' | xargs kill -9
2.4 Detectar e executar o arquivo de função
ansible-playbook
--check install.yml ansible-playbook install.yml
2.5 Verificação do navegador
Verificação do navegador de front-end Verificação
de log de back-end
3. Aquisição de arquivo
链接:https://pan.baidu.com/s/1sHN790EMUISV1P9Okqwa_A
提取码:juey
Está tudo aqui, faça a varredura!