ansible
本篇文章需要构建用户级Ansible操作环境
可以根据ansible 自动化运维工具 学习笔记一 (ansible安装、ansible简单测试、ansible清单、ansible配置文件)来进行配置
ansible实现管理的方式
Ad-Hoc
利用ansible命令直接完成管理,主要用于临时命令使用场景playbook
ansible脚本,主要用于大型项目场景,需要前期的规划
Ad-Hoc执行方式中如何获得帮助
ansible-doc
显示模块帮助的指令
ansible-doc [参数] [模块...]
常用参数:
-l ##列出可用模块
-s ##显示指定模块的playbook片段
列出所有可用模块
ansible-doc -l
ansible-doc shell -l #显示shell模块的详细使用方法
ansible-doc shell -s #显示shell模块的playbook片段
ansible命令运行方式及常用参数
格式:
ansible 清单 -m 模块 -a 模块参数
清单里面是受控主机ip,组是list
常用参数
--version ##显示版本
-m module ##指定模块,默认为command模块
-v ##详细过程 -vv -vvv更详细过程
--list ##显示主机列表,也可以用--list-hosts
-k ##提示输入ssh连接密码,默认key认证
-C ##预执行检测
-T ##执行命令的超时时间,默认10s
-u ##指定远程执行的用户
-b ##执行sudo切换身份操作
-become-user=USERNAME ##指定sudo的用户
-K ##提示输入sudo密码
ansible的基本颜色代表信息
绿色 ##执行成功但为对远程主机做任何改变
黄色 ##执行成功并对远程主机做改变
红色 ##执行失败
ansible中的常用模块
为了做实验,我们这里把devops用户级的默认清单修改成一个组,这个组的受控主机为172.25.21.200
command
功能: 在远程主机执行命令,此模块为默认模块
常用参数:
chdir ##执行命令前先进入到指定目录
cmd ##运行命令指定
creates ##如果文件存在将不运行
removes ##如果文件存在在将运行
示例:
ansible主机在远程主机node执行命令,创建一个用户pwc
[devops@ansible ansible]$ ansible list -m command -a "useradd pwc"
ansible主机在远程主机node执行进入到etc目录,如果文件passwd存在,那么不运行cat passwd
[devops@ansible ansible]$ ansible list -m command -a "chdir=/etc creates=/etc/passwd cat passwd "
shell
功能:和command功能类似
常用参数:
chdir ##执行命令前先进入到指定目录
cmd ##运行命令指定
creates ##如果文件存在将不运行
removes ##如果文件存在在将运行
free_form ##在远程主机中执行的命令,此参数不需要加
executable ##指定执行环境,默认为sh
示例:
在ansible主机在远程list组的主机制定执行命令环境为sh或者bash
[devops@ansible ansible]$ ansible list -m shell -a "executable=sh ps ax | grep $$ " -k
[devops@ansible ansible]$ ansible list -m shell -a "executable=bash ps ax | grep $$ " -k