ansible 命令的使用

前言

我们在工作中经常会通过一台机器对多台机器进行管理,ansible 是一个linux 管理多台工具的利器。这里对工作常用一些命令进行展示。

实践

如果要使用ansible 那么第一步便是下载和安装ansible

一、下载安装部分

1.1 下载安装ansible

yum install ansible -y

1.2 ansible 配置其余需要操作机器信息

由于我们是需要操作多台机器,那么肯定是需要知道需要操作机器的信息。
/etc/ansible/hosts 是主机清单配置文件,由 ansible.cfg文件中的 inventory 变量配置,默认值为/etc/ansible/hosts

参数名称作用说明举例
ansible_ssh_host用于指定被管理的主机的真实IPansible_ssh_host=192.168.1.1
ansible_ssh_port用于指定连接到被管理主机的ssh端口号,默认是22ansible_ssh_port=25
aansible_ssh_userssh连接时默认使用的用户名ansible_ssh_user=root
ansible_ssh_passssh连接时的密码aansible_ssh_pass=test1234

hosts 中具体写法举例:
[compile]–> 中括号内为分组名,可以对某一类型的服务器进行分类,执行命令时,可按照组进行操作。
[compile]
name1 ansible_ssh_host=192.168.1.1 ansible_ssh_user=root ansible_ssh_pass=test1234
name2 ansible_ssh_host=192.168.1.2 ansible_ssh_user=root ansible_ssh_pass=test1234

全部一起调用
ansible all -m ping
按名称调用
ansible name1 -m ping
按ip调用
ansible 172.16.79.233 -m ping
按组调用
ansible compile-m ping
两个组一起调用,以":"连接多个组
ansible compile:compile2 -m ping

1.3 关闭host key 检查
这个时候直接对配置机器进行调用会报如下错误,这个时候需要我们关闭
/etc/ansible/ansible.cfg 中的

将host_key_checking 前面的#去掉,不再检查host key

# uncomment this to disable SSH key host checking
host_key_checking = False

在这里插入图片描述

二、常用命令

参数:

ansible可用的选项如下:
-v:输出详细的执行过程信息,可以得到执行过程所有的信息。
-i PATH:指定inventory信息,默认为/etc/ansible/hosts。
-f:并发线程数,默认为5个线程。
–private-key=PRIVATE_KEY_FILE:指定密钥文件。
-m:指定执行使用的模块。
-M:指定模块的存放路径,默认为/usr/share/ansible,也可以通过ANSIBLE_LIBRARY来设定默认路径。
-a:指定模块参数。
-u:指定远程主机以哪个用户运行命令。
-l:限制运行主机,等同于“–limit”。
–list-hosts:列出符合条件的主机列表,不执行任何命令。

常用模块:
command模块和shell模块:

注意: command和shell的区别:
command只能调用一条指令
shell可以使用管道
不支持别名

# 使用shell 创建用户组 用户,并将用户加入用户组
ansible compile -f 5 -m shell -a "groupadd deploy && adduser citool && usermod -a -G deploy  citool"

# 使用command 创建一个目录
ansible compile -f 5 -m shell -a "cd ~ && mkdir -p  ansible_test" -u citool -K

# 如果要使用管道需要使用shell
ansible compile -m shell -a "df -h |grep /$" -f 3

yum模块:
name —指定要安装的软件包名称,如果有多个,用“,”隔开
state —指定使用yum的方法
installed,present —安装软件包
removed,absent —移除软件包
latest —安装最新软件包

# 也给compile 组的机器安装ansible 机器
ansible compile  -m yum -a "name=ansible  state=installed"

copy模块:
src —推送数据的源文件信息
dest —推送数据的目标路径
backup —对推送传输过去的文件,进行备份
content —直接批量在被管理文件中添加内容
group —将本地文件推送到远端,指定文件属组信息
owner —将本地文件推送到远端,指定文件属主信息
mode —将本地文件推送到远端,指定文件权限信息

#把本机目录的test.sh 拷贝到 ansible_test 目录,并设置目标目录的文件用户citool 分组为deploy
ansible compile -f 5 -m copy -a "src=/usr/local/src/test.sh dest=/home/citool/ansible_test owner=citool group=deploy"

三、切换使用用户

#在不使用密码的情况下
ansible owner -m shell -a "whoami" -b --become-method su --become-user deployop 
#需要输入登陆密码
ansible owner -m shell -a "whoami" -b --become-method su --become-user root --ask-become-pass -K
  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值