Ansible - 9 - 技巧提示
2023-03-20 15:34:34 时间
Ansible 技巧提示
1 - Ansible 免密登录
# 通过秘钥方式连接
ssh-keygen -t rsa
ssh-copy-id -i /vipxf/.ssh/id_rsa.pub root@192.168.56.101
ssh-copy-id -i /vipxf/.ssh/id_rsa.pub root@127.0.0.1
2 - Ansible playbook输入root密码
[root@test01 ansible-test]# cat test-temp.yaml
---
- name: test-root
hosts: ta
remote_user: vipxf
gather_facts: no
become: yes
become_user: root
become_method: su
become_flags: "-"
vars:
ansible_become_pass: "{{ root_pass_input }}"
tasks:
- name: test
shell: date && sleep 3
ignore_errors: True
[root@test01 ansible-test]#
[root@test01 ansible-test]# ansible-playbook test-temp.yaml -e root_pass_input=redhat
PLAY [test-root] **************************************************************************************************************************************************************************************************************
TASK [test] *******************************************************************************************************************************************************************************************************************
changed: [172.20.8.247]
PLAY RECAP ********************************************************************************************************************************************************************************************************************
172.20.8.247 : ok=1 changed=1 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0
[root@test01 ansible-test]#
3 - Ansible 简单的复用方式
通过关键字include可以实现简单的代码复用。
# 在playbook中,Include 指令可以跟task 混合在一起使用
- tasks:
- include: tasks/foo.yml # 引用配置文件
# 参数化的include
- tasks:
- include: aaa.yml user=anliven # 引用配置文件的同时传入变量
- include: bbb.yml pwd=P@ssw0rd
4 - Ansible task通知多个handlers任务
通过关键字listen为handlers中的一个或多个触发器任务指定主题,task就可以按主题名进行通知。
触发顺序按照handler定义的先后顺序执行。
---
- hosts: ta
remote_user: vipxf
gather_facts: no
vars:
- package: vim
tasks:
- name: test-step one
shell: echo "111"
notify: "test listen" # task通知handlers主题
- name: test-step two
shell: echo "222"
handlers:
- name: check-hostname-date
shell: hostname && date
ignore_errors: True
listen: "test listen" # 按照定义顺序被触发
- name: who-am-i
shell: whoami && date
ignore_errors: True
listen: "test listen" # 按照定义顺序被触发
全文跳转链接
Ansible系列全文地址 :https://www.cnblogs.com/anliven/p/16859401.html
相关文章
- Kotlin Flow响应式编程,基础知识入门
- 死磕操作系统!谷歌重磅发布开源KataOS,网友:「谷歌坟场」喜+1
- 速度与安全可兼得!改造异步布局大幅提升客户端布局性能
- 深入理解 Android Studio Sync 流程
- Sendable 和 @Sendable 闭包代码实例详解
- 一文让你理清PrimaryScrollController
- iOS 16“实时活动”适配灵动岛:显示比分或外卖进度等!
- iOS基于Speech框架的语音识别波浪动图实现
- iOS16新功能被曝耗电严重,暂时别用了!
- 信息架构如何设计?5000字干货帮你快速掌握!
- 免费!批量!无需联网!提取图片文字就靠它!
- 实现模块化应用的本地化
- 如何评测端到端音视频质量?
- iOS 16正式版大翻车,引来果粉无数吐槽!
- SwiftUI 之 HStack 和 VStack 的切换
- Alibaba.com瘦包40MB—业界最全的iOS包大小技术总结
- iOS16值不值得更新,看这几个功能你喜不喜欢。
- iOS 16正式版将至:六大新功能绝了
- 敢做刚当,苹果承认将增加系统广告
- iPhone 14正式发布!从设计师角度聊聊苹果的灵动岛功能