Ansible 运维实战

作者: 朱溪江 | 来源:发表于2019-02-13 14:30 被阅读3次

一、目标:通过role远程部署nginx并配置

1.首先创建目录结构(每个目录名都是固定的,千万不能打错)
[root@ansible ~]# tree roles/
roles/
├── nginx
│     ├── files
│     │      └── index.html
│     ├── handlers
│     │      └── main.yaml
│     ├── tasks
│     │      └── main.yaml
│     ├── templates
│     │      └── nginx.conf.j2
│     └── vars
│         └── main.yaml
└── site.yaml

6 directories, 6 files
1.1准备目录结构
[root@ansible ~]# mkdir roles/nginx/{files,handles,tasks,templates,vars} -p
[root@ansible ~]# touch roles/site.yaml roles/nginx/{handles,tasks,vars}/main.yaml
[root@ansible ~]# echo 1234 > roles/nginx/files/index.html
[root@ansible ~]# yum install  -y nginx && cp /etc/nginx/nginx.conf roles/nginx/templates/nginx.conf.j2
此处安装nginx是为了得到nginx的配置文件,通过修改此配置文件的配置,并将文件拷贝到服务主机上,实现修改服务主机的配置。
Ansible实战

2.编写任务

template不同于copy模块,复制的文件中可以存在变量
[root@ansible ~]# vim roles/nginx/tasks/main.yaml

---
- name: install nginx packge
  yum: name={{ item }} state=latest
  with_items:
  - epel-release
  - nginx

- name: copy index.html
  copy: src=index.html dest=/usr/share/nginx/html/index.html

- name: copy nginx.conf template
  template: src=nginx.conf.j2 dest=/etc/nginx/nginx.conf
  notify: restart nginx

- name: make sure nginx service running
  service: name=nginx state=started enabled=yes

主任务文件

3.准备配置文件

[root@ansible ~]# vim roles/nginx/templates/nginx.conf.j2
配置文件内容

4.编写变量


[root@ansible roles]# vim nginx/vars/main.yaml 
worker_connections: 10240
变量文件内容

5.编写处理程序

[root@ansible ~]# vim roles/nginx/handlers/main.yaml 


--
 - name: restart nginx
   service: name=nginx state=restarted
处理程序内容

6.编写剧本(相当于c中的main函数)

[root@ansible ~]# vim roles/site.yaml

- hosts: host1
  roles:
  - nginx

剧本内容

7.实施

1.测试语法正确性:
ansible-playbook site.yaml --syntax-check
语法未报错
2.实施剧本
ansible-playbook site.yaml
3.验证host1:
访问主机host1

相关文章

  • Ansible 运维实战

    一、目标:通过role远程部署nginx并配置 1.首先创建目录结构(每个目录名都是固定的,千万不能打错) 1.1...

  • Asible了解,配置,部署

    一、ansible 简介 1、ansible 是什么?ansible是目前最受运维欢迎的自动化运维工具,基于Pyt...

  • CentOS7 Ansible自动化运维

    企业级自动化运维神器Ansible 一、介绍 1.自动化运维工具对比 2.ansible简介 ansible是新出...

  • ansible 自动化运维工具

    什么是ansible ansible是目前最受运维欢迎的自动化运维工具,基于Python开发,集合了众多运维工具(...

  • 干货:一文详解 Ansible 的自动化运维

    一、Ansible 概述 Ansible 是近年来越来越火的一款开源运维自动化工具,通过Ansible可以实现运维...

  • 06Ansible服务

    第一章 Ansible介绍 0.手工运维与自动化运维 1.手动运维时代 2.自动化运维 1.什么是Ansible ...

  • Ansible学习——基本概念 day1

    基础概念 1.ansible是什么?ansible是目前最受运维欢迎的自动化运维工具,基于Python开发,集合了...

  • ansible

    参考 ansible 官方手册 Linux轻量级自动运维工具-Ansible浅析 Ansible中文权威指南 An...

  • Ansible

    运维工作 Ansible Architecture 架构简单 架构扩展

  • 【运维】自动化运维工具Ansible实战

    ansible是新出现的自动化运维工具,基于Python开发,集合了众多运维工具(puppet、cfengine、...

网友评论

    本文标题:Ansible 运维实战

    本文链接:https://www.haomeiwen.com/subject/bjwreqtx.html