Ansible快速复习
阅读原文时间:2023年08月15日阅读:2

本文章是上一篇ansible自动化运维的快速复习以及项目上用到的一些命令,针对长时间未使用ansible,导致命令忘记的同学,帮助快速回忆。详细内容还是看上一章‘ansible自动化运维’。

查看版本

ansible --version

工作目录

/etc/ansible/ansibel.cfg  &&  /root/.ansible.cfg  &&  ./ansible.cfg  ansible   工作目录优先级从小到大

ssh免密登录

A服务器:
ssh-keygen -t rsa
scp /root/.ssh/id_rsa.pub B服务器IP:/root/.ssh
B服务器:
cat /root/.ssh.id_rsa.pub  >> /root/.ssh/authorized_keys

ansible配置文件

remote_user 在被管理主机登录时的用户名
ask_pass  是否输入ssh密码
become  连接后是否在被管理主机上切换用户(通常为root)
become_method 切换用户方式(通常为sudo)
become_user  在被管理主机上切换到用户(通常为root)
become_ask_pass 切换用户时是否输入密码,默认为false

ansible临时命令

ansible   主机或主机组  -m  module  [-a `module arguments`]  [-i inventory]
ansible -i myhosts webserver  -m  command -a "touch  /tmp/ansible.txt"
ansible  -i myhosts  webserver  -m yum  -a "name=zsh  state=latest"

playbook格式

---
- name: playbookname
   hosts: webservers
   tasks:
         - name:  playname
            模块:
                  参数:
                  参数:
         - name:  playname
            模块:
                  参数:
                  参数:
         - name:  playname
            模块:
                  参数:
                  参数:

playbook运行

ansible-playbook site.yml  运行playbook   -vvvv提供四级详细信息
ansible-playbook  --syntax-check  webserver.yml     playbook语法验证
ansible-playbook  -C  webserver.yml     模拟运行
ansible-doc  module_name  查看模块信息

vars定义变量

vars:
变量名: 变量
或  变量文件路径
ansible-playbook main.yml -e "package=apache"  命令行覆盖变量

创建角色

ansible-galaxy init apache 创建apache角色

tasks:包含角色要执行的主要任务列表
handlers:包含处理程序,可以由此角色使用,甚至可以在此角色之外的任何位置使用
defaults:角色默认的变量
vars:角色其他的变量
files:包含可以通过此角色部署的文件
templates:包含可以通过此角色部署的模板
meta:角色定义的一些元数据

其它命令

ansible-vault create filename   创建加密文件

ansible-vault create --vault-password-file=密码文件   test_vault2.yml   指定密码文件创建加密yml

ansible-vault view test_vault.yml   查看加密文件但不打开编辑

ansible-vault edit test_vault.yml   编辑加密文件

ansible-vault encrypt test.yml   加密已存在的文件    --output=test2.yml  加密时另存为文件

ansible-vault decrypt test1.yml   解密文件   --output=test3.yml  解密时另存为文件

ansible-vault rekey test.yml  更改加密文件密码    --new-vault-password-file=密码文件

ansible-playbook --vault-id 密码/密码文件   test.yml   运行加密的palybook

ansible-inventory --graph  查看主机清单

when  inventory_hostname in groups['dev']   常用when语句

ansible-galaxy list 查看已安装角色

ansible-galaxy  install -r yml文件   安装角色

Ansible 主机名 -m setup | grep ***查看  使用setup模块查看自带变量

block: 定义要运行的主要任务
rescue: 定义要在block子句中定义的任务失败时运行的任务
always: 定义始终都独立运行的任务,不论block和rescue子句中定义的任务是成功还是失败

date +%s |sha256sum |base64 |head -c 20 ;echo  随机密码生成