当前位置: 首页 > 最新文章 > 正文

ansible之playbook与roles

ansible之playbook与roles 安装nginx一 playbook[root@node001 files]# cat /opt/nginx.yml--- ###yaml格式,开头三横线- hosts: web ###定义主机列表tasks: ###定义任务- name: scp nginx.tar.gz ###任务描述copy: src=/opt/nginx-1.14.0.tar.g

admin

ansible之playbook与roles 安装nginx一 playbook[root@node001 files]# cat /opt/nginx.yml--- ###yaml格式,开头三横线- hosts: web ###定义主机列表tasks: ###定义任务- name: scp nginx.tar.gz ###任务描述copy: src=/opt/nginx-1.14.0.tar.gz dest=/home###调用的模块- name: ###同一个tasks下,格式要一样,对齐yum: name=make,zlib,zlib-devel,gcc-c++,libtool,open

ansible之playbook与roles 安装nginx

一 playbook

[root@node001 files]# cat /opt/nginx.yml

--- ###yaml格式,开头三横线

- hosts: web ###定义主机列表

tasks: ###定义任务

- name: scp nginx.tar.gz ###任务描述

copy: src=/opt/nginx-1.14.0.tar.gz dest=/home###调用的模块

- name: ###同一个tasks下,格式要一样,对齐

yum: name=make,zlib,zlib-devel,gcc-c++,libtool,openssl,openssl-devel

- name: mkdir nginx

file: path=/home/nginx state=directory

- name: tar zxf nginx && install

shell: cd /home;tar zxf nginx-1.14.0.tar.gz;cd nginx-1.14.0;./configure --user=www --group=www --prefix=/home/nginx --with-http_stub_status_module --with-http_ssl_module;make && make install

- name: rm index

shell: rm -rf /home/nginx/html/index.html

- name: scp conf and html

copy: src=/opt/index.html dest=/home/nginx/html

- name: firewalld off

service: name=firewalld state=stopped

- nmae: start nginx

shell: chown -R www.www /home/nginx;/home/nginx/sbin/nginx

二 roles

[root@node001 ansible]# tree /etc/ansible/

/etc/ansible/

├── ansible.cfg

├── hosts

├── roles###存放角色,他的下面一个目录就是一个角色

│ └── nginx###角色名称

│ ├── default###为当前角色设定默认变量时使用此目录,应包含一个main.yml文件

│ ├── files###存放copy或script等模块调用的文件

│ │ ├── index.html

│ │ ├── install.sh

│ │ ├── nginx-1.14.0.tar.gz

│ │ └── nginx.conf

│ ├── handlers ##应包含一个handlers,定义各角色用到的handler

│ ├── meta###应包含一个main.yml文件,定义角色的特殊设定及依赖关系

│ ├── tasks###至少包含一个名为main.yml文件,定义此角色的任务列表

│ │ └── main.yml

│ ├── templates###template模块会自动在此目录中寻找Jinja2模板文件

│ └── vars 应包含一个main.yml文件,定义此角色用到的变量

└── web-nginx.yml

文件内容

1.web-nginx.yml是roles的同级目录,定义需引用的roles

[root@node001 ansible]# cat web-nginx.yml

- hosts: web

remote_user: root

roles:

- nginx

2.tasks目录的任务列表

[root@node001 ansible]# cat roles/nginx/tasks/main.yml

- name: copy nginx-1.14.0

copy: src=nginx-1.14.0.tar.gz dest=/home

- name: yum yilai

yum: name=zlib,zlib-devel,openssl,openssl-devel,make,gcc-c++,pcre-devel,libtool

- name: add user www

user: name=www state=present createhome=no system=no

- name: add group www

group: name=www state=present system=no

- name: mkdir nginx

file: path=/home/nginx state=directory

- name: install.sh

script: install.sh

- name: firewalld off

service: name=firewalld state=stopped

- name: index.html

copy: src=index.html dest=/home/nginx/html/

- name: start

shell: /home/nginx/sbin/nginx

3.安装nginx时调用脚本的内容

[root@node001 ansible]# cat roles/nginx/files/install.sh

#!/bin/bash

cd /home

tar zxf nginx-1.14.0.tar.gz

cd nginx-1.14.0

./configure \

--user=www \

--group=www \

--prefix=/home/nginx \

--with-http_ssl_module \

--with-http_stub_status_module

make && make install

rm -rf /home/nginx/html/index.html

chown -R www.www /home/nginx

4.一个low到爆的HTML页面

[root@node001 ansible]# cat roles/nginx/files/index.html

<html>

<head>

<title> ansible nginx </title>

</head>

<body>

<h1>hello world,hello ansible</h1>

</body>

</html>


上一篇: 中央政法机关督导一组向中央政法委反馈督导意见 要巩固教育整顿成果实现常治长效 下一篇:百度账号限速如何解除(百度账号限速如何解除)
返回顶部