【Ansible】Ansible部署

本文介绍了如何使用Ansible进行主机管理和自动化部署。首先,通过配置静态清单和SSH密钥认证来添加和验证主机。然后,展示了如何使用Ansible的`ping`模块测试连接,以及使用`copy`模块复制文件到远程主机。此外,还提到了`yum`模块安装软件包和`service`模块管理服务。
摘要由CSDN通过智能技术生成

Ansible部署

一、添加主机

(1)清单

清单是定义了Ansible要管理的一批主机,分为静态清单和动态清单

(2)静态清单

可单独定义主机,每行一个,也可以定义主机组,用[]括起来

样例:

[root@osp ~]# vim /etc/ansible/hosts

请添加图片描述

清单可以通过正则表达式来表示主机范围

(3)验证主机是否属于清单
[root@osp ~]# ansible 172.16.10.9 --list-hosts
  hosts (1):
    172.16.10.9

若验证成功则可以开始进行密钥设置

若不成功可能原因为主机设置错误,可查看/etc/ansible/hosts进行修改

(4)配置SSH密钥认证
[root@network ~]# ssh-keygen
Generating public/private rsa key pair.
Enter file in which to save the key (/root/.ssh/id_rsa): 
Enter passphrase (empty for no passphrase): 
Enter same passphrase again: 
Your identification has been saved in /root/.ssh/id_rsa.
Your public key has been saved in /root/.ssh/id_rsa.pub.
The key fingerprint is:
SHA256:jSE91C8qp8Aggx+xonToDK6/TxJz140soSulldhILQc root@network.example.com
The key's randomart image is:
+---[RSA 2048]----+
|  E     ..       |
|  .o   o  .      |
|. +oo o +  .     |
|*++B o = B. .    |
|B=*+B o S.o.     |
|.+.Boo..o        |
|. + o. +         |
|.  +  .          |
| .oo.            |
+----[SHA256]-----+
一直回车即可
[root@osp ~]# ssh-copy-id 172.16.10.9  #此处需要填入被管理主机地址
/usr/bin/ssh-copy-id: INFO: Source of key(s) to be installed: "/root/.ssh/id_rsa.pub"
/usr/bin/ssh-copy-id: INFO: attempting to log in with the new key(s), to filter out any that are already installed
/usr/bin/ssh-copy-id: INFO: 1 key(s) remain to be installed -- if you are prompted now it is to install the new keys
root@172.16.10.9's password:    #这里需要输入被管理主机密码

Number of key(s) added: 1

Now try logging into the machine, with:   "ssh '172.16.10.9'"
and check to make sure that only the key(s) you wanted were added.

(5)进行ansible Ping测试
[root@osp ~]# ansible all -m ping

请添加图片描述

若出现此类错误,可能原因为hosts配置错误,或者是对方端口或者服原因导致ssh失败

请添加图片描述

Ansible中ping不仅是测试连通性,还需要进行ssh测试

二、Ansible模块使用

模块类别模块
文件模块copy:将本地文件复制到受管主机
file:设置文件的权限和其他属性
linuinfile:确保特定行是否在文件中
synchronzie:使用rsync同步内容
软件包模块package:使用操作系统本机的自动检测软件包管理器管理软件包
yum:使用yum软件包管理器管理软件包
apt:使用APT软件包管理器管理软件包
dnf:使用DNF软件包管理软件
gem:管理Ruby gem
pip:从pip管理Python软件包
系统模块firewalld:使用firewalld管理任意端口和服务
reboot:重启计算机
service:管理服务
user:添加删除和管理用户账户
Net Tools模块get_url:通过HTTP、HTTPS或者FTP下载文件
nmcli:管理网络
uri:与web交互
Copy模块使用
[root@osp ~]# ansible all -m copy -a "src=/root/yum.sh dest=/root"
172.16.10.9 | CHANGED => {
    "ansible_facts": {
        "discovered_interpreter_python": "/usr/bin/python"
    }, 
    "changed": true, 
    "checksum": "59f0d4a57aca78af5a2de2d1b6a3f743cc56b19d", 
    "dest": "/root/yum.sh", 
    "gid": 0, 
    "group": "root", 
    "md5sum": "c8b63e1cb629efd2e2e83886ceaee79b", 
    "mode": "0644", 
    "owner": "root", 
    "size": 1851, 
    "src": "/root/.ansible/tmp/ansible-tmp-1658216908.4-19466-48483588382868/source", 
    "state": "file", 
    "uid": 0
}

请添加图片描述

[root@network ~]# ls
anaconda-ks.cfg  yum.sh
Copy各类参数
参数名作用
src指定需要copy的文件或者目录
dest指定拷贝到主机的哪个目录
yum模块

格式:ansible 172.16.10.10 -m yum -a “name=httpd state=installed”

参数作用
name指定软件名称信息
state操作软件状态installed、present与absent、removed
latest安装最新软件
服务模块

service

[root@localhost~]# ansible 172.16.10.10 -m service -a "name=crond state=started enabled=yes"
参数作用
enabled设置服务是否为开启自启动
name启动或者停止的服务器名称
staterestarted(重启)started(启动)stopped(停止)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

ACHAI:)

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值