大型网站构架 ansible

news/2024/5/12 20:42:10/文章来源:https://blog.csdn.net/m0_48654420/article/details/108629949

ansible

  • ansible简介
  • ansible部署
  • ansible 基础配置
  • YAML-非标记语言

ansible简介

abstract
在这里插入图片描述
ansible是新出现的自动化运维工具,基于Python开发,集合了众多运维工具(puppet、cfengine、chef、func、fabric)的优点,
实现了批量系统配置、批量程序部署、批量运行命令等功能。
无客户端。

  • 工作原理
    在这里插入图片描述

ansible部署

(1)dns resolvej解析
vim /etc/hosts
(2)Ansible客户机不需要配置
需:有ip yum源
安装ansible服务器

Yum –install –y epel-release 安装epel源

还可以配置阿里yum源

Rm –rf  /etc/yum.repos.d/*
wget -O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.repo
wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo

然后检查部署是否完成

Rpm –ql ansible  列出所有文件
Rpm –qc ansible  查看配置文件
Ansible –help 查看ansible帮助
Ansible-doc-l  看所有模块(A10,华为,docker,EC2,aws等等广大厂商设备)(轻易不要尝试  内容比较繁多 看不过来(慎重))
Ansible-doc-s yum  查看yum板块Ssh-key 免密登录
Ssh-keygen 获得免密内容
Ssh-copy-id  ip地址 推送公钥

ansible 基础配置

1.	定义主机清单
Vim /etc/ansible/hosts  添加主机
2.	测试连通性
Ansible localhost –m ping  
-m 指定模块。ping只是其中一个模块。还有shell,yum等等 3.	简介输出
Ansible localhost –m ping –o
4.	Know_hosts
Ansible host1 –m ping –u root –k –o  增加用户名选项、密码选项
去掉(yes/no)的询问
Vim /etc/ssh/ssh_config
#strictHostKeyCheking yes > no
重启服务
Systemctl restart sshdAnsible host2 –m ping –u root –k –o  成功就不提示了
  • inventory 主机清单
    含义:清查;存货清单;财产目录;主机清单
1.	增加主机组
Vim /etc/ansible/hosts
[webserver]
Host1
Host2
Ansible webserver –m ping –o 
输出提示
Host1 | SUCCESS => {"changed": false, "ping": "pong"}
Host2 | SUCCESS => {"changed": false, "ping": "pong"}
2.	增加用户名 密码 
Vim /etc/ansible/hosts
[webserver]
host[1:4] ansible_ssh_user='root' ansible_ssh_pass='666666' 注意不能折行
ansible webserver –m ping –o 免用户和密码成功
用户名密码不同单独设置
[webservers]
host1 ansible_ssh_user='root' ansible_ssh_pass='777777'
host[2:4] ansible_ssh_user='root' ansible_ssh_pass='666666'
3.	增加端口
更改host1的sshd程序端口修改2222
Vim /etc/ssh/sshd_config
Port 2222
Systemctl restart sshd
Ansible webserver –m ping –o  失败,默认端口已更改
Vim /etc/ansible/hosts
[webserver]
host1 ansible_ssh_user='root' ansible_ssh_pass='777777' ansible_ssh_port='2222'
host[2:4] ansible_ssh_user='root' ansible_ssh_pass='666666'
改完之后记得恢复原状
4.	组:变量
ansible内部变量可以帮助我们简化主机清单的设置
vim /etc/ansible/hosts
[webserver]
host[1:4]
[webserver:vars]
ansible_ssh_user='root'
ansible_ssh_pass='666666'
常用变量

在这里插入图片描述

5.	子分组
将不同的分组进行组合
Vim /etc/ansible/hosts
[apache]
host[1:2]
[nginx]
host[3:4]
[webserver:children]
apache
nginx
[webserver:vars]
ansible_ssh_user='root'
ansible_ssh_pass='666666'
6.	自定义主机列表
Vim  hostlist
[dockers]
host1
host2
[dockers:vars]
ansible_ssh_user='root'
ansible_ssh_pass='666666'
ansible –i hostlist dockers –m ping –o
新文件 –i 加文件名 加组名

Ad-hoc 点对点模式
临时的,在ansible中是指需要快速执行的单条命令,并且不需要保存的命令。对于复杂的命令则为 playbook。

  • Ad-hoc 点对点模式
    临时的,在ansible中是指需要快速执行的单条命令,并且不需要保存的命令。对于复杂的命令则为 playbook。
1.	Shell模块
Ansible-doc shell  帮助
Ansible webserver –m shell –a ‘hostname’ –o  获取主机名
Ansible webserver –m shell –a ‘hostname’ –o –f 2     -f 2 指定线程数-f FORKS, --forks=FORKS  Ansible一次命令执行并发的线程数。NUM被指定为一个整数,默认是5
specify number of parallel processes to use
(default=5)
Ansible host1 –m shell –a ‘yum –y install httpd‘ –o 部署apache
Absible host1 –m shell –a ‘uptime’ –o  查询系统负载
2.	复制模块
Ansible-doc copy 复制帮助
Ansible webserver –m copy ‘src=/etc/hosts dest=/tmp/1.txt owner=root group=root mode=777’  复制
ansible webserver -m copy -a 'src=/etc/hosts dest=/tmp/2.txt owner=root group=bin mode=777 backup=yes'  追加备份
3.	用户模式
Ansible-doc user  用户帮助
(1)创建用户
ansible webserver -m user -a 'name=qianfeng state=present'
(2)修改密码
先生成加密密码 :echo '777777' | openssl passwd -1 –stdin
再修改密码
ansible webserver -m user -a 'name=zhangsan password="$1$XVzsJMDr$5wI4oUaQ.emxap6s.N272."'
最后客户机测试
(3)修改shell
ansible webserver -m user -a 'name=qianfeng shell=/sbin/nologin append=yes'  追加
(4)删除用户
ansible webserver -m user -a 'name=qianfeng state=absent'4.	软件包管理
Absible-doc yum
Absible host1 –m yum –a ‘name=”*” state=latest ‘  升级所有包
Absible host1 –m yum –a ‘name=“httpd“ state=latest‘  安装apache
Absible host1 –m yum –a ‘name=“httpd“ state=absent‘ 删除apache
5.	服务模块
Ansible-doc server 服务帮助
ansible host2 -m service -a 'name=httpd state=started' 启动
ansible host2 -m service -a 'name=httpd state=started enabled=yes'  开机启动
ansible host2 -m service -a 'name=httpd state=stopped'  停止
ansible host2 -m service -a 'name=httpd state=restarted'  重启
ansible host2 -m service -a 'name=httpd state=started enabled=no'  开机禁止启动
6.	文件模块
ansible-doc file  文件帮助
ansible host1 -m file -a 'path=/tmp/88.txt mode=777 state=touch'  创建文件
ansible host1 -m file -a 'path=/tmp/99 mode=777 state=directory'  创建目录
7.	收集模块
ansible-doc setup 收集帮助
ansible host3 -m setup  查询所有信息
ansible host3 -m setup -a 'filter=ansible_all_ipv4_addresses'  查询ip地址

YAML-非标记语言

  • 语法
    (1)列表Fruits:
    -apple ;-orange ;-strawberry ;-mango
    (2)字典martin:
    name:martin d’vloper
    job:developer
    skill:elite

  • 示例

1.	准备工作
Ansible all –m yum –a ‘name=httpd  state=remove’ –o  		清理环境
Yum –y install httpd  准备配置文件
Mkdir apache
Cp –rf /etc/httpd/conf/httpd.conf .  别忘了后面有个点 (当前目录)
Grep ‘^Listen’ httpd.conf
Listen 8080  修改配置,用作配送
2.	编写剧本
Vim apache.yaml
- hosts: host2tasks:  任务- name: install apache packagesyum: name=httpd state=present  yum模块 安装- name: copy apache confcopy: src=./httpd.conf dest=/etc/httpd/conf/httpd.conf  拷贝到httpd.Conf- name: ensure apache is running
service: name=httpd state=started enabled=yes  开启httpd服务  开机自启3.	测试
Ansible-playbook apache.yaml -syntax-check 检验语法
Ansible-playbook apache.yaml -list-tasks  列出任务
Ansible-playbook apache.yaml -list-hosts  列出主机
Ansible-playbook apache.yaml 执行脚本
这里要注意端口号 默认80  上面修改端口是8080
4.	Handlers
这里假设配置文件发生变化  端口Listen 9000
Ansible-playbook apache.yaml
执行脚本,成功并没有报错  但配置未生效,所以在此增加处理程序,触发器
Vim apache.yaml

在这里插入图片描述
然后修改配置文件 Listen 9080
Ansible-playbook apache.yaml
执行脚本,配置生效,触发成功

  • role 角色扮演
    roles则是在ansible中,playbooks的目录组织结构。将代码或文件进行模块化,成为roles的文件目录组织结构,易读,代码可重用,层次清晰。
    目的就是为了通过role远程部署ngiinx并配置
  1. 目录结构
    在这里插入图片描述
    nginx 角色名
    files 普通文件
    handlers 触发器程序
    tasks 主任务
    templates 金甲模板(有变量的文件)
    vars 自定义变量
实验开始准备目录结构
mkdir roles/nginx/{files,handlers,tasks,templates,vars} –p
touch roles/site.yaml roles/nginx/{handlers,tasks,vars}/main.yaml
echo 1234 > roles/nginx/files/index.html
yum install -y nginx && cp /etc/nginx/nginx.conf roles/nginx/templates/nginx.conf.j2
2.	编写任务 vim roles/nginx/tasks/main.yaml
任务如下
---
- name: install epel-release packgeyum: name=epel-release state=latest- name: install nginx packgeyum: name=nginx  state=latest- name: copy index.htmlcopy: src=index.html dest=/usr/share/nginx/html/index.html- name: copy nginx.conf templatetemplate: src=nginx.conf.j2 dest=/etc/nginx/nginx.confnotify: restart nginx- name: make sure nginx service runningservice: name=nginx state=started enabled=yes
3.	准备配置文件 vim roles/nginx/templates/nginx.conf.j2
worker_processes  {{ ansible_processor_cores }}; 调用内部已知变量
worker_connections {{ worker_connections }};  自定义变量
4.	编写变量 vim roles/nginx/vars/main.yaml  worker_connections: 10240
5.	编写处理程序 vim roles/nginx/handlers/main.yaml
---
- name: restart nginxservice: name=nginx state=restarted
6.	编写剧本 vim roles/site.yaml- hosts: host4roles:- nginx
7. 实验开始
Cd roles
Ansible-playbook site.yaml  -syntax-check  测试一下
Ansible-playbook site.yaml 执行脚本
验证host4

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.luyixian.cn/news_show_876866.aspx

如若内容造成侵权/违法违规/事实不符,请联系dt猫网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

大型网站构架 HTTP协议

HTTP协议 HTTP协议详解URL:统一资源标识符的语法 Nginx (engine x) 是一个高性能的HTTP(解决C10k的问题)和反向代理服务器,也是一个IMAP/POP3/SMTP服务器。 Nginx优势 :高并发 io多路复用 epoll 异步 非阻塞 Io多路复用:高并发 I/…

修改WAMPServer默认的网站路径地址的一种方式

刚开始学习PHP,跟着教程使用了WAMPServer集成环境来学习PHP。但是发现教程中修改默认路径的方式在我的环境中不适用,大概是因为版本不同吧,于是找了其他方法,最后终于成功修改,故记录下来仅供参考。 本人的WAMPServer…

从uniprot网站上爬取蛋白质家族信息

原始数据: 逼话少说,上代码 import requests import pandas as pd from bs4 import BeautifulSoup import time from multiprocessing import Pool""" 类说明:从uniprot网站下获取蛋白的家族信息 Parameters:无 Returns:无 Modify:2020-01-09 ""&qu…

java tcpclient socket提供重连方法了吗_《大型网站系统与Java中间件》读书笔记 (中)...

前言 只有光头才能变强。 文本已收录至我的GitHub仓库,欢迎Star: https:// github.com/ZhongFuCheng 3y/3y 回顾上一篇: 《大型网站系统与Java中间件》读书笔记(一) 这周周末读了第四章,现在过来做做笔记&a…

从团购网的漏洞看网站安全性问题

自从9月份在同事推荐下在某团购网买了一份火锅的套餐后,就迷上了,几乎每天必去浏览一遍,看看有什么又便宜又好吃的。元旦期间当然也不例外,1号那天上午,看到了XXX团购网的“VIP会员0元领红包”活动,0元&…

前端 匡威网站布局

HTML <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><title>首页</title><link rel"stylesheet" href"CSS/style.css"> </head> <body><!-- 这是顶部 --&g…

可以免费自学编程的12个网站

小编推荐&#xff1a;Fundebug专注于JavaScript、微信小程序、微信小游戏&#xff0c;Node.js和Java实时BUG监控。真的是一个很好用的bug监控费服务&#xff0c;众多大佬公司都在使用。 编程学习 很多人包括一些企业家&#xff0c;和市场营销人员都认为学习编程对一个人走向成…

推荐一些非常有用的学习网站

小编推荐&#xff1a;Fundebug专注于JavaScript、微信小程序、微信小游戏&#xff0c;Node.js和Java实时BUG监控。真的是一个很好用的bug监控费服务&#xff0c;众多大佬公司都在使用。 1. free-programming-books 这个就不多说了&#xff0c;之前有推荐过的&#xff0c;免费的…

前端工程师必备实用网站

小编推荐&#xff1a;Fundebug专注于JavaScript、微信小程序、微信小游戏&#xff0c;Node.js和Java实时BUG监控。真的是一个很好用的bug监控费服务&#xff0c;众多大佬公司都在使用。 一、配色类网站 http://colorhunt.co 这个网站给我们提供了很多的配色方案&#xff0c;我们…

去掉 JavaScript 后,亚马逊这些网站会变成这样

小编推荐&#xff1a;Fundebug提供JS错误监控、微信小程序错误监控、微信小游戏错误监控&#xff0c;Node.j错误监控和Java错误监控。真的是一个很好用的错误监控费服务&#xff0c;众多大佬公司都在使用。 为什么我们应该重视“noscript”这个话题&#xff1f; 首先要澄清一下…

如何通过域名直接访问你的网站

喜欢你已经超过两分钟了&#xff0c;你说还能撤回吗&#xff1f; 每次进入自己的网站都要输入端口号&#xff0c;很不舒服。于是今天查了一下&#xff0c;怎么用域名直接访问自己的网站。 带端口和项目名称的访问方式如下&#xff1a; 例如&#xff1a;www.xxx.com:8080/项目…

建站模板推荐

今天终于把个人网站部署好了&#xff0c;有想做 个人网站可以参考一下 朱乐乐的网站 建站步骤&#xff1a; 下面给大家看一下阿里官方的网页模板。要收费&#xff0c;欣赏欣赏 阿里云提供企业案例&#xff0c;可直接选择心仪的&#xff0c;直接建站 点击此链接即可观看上方…

程序员实用的网站

福利 今天总结了很实用的一些网站&#xff0c;安利给大家&#xff1a; 我把这些网站书签已导出&#xff1a; 获取书签&#xff1a; 链接&#xff1a;https://pan.baidu.com/s/16COgtPnqGc8X__wlvgoXSQ 提取码&#xff1a;s9ih 下载好之后&#xff0c;打开浏览器导入书签。 …

免费主机,免费二级域名分发,免费建临时网站,免费扒网

给大家分享一点&#xff0c;没钱&#xff0c;没钱&#xff0c;没钱&#xff0c;新手喜欢的东西&#xff01; 废话不多&#xff0c;安排&#xff01; 免费主机 网址&#xff1a;彩虹云主机&#xff08;免备案&#xff09; 在这里可以填久一点&#xff0c;最好就90年&#xff…

全程追踪入侵JSP网站服务器

小 中 大 前段时间&#xff0c;应朋友之邀&#xff0c;我对他们托管的三台 服务器 的主机进行了测试&#xff0c;发现了JSP网站存在的几个问题。 入侵测试第一步&#xff1a;扫描扫描是入侵的第一步&#xff0c;它可以让你对即将入侵的目标有一个全面的了解。同时扫描还有可…

21天转型容器实战营(二十一基于AOS模板完成电商网站创建)

应用编排->交付->运维->治理全生命周期应用编排AOS:图形化编排&#xff0c;一键式部署实现企业业务快速上云和迁移AOS主要概念 云上的应用编排服务(Application Orchestration Service),可以通过设计复杂应用拓扑,实现复 杂应用的一键式部署。 模板:遵循AOS语法规范定…

流媒体之老黄谈流媒体服务与视频网站研发

今天应公司领导的要求做完了来公司的第三个项目流媒体服务与视频网站开发&#xff0c;接近年终&#xff0c;博客停更了好久&#xff0c;心里一直不甘&#xff0c;上周六和北理工的好兄弟安老板定下誓言&#xff0c;每天保证五篇技术博客的更新量&#xff0c;年终上线三大社区。…

大学四年因为知道了这32个网站,我成了别人眼中的大神!

转载于&#xff1a;https://blog.csdn.net/sinat_33921105/article/details/103899234 依稀记得&#xff0c;毕业那天&#xff0c;我们导员发给我毕业证的时候对我说“你可是咱们系的风云人物啊”&#xff0c;哎呀&#xff0c;别提当时多开心啦&#x1f602;&#xff0c;嗯&…

常用网站记录

代码复制粘贴 网址&#xff1a;https://paste.ubuntu.com/ 说明&#xff1a;在编程中&#xff0c;经常需要把代码复制粘贴到其他地方&#xff0c;使用该网站能很好的保持原格式&#xff0c;不出现乱码 如下图所示&#xff1a; 使用说明 Poster 此段代码名字&#xff08;可随…

免费论文翻译网站——通天塔

本网站是一个开源的学术论文翻译网站&#xff0c;论文链接如下&#xff1a; http://tongtianta.site/ 一般可以先查看自己的论文是否在网站上已有翻译&#xff0c;如果没有再进行“添加翻译” 该网站有两个功能 第一&#xff1a;免费翻译 可以免费翻译论文&#xff0c;论文页…