您现在的位置是:亿华云 > 热点
聊一聊Ansible自动化运维架构
亿华云2025-10-04 03:58:43【热点】1人已围观
简介一、ANSIBLE介绍1、什么是ansibleansible是一个自动化运维工具,基于Python开发,集合了众多运维工具puppet、cfengine、chef、func、fabric)的优点,实现
一、聊聊ANSIBLE介绍
1、动化什么是架构ansible
ansible是一个自动化运维工具,基于Python开发,聊聊集合了众多运维工具(puppet、动化cfengine、架构chef、聊聊func、动化fabric)的架构优点,实现了批量系统配置、聊聊批量程序部署、动化批量运行命令等功能。架构
2、聊聊ansible的动化历史
Ansible 工具由供应服务器应用程序 Cobbler 的作者 Michael DeHaan 开发,他是架构 Fedora 统一网络控制器(Func)远程管理框架的共同作者。
红帽于 2015 年 10 月收购了 Ansible。
Ansible 是 Red Hat 旗下的 Fedora Linux 发行版的一部分,也可以通过 Extra Linux for Enterprise Linux(EPEL)以及其他操作系统用于 Red Hat Enterprise Linux,CentOS,Scientific Linux 和 Oracle Linux。
3、Ansible有很多重要的优势:
跨平台支持:Ansible为物理、虚拟、云南idc服务商云和容器环境中的Linux、Windows、UNIX和网络设备提供无代理支持。人类可读的自动化:Ansible Playbooks以YAML文本文件的形式编写,易于阅读,并有助于确保每个人都理解他们将做什么。应用程序的完美描述:Ansible Playbooks可以做出每一个更改,应用程序环境的每一个方面都可以描述和记录。易于管理的版本控制:Ansible Playbooks和项目是纯文本。 它们可以像源代码一样处理,并放在现有的版本控制系统中。支持动态清单:Ansible管理的机器列表可以从外部来源动态更新,以便随时获取所有被管理服务器的正确的当前列表,无论基础设施或位置如何。可与其他系统轻松集成的编排:HP SA、Puppet、Jenkins、Red Hat 卫星和其他存在于您环境中的系统可以被利用和集成到您的Ansible工作流程中。4、亿华云ansible工作原理
二、安装ansible
1、关闭防火墙
setenforce 0
systemctl stop firewalld2、修改主机名
hostname ansible /client3、修改映射文件
vim /etc/hosts4、下载epel-release软件包
yum -y install epel-release5、安装ansible
yum -y install ansible6、创建SSH面交互登录
(1)发送密钥需要passwd和yes。
ssh-keygen -t rsa服务端:
客户端:
复制密钥到其他机器:
ssh-copy-id 192.168.253.128复制密钥时忽略passwd和yes(一键复制)。
sshpass -p passwd ssh -p 用户名@主机IP -o StrictHostKeyChecking=no三、使用ansible
1、写inventory(相当于/etc/ansible/hosts)
里面就是主机的localhost或者ip:
vim inventory
web1.example.com
web2.example.com
db1.example.com
db2.example.com
192.0.2.422、写ansible.cfg
vim ansible.cfg
[defaults]
inventory = ./inventory
remote_user = user
ask_pass = false
[privilege_escalation]
become = true
become_method = sudo
become_user = root
become_ask_pass = false指令
描述
inventory
指定目录文件的路径。
remote_user
在被管理主机上登录的用户名。如果未指定,使用当前用户名。
ask_pass
是否提示SSHpasswd。可以如果使用SSH公钥认证,则为false。
become
是否自动切换被管用户连接后的主机(通常到root)。这也可以是戏剧指定的:戏剧指定的。
become_method
如何切换用户(通常是sudo,高防服务器这是默认的,但是su是一个选项)。
become_user
在托管主机上切换到的用户(通常是Root,这是默认值)。
become_ask_pass
是否提示为你的become_method输入passwd。 默认值为false。
[defaults]
设置Ansible操作的默认值
[privilege_escalation]
配置Ansible对managed的权限升级方式主机
优先级最高的,还是自己创建的ansible.cfg
3、ansible的adhoc
ansible all -m ping在ansible外面直接执行模块。
注:
Ansible的返回结果非常友好,一般会用三种颜色来表示执行结果:红色,绿色和橘黄色。
①其中红色表示执行过程中有异常。
②橘黄色表示命令执行后目标有状态变化。
③绿色表示执行成功且没存对目标机器做修改。
参数的含义:
-v(–verbose):输出详细的执行过程信息,可以得到执行过程所有信息。-i PATH(–inventory=PATH):指定inventory信息,默认为/etc/ansible/hosts。-f NUM(–forks=NUM):并发线程数,默认为5个线程。–private-key=PRIVATE_KEY_FILE指定秘钥文件,(不经常使用)。-m NAME,–moudle-name=NAME:指定执行时使用的模块。-M DIRECTORY (–module-path=DIRECTORY):指定模块存放路径,默认为/usr/share/ansible,也可以通过ANSIBLE_LIBRARY设定默认目录。(不经常使用)。-a ARGUMENTS ( --args=ARGUMENTS):指定模块参数。-u USERNAME (–user=USERNAME);指定远程主机 USERNAME运行命令。-l subset (–limit=SUBSET):限定运行主机。–list-hosts:列出符合条件的主机列表,不执行任何命令。4、Ansible 基础模块
模块类别
模块
文件模块
• copy: Copy a local file to the managed host-
软件包模块
• yum: Manage packages using the YUM package manager
系统模块
• firewalld: Manage arbitrary ports and services using firewalld
Net Tools模块
• get_url: Download files over HTTP, HTTPS, or FTP
5、ansible-doc
ansible-doc用来查询ansible模块文档的说明(帮助文档),类似于man命令。
(1)列出支持的模块。
ansible-doc -l6、ansible-playbook
Ansible-playbook是日常应用中使用频率最高的命令,类似于Linux系统中的sh或source命令,用来执行系列任务,其工作机制是,通过读取编写好的 playbook文件实现集中处理任务,ansible-playbook命令后跟yml或者yaml格式的playbook文件,playbook文件存放了要执行的任务代码。
playbook核心元素Hosts:执行的远程主机列表。Tasks:任务集。Varniables: 内置变量或自定义变量在playbook中调用。Templates:模板,可替换模板文件中的变量并实现一些简单逻辑的文件。Handlers 和 notity 结合使用,由特定条件触发的操作,满足条件才执行,否则不执行。Tags:标签 指定某条任务执行,用于选择运行playbook中的部分代码,ansible具有幂等性,因此会自动跳过没有变化的部分,即便如此,有些代码为测试其确实没有发生变化的时间依然会非常地长,此时,如果确信其没有变化,就可以通过tags跳过此些代码片段。语法: ansible-playbook playbook.yml检查语法是否错误。
ansible-playbook --syntax-check webserver.yml7、ansible-console虚拟终端
ansible-console是 ansible为用户提供的一款交互式工具,类似于 Windows中的cmd以及Linux中的shell,用户可以在 ansible-console虚拟出来的终端上做像shell一样使用ansible内置的各种命令,这为习惯于使用 shell交互方式的用户提供了良好的体验,在终端输入ansible-console命令后显示如下。
所有的操作类似于shell,而且支持Tab键补全,按快捷键Ctrl+D或Ctrl+C即可退出当前虚拟终端。
8、 ansible-galaxy
ansible-galaxy指令用于方便的从https://galaxy.ansible.com/站点下载第三方扩展模块。
创建rolrs目录架构:
ansible galaxy init 目录9、 ansible-vault
ansible-vault主要应用于配置文件中含有敏感信息,又不希望他能被人看到,vault可以帮你加密/解密这个配置文件,属高级用法。主要对于playbooks里比如涉及到配置passwd或其他变量时,可以通过该指令加密,这样我们通过cat看到的会是一个passwd串类的文件,编辑的时候需要输入事先设定的passwd才能打开。这种playbook文件在执行时,需要加上 --ask-vault-pass参数,同样需要输入passwd后才能正常执行。
10、 ansible-pull
该指令使用需要谈到ansible的另一种模式---pull 模式,这和我们平常经常用的push模式刚好相反,其适用于以下场景:你有数量巨大的机器需要配置,即使使用非常高的线程还是要花费很多时间;你要在一个没有网络连接的机器上运行Anisble,比如在启动之后安装。
四、一些常见的命令
输出facts变量的内容:
ansible 主机 -m setup创建加密变量文件:
ansible-vault create secret.yml查看加密变量文件:
ansible-vault view secret1.yml编辑加密变量文件:
ansible-vault edit secret.yml可以使文件加密:
ansible-vault encrypt secret1.yml secret2.yml解密变量文件:
ansible-vault decrypt secret1.yml --output=secret1-decrypted.yml更改加密文件的passwd:
ansible-vault rekey secret.yml执行加密变量文件:
ansible-playbook --vault-id @prompt site.yml很赞哦!(18)
上一篇: 四、配置网站,填充内容
下一篇: 3、考虑出售域名
相关文章
- 2、定期提交和投标域名注册。例如,益华网络点击“立即预订”后,平台会抢先为客户注册域名。当然,一个域名可能会被多个客户预订,所以出价最高的人中标。
- 域名赎回期多少天?
- 华为云GaussDB(for MySQL)2.0全新升级,三大技术大揭秘
- 同事删库跑路后,我连表名都不能修改了?
- 4、企业无形资产:通用网站已成为企业网络知识产权的重要组成部分,属于企业的无形资产,也有助于提升企业的品牌形象和技术领先形象。它是企业品牌资产不可或缺的一部分。
- 前端构建新世代,Esbuild 原来还能这么玩!
- 终于有人把 Flink 设计理念与基本架构讲明白了
- 域名注册不能取消?
- 公司名字不但要与其经营理念、活动识别相统一,还要能反映公司理念,服务宗旨、商品形象,从而才能使人看到或听到公司的名称就能产生愉快的联想,对商店产生好感。这样有助于公司树立良好的形象。
- 数据驱动创新大会|开一辆“智”能小车,冲向 AI 新未来