rhel7 ansible 自动化部署示例

本文涉及的产品
云数据库 RDS MySQL,集群系列 2核4GB
推荐场景:
搭建个人博客
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
全局流量管理 GTM,标准版 1个月
简介:

环境: centos 7

设置系统limit  为65535

      详见: http://www.cnblogs.com/qq78292959/archive/2012/03/07/2383337.html

关闭selinux

1
2
3
4
/etc/sysconfig/selinux
SELINUX=disabled
安装ansible
yum  install  epel-release  ansible

配置ssh key

配置ansible (ansible目录ansible_test)

1、修改ansible配置:vi /etc/ansible/ansible.cfg

1
2
# uncomment this to disable SSH key host checking
host_key_checking = False    #关闭known hosts提醒

 2、设置hosts:vi ansible_test/hosts

1
2
3
4
5
6
7
8
9
[harbor] -->服务名称命名
10.199.133.157 -->ip地址
10.199.133.158
 
[registry]
10.199.133.159
 
[mysql]
10.199.132.136

3、设置全局变量 ansible_test/group_vars/all.yml

1
2
3
4
5
6
open_trigger:  "on"   -->on默认会转化为True需要加上双引号
mysql_host: 10.199.133.158
mysql_user: root
mysql_pwd: 21@AAAsafqqqsQ
registry_url: 10.199.133.159:5000
harbor_ip: 10.199.133.157

4、ansible_test/harbor.yml示例配置

harbor.yml

1
2
3
4
5
- hosts: harbor  -->对应 hosts中的harbor定义
   roles:
     #- docker  -->对应ansible_test/roles/docker,不执行
     - master  -->对应ansible_test /roles/master
     - test_docker_dns -->对应ansible_test /roles/test_docker_dns

5、ansible task目录

ls -l ansible_test/roles/docker/

1
2
3
4
total 0
drwxr-xr-x 2 root root 24 Jul 13  2016 files   -->文件存放
drwxr-xr-x 2 root root 21 Aug  8 15:59 tasks  -->ansible执行任务
drwxr-xr-x 2 root root 22 Jul 13  2016 templates  -->模板

cat roles/docker/tasks/main.yml

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
---   ###起始行
- name: Copy yum repo  file    -->拷贝文件,放置在files目录中
   copy: src=docker.repo dest= /etc/yum .repos.d /docker .repo
   
- name: Copy docker images -->拷贝目录
   copy: src=images/ dest= /tmp/images/
   
- name: Copy container config files -->批量拷贝
    copy: src={{ item.src }} dest={{ item.dest }}
    with_items:
         - src: config /jobservice/
           dest:  /apps/conf/harbor/jobservice/
         - src: config /ui/ {{ use_by }}/ -->引用全局变量
           dest:  /apps/conf/harbor/ui/
         - src: config /nginx/
           dest:  /apps/conf/harbor/nginx/
           
- name: Import docker images  -->批量执行命令
   command : docker load -i {{ item }}
     with_items:
         /tmp/images/golang . tar
         /tmp/images/deploy_log . tar
         /tmp/images/deploy_jobservice . tar
         file : path= /var/log/harbor_jobservice_audit .log state= touch  mode= "u=rw,g=r,o=r"   -->创建文件
         
- lineinfile: dest= /etc/resolv .conf line= "nameserver 192.168.209.254"   -->增加目标主机resolv.conf 的nameserver解析
 
- lineinfile: dest= /etc/resolv .conf state=absent regexp= "10.199.129.21"  -->删除10.199.129.21域名解析
 
- lineinfile: dest= /apps/conf/harbor/ui/env  regexp= '^HA_PROXY_ADDR='  line= 'HA_PROXY_ADDR={{ domain_name }}'    -->引用全局变量替换内容
 
- replace: dest= /apps/conf/harbor/nginx/nginx .conf regexp= '(.*upstream registry.*{.*\n.*)server.*'  replace= '\1  server {{ registry_url}};'  -->替换upstream registry后一行内容
 
- lineinfile: dest= /apps/conf/harbor/registry/config .yml  regexp= '(.*rootdirectory:)'  line= '\1 {{ rootdirectory }}'  backrefs= yes  -->引用并替换内容
 
- name: Delete restart  file  -->删除文件
   file : path=~ /restart_docker .sh state=absent
   
- name: Yum makecache  -->执行linux命令
   command : yum makecache
   
- name: Install docker  -->安装软件
   yum: name=docker state=latest
   
- name: Update docker config  file   -->使用模板替换文件
   template: src=docker.j2 dest= /etc/sysconfig/docker
   
- name: Enable docker service   -->启动服务
   service: name=docker enabled= yes  state=started

流程图

wKiom1iB1yjDoaEXAABc09CTtUg530.jpg

执行部署harboransible-playbook -i hosts harbor.yml



本文转自 qwjhq 51CTO博客,原文链接:http://blog.51cto.com/bingdian/1893465

相关文章
|
2月前
|
运维 应用服务中间件 网络安全
自动化运维的新篇章:使用Ansible进行服务器配置管理
【10月更文挑战第34天】在现代IT基础设施的快速迭代中,自动化运维成为提升效率、确保一致性的关键手段。本文将通过介绍Ansible工具的使用,展示如何实现高效的服务器配置管理。从基础安装到高级应用,我们将一步步揭开自动化运维的神秘面纱,让你轻松掌握这一技术,为你的运维工作带来革命性的变化。
|
3月前
|
运维 负载均衡 应用服务中间件
自动化运维:使用Ansible进行服务器配置管理
【9月更文挑战第34天】在现代IT运维工作中,自动化已成为提升效率、减少错误的关键。本文将介绍如何使用Ansible这一强大的自动化工具来简化和加速服务器的配置管理工作。我们将通过实际案例展示如何利用Ansible的Playbooks来自动化常见任务,并讨论其对提高运维团队工作效率的影响。
|
3月前
|
运维 Linux Apache
Puppet这一强大的自动化运维工具,涵盖其基本概念、安装配置及使用示例
【10月更文挑战第8天】本文介绍了Puppet这一强大的自动化运维工具,涵盖其基本概念、安装配置及使用示例。Puppet通过定义资源状态和关系,确保系统配置始终如一,支持高效管理基础设施。文章详细讲解了Puppet的安装步骤、配置方法及DSL语言示例,帮助读者快速掌握Puppet的使用技巧。
97 2
|
3月前
|
运维 应用服务中间件 网络安全
自动化运维:使用Ansible进行批量服务器配置
【9月更文挑战第35天】在现代IT基础设施管理中,高效、可扩展的自动化工具是提升工作效率的关键。本文将引导您了解如何使用Ansible这一强大的自动化工具来简化和加速服务器的配置过程,确保一致性和可靠性的同时减少人为错误。通过实际案例,我们将展示如何编写Ansible Playbook以实现批量服务器配置,从而让您能够更加轻松地管理和维护您的服务器群。
|
11天前
|
人工智能 Linux API
PromptWizard:微软开源 AI 提示词自动化优化框架,能够迭代优化提示指令和上下文示例,提升 LLMs 特定任务的表现
PromptWizard 是微软开源的 AI 提示词自动化优化框架,通过自我演变和自我适应机制,迭代优化提示指令和上下文示例,提升大型语言模型(LLMs)在特定任务中的表现。本文详细介绍了 PromptWizard 的主要功能、技术原理以及如何运行该框架。
92 8
PromptWizard:微软开源 AI 提示词自动化优化框架,能够迭代优化提示指令和上下文示例,提升 LLMs 特定任务的表现
|
29天前
|
运维 Ubuntu 应用服务中间件
自动化运维之路:使用Ansible进行服务器管理
在现代IT基础设施中,自动化运维已成为提高效率和可靠性的关键。本文将引导您通过使用Ansible这一强大的自动化工具来简化日常的服务器管理任务。我们将一起探索如何配置Ansible、编写Playbook以及执行自动化任务,旨在为读者提供一条清晰的路径,从而步入自动化运维的世界。
|
27天前
|
运维 网络安全 Python
自动化运维:使用Ansible实现批量服务器配置
在快速迭代的IT环境中,高效、可靠的服务器管理变得至关重要。本文将介绍如何使用Ansible这一强大的自动化工具,来简化和加速批量服务器配置过程。我们将从基础开始,逐步深入到更复杂的应用场景,确保即使是新手也能跟上节奏。文章将不包含代码示例,而是通过清晰的步骤和逻辑结构,引导读者理解自动化运维的核心概念及其在实际操作中的应用。
|
28天前
|
运维 Ubuntu 网络协议
自动化运维:使用Ansible进行服务器配置管理
在现代IT架构中,自动化运维已成为提升效率、减少人为错误的关键。本文将介绍如何使用Ansible这一强大的自动化工具来简化和标准化服务器的配置管理过程。通过具体的代码示例和操作步骤,我们将展示如何快速部署应用、管理配置以及自动化日常任务,从而确保环境的一致性和可靠性。
|
2月前
|
运维 安全 Ubuntu
自动化运维:使用Ansible进行服务器配置管理
在现代IT基础设施中,自动化运维是确保高效、稳定和安全服务的关键。本文将深入介绍如何使用Ansible这一开源工具来简化服务器配置管理工作,从基础安装到高级应用,我们将一步步展示如何通过Ansible Playbooks实现自动化部署和维护,旨在帮助读者构建更加灵活和可扩展的运维体系。
47 7
|
2月前
|
运维 应用服务中间件 调度
自动化运维:使用Ansible实现服务器批量管理
【10月更文挑战第26天】在当今快速发展的IT领域,自动化运维已成为提升效率、降低人为错误的关键技术手段。本文通过介绍如何使用Ansible这一强大的自动化工具,来简化和加速服务器的批量管理工作,旨在帮助读者理解自动化运维的核心概念和实践方法。文章将围绕Ansible的基础使用、配置管理、任务调度等方面展开,通过实际案例引导读者深入理解自动化运维的实现过程,最终达到提高运维效率和质量的目的。