最新要闻
- 促进市场细分,带动行业升级 “机器人来我家帮忙擦窗”
- 郑州一中国际航空港实验学校怎么样
- 2023邛崃南宝山七夕节有什么活动?
- 爸爸第一次吃自助火锅满脸拘谨 小心翼翼夹东西
- 江苏省张家港市抽检100批次食品 4批次不合格
- 新理论阐释“奇异金属”为何奇异
- 鄂股半年报丨华灿光电上半年亏损3.64亿元,逐鹿MLED赛道寻求增长点
- 街头篮球SFSA总决赛四强集结 星C凉茶领衔终极对决
- 锁定七夕首选《燃冬》首映周冬雨刘昊然屈楚萧齐聚
- ETF午评丨证券板块全线下跌,证券ETF先锋跌3.36%
- 陆家嘴周边医院现“医托” 有人高价买了一堆“廉价货”
- 北大孔庆东
- 滕州:荆河街道彰显“人大作为” 助力乡村振兴
- 三星Galaxy S24 Ultra渲染图曝光:钛金圆角边框
- 日系车慌吗?比亚迪首次进入日本东京:海豚、海豹即将上市
- 45%提升从何而来?揭开Intel Arc锐炫显卡驱动的秘密
手机
“新疆十四运”带火巴州文创
录取通知书里的“秘密”与心语,你读懂了吗
- “新疆十四运”带火巴州文创
- 录取通知书里的“秘密”与心语,你读懂了吗
- 小青柑制作青柑茶 延伸富民产业链
- 美国包包品牌有哪些(美国包包品牌大全)
- 虎落平阳被犬欺全文阅读(虎落平阳被犬欺全文)
- 市民“随手拍” 城管来解决 常德“全民城管”平台正式上线
家电
ansible Ad-Hoc YAML剧本
ansible、Ad-Hoc、YAML剧本
1.简介
ansible是新出现的自动化运维工具,基于Python开发,集合了众多运维工具(puppet、cfengine、chef、func、fabric)的优点,实现了批量系统配置、批量程序部署、批量运行命令等功能。
2.部署
1.dns resolve
ansible服务器:192.168.70.42 配置阿里yum源ansible客户机:192.168.70.35 192.168.70.36 配置阿里yum源
【资料图】
服务器和客户机都做好域名解析
vim /etc/hosts192.168.70.35 host1192.168.70.36 host2192.168.70.42 ansible
2.install ansible (ansible服务器)
yum install ansible -y
3.ssh-key免密连接
ssh-keygen //一路回车 有yes填yesssh-copy-id root@192.168.70.35//发送公钥ssh-copy-id root@192.168.70.36ssh root@192.168.70.35 //测试连接ssh root@192.168.70.36
4.ansible基础
1.自定义主机清单 (ansible机器)
vim /etc/ansible/hostshost1host2
2.测试连通性
ansible localhost -m ping //测试host1连通性 -m指定模块ansible host1 -m ping o //一行简简洁输出
3.know_hosts
ansible host2 -m ping -u root -k -o //没有配置ssh免密可以交互式密码验证登录 如果是第一次连接会报错 需使用ansible host2 -m ping 交互yes之后才能`去掉(yes/no)的询问`vim /etc/ssh/ssh_configStrictHostKeyChecking nosystemctl restart sshdansible host2 -m ping -u root -k -o //再次测试
4.请注意ping和ssh
ping的通不代表ansible连接的上,ping ICMP:网际消息管理协议ansible的ping事探测ssh程序是否连接。不是icmp协议,如果关比sshd服务,ping可以成功,ansible测试会依旧失败。
5.Inventory主机清单
1.增加主机组
vim /etc/ansible/hosts[webserver]host1 ansible_ssh_user="root" host2 ansible_ssh_user="root"ansible webserver -m ping -o
2.增加用户名没密码(没设置免密登录,可以增加用户名密码)
vim /etc/ansible/hostshost1 ansible_ssh_user="root" ansible_ssh_pass="123456"host2 ansible_ssh_user="root" ansible_ssh_pass="123456"//或者host[1:2] ansible_ssh_user="root" ansible_ssh_pass="123456"
3.增加端口(host)
vim /etc/ssh/sshd_configPort 22 改成Port 2222systemctl restart sshd测试连接ansible host1 -m ping //会发现失败 ansible默认sshd端口还是22回到ansible 修改用户host的端口vim /etc/ansible/hostshost1 ansible_ssh_user="root" ansible_ssh_pass="123456" ansible_ssh_port="2222" //指定ssh端口再次测试ansible host1 -m ping
4.组:变量
[webserver]host1 ansible_ssh_port="2222"host2 ansible_ssh_port="2222"[webserver:vars]ansible_ssh_user="root"ansible_ssh_pass="123456"
5.子分组 (将不同的分组进行组合) 为了实验方便我们先把host的sshd 端口改回默认
vim /etc/ansible/hosts[apache]host1[nginx]host2[webserver:children]apachenginxansible webserver -m ping -o //测试
6.自定义主机列表
vim hostlist[dockers]host1host2ansible -i hostlist dockers -m ping -o //测试
6.Ad-Hoc点对点模式
临时的,在ansible中是指需要快速执行的单条命令,并且不需要保存的命令。对于复杂的命令则为 playbook。
1.shell模块
ansible webserver -m shell -a "hostname" -o //查看主机名称ansible webserver -m shell -a "yum install mariadb -y" -o //安装mariadbansible webserver -m shell -a "touch /tmp/777.txt" -o //创建文件
2.复制模块
ansible-doc copy //查看帮助文档ansible webserver -m copy -a "src=/etc/hosts dest=/tmp/2.txt" //copy 如果和原先文件一样 不会进行拷贝ansible webserver -m copy -a "src=/etc/hosts dest=/tmp/3.txt owner=root group=root mode=777"ansible webserver -m copy -a "src=/etc/hosts dest=/tmp/3.txt owner=root group=root mode=777 backup=yes"
3.用户模块
ansible-doc user //查看帮助文档ansible webserver -m user -a "name=xux state=present" //创建用户echo "123456" | openssl passwd -1 -stdin //系统存储的是密文 需要将输入的密码转化为加密后的密文ansible webserver -m user -a "name=xux password="$1$g93P3CoY$YPuV8anNPa8HBhnfMncB60"" //修改密码ansible webserver -m user -a "name=xux shell=/sbin/nologin append=yes" //修改用户属性ansible webserver -m user -a "name=xux state=absent" //删除用户
4.软件包管理
ansible-doc yum //查看帮助文档ansible webserver -m yum -a "name="*" stale=lastest" //升级所有包ansible webserver -m yum -a "name=vsftpd state=present" //安装vsftpdansible webserver -m yum -a "name=vsftpd state=absent" //卸载vsftpdansible webserver -m yum -a "name=vsftpd state=latest" //升级vsftpd
5.服务模块
ansible-doc service //查看帮助文档ansible webserver -m service -a "name=vsftpd state=started" //开启httpd服务ansible webserver -m service -a "name=vsftpd state=stopped" //关闭httpd服务ansible webserver -m service -a "name=vsftpd state=restarted" //重启httpd服务ansible webserver -m service -a "name=vsftpd state=started enabled=yes" //开启开机自启ansible webserver -m service -a "name=vsftpd state=started enabled=no" //关闭开机自启
6.文件模块
ansible-doc file //查看帮助文档ansible webservice -m file -a "path=/tmp/11.txt mode=771 state=touch" //创建文件ansible webserver -m file -a "path=/tmp/asb mode=770 state=directory" //创建目录
7.收集模块
ansible-doc setup //查看帮助文档ansible host1 -m setup //列出常见常熟ansible host1 -m setup -a "filter=ansible_all_ipv4_addresses" //查询ip地址
7.YAML
YAML Ain’t Markup Language-非标记语言
示例:通过YAML编写一个简单的剧本,完成web的部署,配置,启动的全过程。
1.准备
ansible all -m yum -a "name=httpd state=removed" -o //清理一下环境yum install -y httpd //准备配置文件mkdir apachecd apachecp -rf /etc/httpd/conf/httpd.conf .grep "^Listen" httpd.confListen 8080 //修改端口
2.编写剧本
编写vim apache.yaml- hosts: host2 tasks: - name: install apache packages yum: name=httpd state=present - name: copy apache conf copy: src=./httpd.conf dest=/etc/httpd/conf/httpd.conf - name: ensure apache is running service: name=httpd state=started enabled=yes 测试ansible-playbook apache.yaml --syntax-checkansible-playbook apache.yaml --list-tasksansible-playbook apache.yaml --list-hosts执行ansible-playbook apache.yaml
3.优化
如果我们在配置文件中修改了apache端口号为9000,那么我们再次重启会发现文件会被拷贝过去,但是服务器并没没有重启。因为剧本中写的服务启动,并没有重启服务。需要优化一下剧本代码,如果执行copy语句那么notify会触发,接着会执行handlers中的语句重启服务。- hosts: webserver tasks: - name: install apache packges for xux yum: name=httpd state=latest - name: copy apache conf file for xux copy: src=./httpd.conf dest=/etc/httpd/conf/httpd.conf notify: restart apache service for xux - name: ensure apache si running service: name=httpd state=started enabled=yes handlers: - name: restart apache service for xux service: name=httpd state=restarted
8.Role-角色扮演
roles则是在ansible中,playbooks的目录组织结构。将代码或文件进行模块化,成为roles的文件目录组织结构,易读,代码可重用,层次清晰。
示例:通过role远程部署nginx并配置
1.准备目录
nginx 角色名files 普通文件handlers 触发器程序tasks 主任务templates 金甲模板(有变量的文件)vars 自定义变量
[root@localhost ~]# mkdir roles/nginx/{files,handlers,tasks,templates,vars} -ptouch roles/site.yaml roles/nginx/{handlers,tasks,vars}/main.yamlecho 1234 > roles/nginx/files/index.htmlyum install -y nginx && cp /etc/nginx/nginx.conf roles/nginx/templates/nginx.conf.j2[root@localhost ~]# tree roles/roles/├── nginx│ ├── files│ │ └── index.html│ ├── handlers│ │ └── main.yaml│ ├── tasks│ │ └── main.yaml│ ├── templates│ └── vars│ └── main.yaml└── site.yaml
2.编写任务
vim roles/nginx/tasks/main.yaml- name: install epel-release packge yum: name=epel-release state=latest- name: install nginx packge yum: name=nginx state=latest- name: copy index.html copy: src=index.html dest=/usr/share/nginx/html/index.html- name: copy nginx.conf template template: src=nginx.conf.j2 dest=/etc/nginx/nginx.conf notify: restart nginx- name: make sure nginx service running service: name=nginx state=started enabled=yes
Template:Template模板在运用时与copy模块类似,区别在于可以在Ansible的Playbook执行的时候,根据一定的条件灵活的设置要复制文件中的部分关键内容。在Ansible中,Templat模板使用jinjia2语言进行配置,模板文件的后缀名为.j2。
3.准备配置文件
vim roles/nginx/templates/nginx.conf.j2worker_processes auto; 改成 worker_processes {{ ansible_processor_cores }}; //ansible内置变量worker_connections 1024; 改成 worker_connections {{ worker_connections }}; //自定义变量
4.编写变量
vim roles/nginx/vars/main.yamlworker_connections: 10240
5.编写处理程序
vim roles/nginx/handlers/main.yaml---- name: restart nginx service: name=nginx state=restarted
6.编写剧本
vim roles/site.yaml- hosts: webserver roles: - nginx
7.实施
cd rolesansible-playbook site.yaml --syntax-check //测试ansible-playbook site.yaml //实施剧本
文章内容主要参考:b站磊哥5.Ansible 自动化运维实战
关键词:
ansible Ad-Hoc YAML剧本
简单聊一聊SpringBoot的约定优于配置
读SQL学习指南(第3版)笔记02_数据类型
A股三大指数午后跌幅均超过1% 沪指跌破3100点
怀疑丈夫有外遇 女子网上请“大师”做法“斩桃花”被骗万元
九万多买B级赛车!奕炫MAX 2024款焕新上市
广东省财政厅搭建政府采购“制造业展馆”
广州本周天气晴热为主,有分散雷阵雨
皇庭国际: 关于持股5%以上股东减持计划的预披露公告
融创中国盘中跌破1港元沦为仙股 现跌超10%
促进市场细分,带动行业升级 “机器人来我家帮忙擦窗”
四川启动四级防汛应急响应
郑州一中国际航空港实验学校怎么样
“巴山蜀水·运动川渝”2023川渝小篮球联赛总决赛落幕
pique是什么面料
新凤鸣:全资子公司江苏新拓年产60万吨差别化功能性纤维项目一期投产
海鹰美团终止收购无锡优拓60%股权 财务顾问国融证券
电诈的“前菜”!这种短信别点开
树金字招牌 新疆兵团三团举办首届核桃之恋文化旅游节
简单易学Dremel工具砂光带更换技巧全揭秘
免税经营扣点下降?两大机场紧急澄清
朝鲜高丽航空从平壤至北京的商业航班被取消?外交部回应
商务部:中国旅客旅游消费信心正加快恢复
9月29月18日~10月9日,生活愉快,财运节节攀升的3大属相
盖尔·加朵,求求你别再演这种烂片了
SCFI指数再度转跌!集运市场旺季需求不强供过于求
纽威股份2023年上半年净利3.36亿 同比增加78.04%
2023邛崃南宝山七夕节有什么活动?
东湖评论:“三心服务”激活高质量发展“人才引擎”
国台办:海关总署决定自即日起暂停台湾地区芒果输入大陆
我国首个跨国高等教育质量评估框架出炉
国产首台GPU千亿参数大模型训推一体机发布,优刻得提供灵活算力部署方案
【中国式现代化的京津冀实践】北京研发 天津转化 天津滨海一中关村科技园探索京津两市合作新模式
高质量发展调研行 | 邯郸:为建设现代化区域中心城市积蓄新动能
盟固利涨8.62% 机构净买入5824万元
新主机性能堪忧:任天堂社长称不追求新技术
招商局港口(00144.HK)赎回6亿美元票据
水利部和中国气象局8月21日18时联合发布橙色山洪灾害气象预警
成都国际车展:中国汽车工业70年风雨兼程,未来展望
财政部印发《企业数据资源相关会计处理暂行规定》
爸爸第一次吃自助火锅满脸拘谨 小心翼翼夹东西
缤纷汽车官图亮相:五门四座纯电小车,续航 205km
格力电器首次落榜世界500强 董明珠:企业健康发展更重要
机构出手!多家公募、券商资管掀起自购潮 “市场底“还远吗?
孙红雷在青年导演创扶计划活动上交流表演艺术
江苏省张家港市抽检100批次食品 4批次不合格
医药股快速反弹 通化金马盘中涨停
村小心大!小苇子村生态农业启动绿色经济“新引擎”
“新疆十四运”带火巴州文创
AI 时代,程序员的出路在何方?
录取通知书里的“秘密”与心语,你读懂了吗
证券交易经手费是什么?证券交易经手费是多少?
凯众股份:聘任财务总监贾洁女士为公司董事会秘书
国家发展改革委部署在防汛救灾和灾后恢复重建中大力实施以工代赈
小青柑制作青柑茶 延伸富民产业链
TCL中环继续上调单晶硅片价格
2023年“兴业银行杯”上海城市业余联赛上海市民水上运动嘉年华举行
恒盛地产(00845.HK)8月31日举行董事会会议批准中期业绩
粘纤是什么材质
上海贵酒2023年营收净利双增长,营收增长69.73%,净利增长46.22%
七夕开始,湖南博物院开放夜游!
木洞镇:企业聚爱心 人大代表助力困难学子圆梦大学
献给一线劳动者的慰问演出
中孚信息:公司为多家金融企业提供过网络安全相关产品及解决方案,并与多家客户保持常年合作关系
全男班舞剧《画皮》回归,中式意蕴重构“志异”经典
8月LPR公布:5年期维持4.2%不变 1年期降10个基点
新理论阐释“奇异金属”为何奇异
安全生产严重失信主体名单管理办法出台
永泰运(001228.SZ):上半年净利降25.48%至1.03亿元
美国包包品牌有哪些(美国包包品牌大全)
虎落平阳被犬欺全文阅读(虎落平阳被犬欺全文)
泸州泸县:时尚!新潮!特色“夜间经济”受青睐
飞向太空2002 下载(飞向太空2002)
今日5年期以上LPR为何没降?光大固收:未来信贷增长的趋势是明朗的
鄂股半年报丨华灿光电上半年亏损3.64亿元,逐鹿MLED赛道寻求增长点
东阿阿胶桃花姬新品上市 创新开拓多元化市场
中信银行南京分行“信E采”业务助力中小企业高效融资
街头篮球SFSA总决赛四强集结 星C凉茶领衔终极对决
北上资金大幅减仓五粮液 游资集中博弈次新股丨龙虎榜
隆基机械: 截止到2023年8月18日,公司股东人数为41062
锁定七夕首选《燃冬》首映周冬雨刘昊然屈楚萧齐聚
dnf86复古怀旧公益必看版本介绍
ETF午评丨证券板块全线下跌,证券ETF先锋跌3.36%
奕炫MAX 2024款上市,9.79万元起买赛道级家轿值了
市民“随手拍” 城管来解决 常德“全民城管”平台正式上线
陆家嘴周边医院现“医托” 有人高价买了一堆“廉价货”
中欧基金自购5000万元
2023年南宁蔡琴演唱会举办时间
北大孔庆东
中央气象台:8月下旬西南地区陕西南部等地多降雨,中东部无明显高温天气
滕州:荆河街道彰显“人大作为” 助力乡村振兴
水位上涨、桥没护栏?网友发文称其环卫工父母下班途中落水身亡 浙江龙泉市官方回应
生态甘孜 花鸟家园|如果鸟圈有童话,TA就是“白马王子”
山东平安产险:开展“助销农产品 平安暖人心”爱心助农活动
杭州这项隐藏福利冲上热搜第一!是的,真不用花钱,终身免费!
助受灾地区企业恢复运营 央视频联合拼多多推出专场公益直播
音乐美食全都有!普陀梅川路步行街打造夜生活好去处
镇域经济看单县|谢集镇:创新招商思路 拓宽招商渠道 强化项目服务 促进项目落地
单身贵族很脆弱,易患老年痴呆
三星Galaxy S24 Ultra渲染图曝光:钛金圆角边框