想了解更多关于开源的内容,请访问:
龙子湖ssl适用于网站、小程序/APP、API接口等需要进行数据传输应用场景,ssl证书未来市场广阔!成为创新互联的ssl证书销售渠道,可以享受市场价格4-6折优惠!如果有意向欢迎电话联系或者加微信:028-86922220(备注:SSL证书合作)期待与您的合作!
开源基础软件社区
https://ost.51cto.com
ansible是一个自动化运维工具,基于Python开发,集合了众多运维工具(puppet、cfengine、chef、func、fabric)的优点,实现了批量系统配置、批量程序部署、批量运行命令等功能。
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。
setenforce 0
systemctl stop firewalld
hostname ansible /client
vim /etc/hosts
yum -y install epel-release
yum -y install ansible
(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
里面就是主机的localhost或者ip:
vim inventory
web1.example.com
web2.example.com
db1.example.com
db2.example.com
192.0.2.42
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 |
ansible all -m ping
在ansible外面直接执行模块。
注:
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 |
ansible-doc用来查询ansible模块文档的说明(帮助文档),类似于man命令。
(1)列出支持的模块。
ansible-doc -l
ansible-doc -s command
ansible-doc -s raw
ansible-doc -s ping
Ansible-playbook是日常应用中使用频率最高的命令,类似于Linux系统中的sh或source命令,用来执行系列任务,其工作机制是,通过读取编写好的 playbook文件实现集中处理任务,ansible-playbook命令后跟yml或者yaml格式的playbook文件,playbook文件存放了要执行的任务代码。
语法: ansible-playbook playbook.yml
检查语法是否错误。
ansible-playbook --syntax-check webserver.yml
ansible-console是 ansible为用户提供的一款交互式工具,类似于 Windows中的cmd以及Linux中的shell,用户可以在 ansible-console虚拟出来的终端上做像shell一样使用ansible内置的各种命令,这为习惯于使用 shell交互方式的用户提供了良好的体验,在终端输入ansible-console命令后显示如下。
所有的操作类似于shell,而且支持Tab键补全,按快捷键Ctrl+D或Ctrl+C即可退出当前虚拟终端。
ansible-galaxy指令用于方便的从https://galaxy.ansible.com/站点下载第三方扩展模块。
创建rolrs目录架构:
ansible galaxy init 目录
ansible-vault主要应用于配置文件中含有敏感信息,又不希望他能被人看到,vault可以帮你加密/解密这个配置文件,属高级用法。主要对于playbooks里比如涉及到配置passwd或其他变量时,可以通过该指令加密,这样我们通过cat看到的会是一个passwd串类的文件,编辑的时候需要输入事先设定的passwd才能打开。这种playbook文件在执行时,需要加上 --ask-vault-pass参数,同样需要输入passwd后才能正常执行。
该指令使用需要谈到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
想了解更多关于开源的内容,请访问:
开源基础软件社区
https://ost.51cto.com。
文章题目:聊一聊Ansible自动化运维架构
文章路径:http://www.shufengxianlan.com/qtweb/news41/522591.html
网站建设、网络推广公司-创新互联,是专注品牌与效果的网站制作,网络营销seo公司;服务项目有等
声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联