| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> 系统运维 -> ansible-配置自動化 -> 正文阅读 |
|
[系统运维]ansible-配置自動化 |
ansible介紹: ????????ansible可以做d麼?有時,我地需要應對多台服務器時,如果一個一個去操作或者通過shell腳本去執行,效率顯然係好低效噶,面對100台或者1000台,更加唔可以咁做。 ? ? ? ? 咁我地可以使用ansible框架裡面的各個模塊,來執行我地所需的任務指令,達到高效噶目的。首先ansible係開源並且係無主無從架構,開箱即用,用完即走咁噶理念,並且具有一定噶普遍性。 ? ? ? ? ansible我地要理清楚主機清單,首先使用時選擇一台server作為主機,依個主機唔係傳統意義上的,只是我地人為定義,把作為master噶主機安裝ansible即可
主机清单作用: 1.用户ansible controller配置主机时读取主机列表 2.实现主机分组 3.如果唔係主机清单里面的服务器,将唔會受到ansible的控制 配置主机清单需要在master主机上 vim /etc/ansible/hosts?将ip地址或者域名放置在最下方 ? 1.添加域名时注意,一定要能解析才行 通过[webgroup]分组将需要服务器ip地址或域名一并写入组内 ? ansible-ping模块測試主机之间连通性 1.ansible controller是通过ssh协议和其他主机进行通信 2.选定一台服务器作为主机master,将主机清单放入即可 通过主机生成ssh公钥和私钥
通过主机传给其他服务器实现免密登陆
公钥和主机清单配置完成后进行测试
如果定义了主机分组后?可以使用 ansible all -m ping?将清单下所有服务器进行ping测试 ansible?组名 -m ping?有时需要对个别组进行测试?直接使用定义好的组名即可 主机清单设置完成 1.真ping还是假ping:真ping使用网络协议?假ping?ansible使用ssh连接远程主机不是真正意义上的ping 2.如果真正完成ping需要分步骤实现 2.1?多主机使用免密登陆方式 2.2?一定要定义主机清单文件 2.3?使用ping模块的方法,ansible?ip -m ping ansible-cron时间同步操作 项目实现使用?ansible-cron模块 1.选择时间源服务器
使用前先检测阿里云时间源是否可用
ansible-cron模块使用
总结: 1.选择合适的时间源? 2.ansible?cron批量服务器周期性任务计划定义 ansible-copy模块 批量将解析域名同步到指定服务器上 ansible ip -m copy -a "src=源?dest=抵达" ansible配置自动化总结 1.配置自动化场景-大量应用部署时,好处是提高效率以及准确性 2.配置自动化产品-无主无从架构?开箱即用?用完即走?通过ssh协议连接具有一定普遍性 3.ansible?工作原理?模块和主机清单 4.主机清单?直接录入ip或分组再录入 5.ping-用于实现主机连接性测试?cron-用于定义周期性计划任务?copy-用于本机的文件复制到远程主机 1.ansible ip -m hostname -a "name=别名" 2.批量创建文件 ansible ip -m file -a "path=路径?state=状态touch" 3.批量查看文件属性 ansible ip -m stat -a "path=路径" 4.ansible ip -m template -a "src=源 dest=抵达"和copy功能几乎相同,但是不能拷贝目录 5.ansible ip -m fetch -a "src=源?dest=抵达"? 从远程服务器文件拷到本地服务器上 6.ansible ip -m user -a "name=用户名"?批量创建用户?可以改uid?gid不能改 7.ansible ip -m group1 -a "name=组名?gid=组号"?批量创建组号 8.ansible ip -m yum -a "name=httpd,vsftpd state=present"?批量配置yum源 9.ansible ip -m service -a "name=vsftpd state=started enabled=on"?设置某个服务开机自启动 script模块? 10.ansible ip -m script -a "路径"? 远程服务器执行本地脚本sh command和shell区别 如果命令需要加入管道或者大于小于这些则只能使用shell? command用法: ansible ip -m command -a "useradd aaa"?创建用户 -a后参数?跟平时linux命令几乎一样 wc -l统计多少 playbook(剧本)?ansible的编排 编排格式YMAL 格式要求: 1.---开头 2.不能使用tab键 3.#号开头注释 4.-?后面一定要空格 5.结尾一定是yaml或者yml 使用命令: ansible-playbook?绝对路径? 好处:可视化?排错更加直观方便?幂等性?不需要推倒重试?只需要把错误的步骤解决就可以? 可以跨平台相对于shell来说 tasks?任务列表 handlers?需要通知调用?一般使用一次 -i?原文替换 /s替换?将/NO改成/YES sed -i '/^anonymous_enable/s/NO/YES/' /etc/vsftpd/vsftpd.conf roles?相当于shell里面的函数(封装) 创建模块化:mkdir httpd/{files,tasks,handlers,vars,templates,meta} -p ?? ??? ??? ??? ??? ?touch {mysql,php}/{files,handlers,vars,meta}/main.yml |
|
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 | -2024/11/25 19:15:13- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |