特殊标签
always除非--skip-tags选项指定,否则 always 标签的task会一直执行never除非--tags选项指定,否则 never 标签的task都不会执行tagged不包括never的所有标签untagged所有无标签和always标签all包括非never标签和无标签
选项
# 如果执行 ansible-playbook 时不指定标签 , 则会执行所有非 never 标签的任务--tags "tag1,tag2..."执行指定标签和always标签的tasks--tags always只执行always标签的tasks--tags all执行所有非never标签和无标签的tasks--tags never执行always和never标签的tasks--tags tagged执行所有标签的tasks,但不包括never标签的tasks--tags untagged执行所有无标签和always标签的tasks--skip-tags "tag1,tag2..."跳过指定标签的tasks--list-tags查看playbook中哪些tags会被执行
tags示例
tasks:- name: install packageyum: name={{ packagename }} state=latesttags:- always- name: copy configuration filecopy: src=https://www.huyubaike.com/root/conf/httpd.conf dest=/etc/httpd/conf/httpd.conftags: conf,http
命令示例
ansible-playbook nginx_tags.yaml--tags "testtag,t2"
Ansible Playbook 调试(Debug)
- Print statements during execution
- 在Ansible Playbook中常使用debug模块,可以在Playbook执行过程打印调试信息
- 结合when条件语句一起使用时,可以调试特定条件下的执行过程
# msg输出自定义信息,如果不指定或不写msg的话,默认也会输出“null”# var- 指定要打印的变量名 , 与msg参数互斥,二者只能有一个- var参数中的变量不需要使用{{}}表达式,而msg中需要# verbosity- debug的调试级别,默认0是全部显示 , 级别调整到3是忽略内容不显示- 在命令中使用-vvv参数 , 可以在设置为3情况下仍然显示debug内容
示例tasks:- name: Host run this taskdebug: 'msg="{{ ansible_fqdn }} and {{ ansible_default_ipv4.address }}"'# 打印必要信息when: ansible_memtotal_mb < 500 and ansible_processor_cores == 2# 结合when使用- name: all host run this taskshell: hostnameregister: info- name: Hostname is webserver01 Machie run this taskdebug: 'msg="{{ ansible_fqdn }}"'when: info['stdout'].startswith('Success')- name: Show debug infodebug: var=info verbosity=1# 打印var变量信息,调试级别为1
Ansilbe 加密解密ansible-vault 用途- encryption/decryption utility for Ansible data files
- 主要应用于包含敏感信息的场景,可以加密和解密敏感信息
- See 'ansible-vault--help' for more information on a specific command.
# ansible-vault -husage: ansible-vault [-h] [--version] [-v]{create,decrypt,edit,view,encrypt,encrypt_string,rekey}...encryption/decryption utility for Ansible data filespositional arguments:{create,decrypt,edit,view,encrypt,encrypt_string,rekey}createCreate new vault encrypted filedecryptDecrypt vault encrypted fileeditEdit vault encrypted fileviewView vault encrypted fileencryptEncrypt YAML fileencrypt_stringEncrypt a stringrekeyRe-key a vault encrypted fileoptional arguments:--versionshow program's version number, config file location, configured module search path, module location, executable location and exit-h, --helpshow this help message and exit-v, --verboseverbose mode (-vvv for more, -vvvv to enable connection debugging)See 'ansible-vault <command> --help' for more information on a specific command.
ansible-vault 常用命令# 加密文件ansible-vault encrypt test-vault.ymlansible-vault encrypt test-vault.yml --vault-password-file pwdfile# 解密文件ansible-vault decrypt test-vault.ymlansible-vault decrypt test-vault.yml --vault-password-file pwdfile# 查看文件ansible-vault view test-vault.ymlansible-vault view test-vault.yml --vault-password-file pwdfile# 重置文件密码ansible-vault rekey test-vault.ymlansible-vault rekey test-vault.yml --vault-password-file pwdfile --new-vault-password-file pwdfilenew# 创建加密文件ansible-vault create test-vault.ymlansible-vault create test-vault.yml --vault-password-file pwdfile# 编辑加密文件ansible-vault edit test-vault.ymlansible-vault edit test-vault.yml --vault-password-file pwdfile# 加密字符串ansible-vault encrypt_string 'test123456'ansible-vault encrypt_string 'test123456' --name 'ansible_ssh_pass'ansible-vault encrypt_string 'test123456' --name 'ansible_ssh_pass' --vault-id anliven@pwdfile
ansible-vault "--vault-id"选项# 从ansible2.4版本开始,官方推荐使用"--vault-id"选项代替"--vault-password-file"选项指定密码文件# “--vault-id prompt”功能上等同于"--ask-vault-pass"选项# 支持同时使用多个密码文件进行解密,适用于“引用其他文件”的场景# 可以在被加密文件中包含特定字符“做记号”ansible-vault encrypt_string 'test123456' --name 'ansible_ssh_pass' --vault-id pwdfile# 加密字符串ansible-vault encrypt test-vault.yml --vault-id pwdfile# 加密文件ansible-vault encrypt test-vault.yml --vault-id anliven@pwdfile# 加密完成后的文件内容包含anliven字符ansible-vault decrypt test-vault.yml --vault-id pwdfile# 解密文件ansible-vault view test-vault.yml --vault-id pwdfile# 查看文件ansible-vault edit test-vault.yml --vault-id pwdfile# 编辑文件ansible-vault rekey test-vault.yml --vault-id pwdfile# 交互式密码重置ansible-vault rekey test-vault.yml --vault-id pwdfile--new-vault-id pwdfilenew# 通过新密码文件重置ansible-playbook test-vault.yml --vault-id pwdfile# 运行playbookansible-playbook test-vault.yml --vault-id pwdfile1 --vault-id pwdfile2# 提供多个密码文件来解密,test-vault.yml中引用其他vault加密文件ansible-playbook test-vault1.yml test-vault2.yml --vault-id pwdfile1 --vault-id pwdfile2# 提供多个加密文件来解密多个文件
推荐阅读
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- Web自动化---解决登录页面随机验证码问题
- 小样本利器4. 正则化+数据增强 Mixup Family代码实现
- 从0搭建vue3组件库:自动化发布、管理版本号、生成 changelog、tag
- ansible使用临时命令通过模块来执行任务
- Ansible 批处理实战
- ansible应用之安装elk框架
- app自动化测试环境安装
- reportportal 集成 robotframework 自动化执行及结果可视化
- Android自动化测试工具调研
- 五 微软出品自动化神器【Playwright+Java】系列 之常见点击事件操作