Ansible 简介

Ansible 是一款 IT 自动化工具。主要应用场景有配置系统、软件部署、持续发布及不停服平滑滚动更新的高级任务编排。

Ansible 本身非常简单易用,同时注重安全和可靠性,以最小化变动为特色,使用 OpenSSH 实现数据传输 ( 如果有需要的话也可以使用其它传输模式或者 pull 模式 ),其语言设计非常利于人类阅读,即使是针对不刚接触 Ansible 的新手来讲亦是如此。

我们坚信无论什么范围的环境,简单都是必须的,所以我们的设计尽可能满足各类型的繁忙人群:开发人员、系统管理员、发布工程师、IT 管理员等所有类型的人。同时, Ansible 适用于各种环境,小到几台多到成千上万台的企业实际环境都完全满足。

Ansible 不使用C/S架构管理节点,即没有 Agent 。这样的架构使得 Ansible 不会存在如何升级远程 Agent 管理进程或者因为没有安装 Agent 而无法管理系统。因为 OpenSSH 是非常流行的开源组件,安全问题也非常少 。Ansible 的 去中心化 管理方式深受业内认可, 即它只依赖 OS 的 KEY 认证访问远程主机。如需, Ansible 可以便捷接入 Kerberos, LDAP 或者其它认证系统。

安装ansible工具

root@Ansible:~# apt update && apt install ansible
root@Ansible:~# apt install sshpass

创建秘钥

root@Ansible:~# 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:ZlnekfYdDkp4AA2zZLysbtr8Epcp6tMgFB2TGEY/zFU root@Ansible
The key's randomart image is:
+---[RSA 3072]----+
|.++oo.oE+. |
|.o+oo o.o.o . |
| .= .....o+. . |
| . . o +oo.oo..|
|. . S ... ...|
| . . + * |
| . = + |
| oo= |
| .o+oo. |
+----[SHA256]-----+
root@Ansible:~# 批量拷贝脚本 root@Ansible:~# vim copy_ssh_id.sh root@Ansible:~# cat copy_ssh_id.sh
#!/bin/bash
rm -f ./authorized_keys; touch ./authorized_keys
sed -i '/StrictHostKeyChecking/s/^#//; /StrictHostKeyChecking/s/ask/no/' /etc/ssh/ssh_config
sed -i "/#UseDNS/ s/^#//; /UseDNS/ s/yes/no/" /etc/ssh/sshd_config cat hostsname.txt | while read host ip pwd; do
sshpass -p $pwd ssh-copy-id -f $ip 2>/dev/null
ssh -nq $ip "hostnamectl set-hostname $host"
ssh -nq $ip "echo -e 'y\n' | ssh-keygen -q -f ~/.ssh/id_rsa -t rsa -N ''"
echo "===== Copy id_rsa.pub of $ip ====="
scp $ip:/root/.ssh/id_rsa.pub ./$host-id_rsa.pub
#cat ./$host-id_rsa.pub >> ./authorized_keys
echo $ip $host >> /etc/hosts
done root@Ansible:~#

添加主机信息

root@Ansible:~# vim hostsname.txt

root@Ansible:~# cat hostsname.txt
node 192.168.1.2 123123
node 192.168.1.3 123123
node 192.168.1.4 123123
node 192.168.1.5 123123
node 192.168.1.6 123123
node 192.168.1.7 123123
node 192.168.1.8 123123
node 192.168.1.9 123123 ------

fetch模块:

copy模块:

1、从远程主机获取文件:

root@Ansible:~# ansible k8s -m fetch -a "src=/root/node.sh dest=/root/test"

2、从本地主机传到远程:
root@Ansible:~# ansible k8s -m copy -a "src=/root/node.sh dest=/root" 3、远程复制或者本地上传,加上force=yes,则会覆盖掉原来的文件,加上backup=yes,在覆盖的时候会把原来的文件做一个备份:
root@Ansible:~# ansible k8s -m copy -a "src=/root/node.sh dest=/root force=yes backup=yes" 4、复制的时候可以带参数:owner,group,mode

---------

将本地的源拷贝到服务器上

root@Ansible:~# ansible k8s -m copy -a "src=/etc/apt/sources.list dest=/etc/apt/"

更新源

root@Ansible:~# ansible k8s  -m  command -a 'apt update'

安装ntpdate

root@Ansible:~# ansible k8s  -m  command -a 'apt install ntpdate'

同步时间

root@Ansible:~# ansible k8s  -m  command -a 'ntpdate -u ntp.aliyun.com'

修改时区

root@Ansible:~#
root@Ansible:~#
root@Ansible:~# ansible k8s -m command -a 'cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime' 查看是否修改 root@Ansible:~#
root@Ansible:~# ansible k8s -m command -a 'date -R '
192.168.1.13 | CHANGED | rc=0 >>
Thu, 11 Nov 2021 14:52:57 +0800
192.168.1.10 | CHANGED | rc=0 >>
Thu, 11 Nov 2021 14:52:57 +0800
192.168.1.14 | CHANGED | rc=0 >>
Thu, 11 Nov 2021 14:52:57 +0800
192.168.1.12 | CHANGED | rc=0 >>
Thu, 11 Nov 2021 14:52:57 +0800
192.168.1.11 | CHANGED | rc=0 >>
Thu, 11 Nov 2021 14:52:57 +0800
192.168.1.15 | CHANGED | rc=0 >>
Thu, 11 Nov 2021 14:52:57 +0800
192.168.1.51 | CHANGED | rc=0 >>
Thu, 11 Nov 2021 14:52:57 +0800
192.168.1.52 | CHANGED | rc=0 >>
Thu, 11 Nov 2021 14:52:57 +0800
192.168.1.16 | CHANGED | rc=0 >>
Thu, 11 Nov 2021 14:52:57 +0800
192.168.1.53 | CHANGED | rc=0 >>
Thu, 11 Nov 2021 14:52:57 +0800
192.168.1.55 | CHANGED | rc=0 >>
Thu, 11 Nov 2021 14:52:58 +0800
192.168.1.54 | CHANGED | rc=0 >>
Thu, 11 Nov 2021 14:52:58 +0800
192.168.1.57 | CHANGED | rc=0 >>
Thu, 11 Nov 2021 14:52:58 +0800
192.168.1.56 | CHANGED | rc=0 >>
Thu, 11 Nov 2021 14:52:58 +0800
root@Ansible:~#
root@Ansible:~#

https://blog.csdn.net/qq_33921750

https://my.oschina.net/u/3981543

https://www.zhihu.com/people/chen-bu-yun-2

https://segmentfault.com/u/hppyvyv6/articles

https://juejin.cn/user/3315782802482007

https://space.bilibili.com/352476552/article

https://cloud.tencent.com/developer/column/93230

知乎、CSDN、开源中国、思否、掘金、哔哩哔哩、腾讯云

Ansible 安装并简单使用的更多相关文章

  1. Ansible安装及简单使用备注

    1.安装epel源: rpm -ivh https://dl.fedoraproject.org/pub/epel/epel-release-latest-6.noarch.rpm 2.安装: yum ...

  2. 第1天:Ansible安装部署

    Ansible介绍 Ansible是一个简单的自动化引擎,可完成配置管理.应用部署.服务编排以及各种IT需求.它是一款使用Python语言开发实现的开源软件,其依赖Jinjia2.paramiko和P ...

  3. ansible自动化工具安装和简单使用

    ansible自动化工具安装和简单使用 1.安装 ansible依赖于Python 2.6或更高的版本.paramiko.PyYAML及Jinja2. 2.1 编译安装 解决依赖关系 # yum -y ...

  4. 15.Ansible安装与配置简单版

    Ansible是一个简单高效的自动化运维管理工具,用Python开发,能大批量管理N多台机器,可以并发的在多台机器上部署应用.安装软件.执行命令.配置和编排任务. 一.Ansible工作机制 从图中可 ...

  5. 初探ansible安装

    一.ansible介绍常用的自动化运维工具 Puppet —基于 Ruby 开发,采用 C/S 架构,扩展性强,基于 SSL,远程命令执行相对较弱SaltStack —基于 Python 开发,采用 ...

  6. ansible安装二进制kubernetes-1.14.1

    主机信息: 主机IP 主机名 角色 10.10.3.181 k8s-m1  kube-apiserver,kube-controller-manager,kube-scheduler,etcd 10. ...

  7. Ansible安装部署以及常用模块详解

    一.  Ansible 介绍Ansible是一个配置管理系统configuration management system, python 语言是运维人员必须会的语言, ansible 是一个基于py ...

  8. 一、Ansible安装

    1:安装ansible ,选择的是yum 安装,简单,ansible的管理端必须是Linux系统       YUM是一个shell前端软件包管理器.基于RPM包管理,能够从指定的服务器自动下载RPM ...

  9. Ansible安装 入门教程

    learn一门新技术咯: ansible是新出现的自动化运维工具,基于Python开发,集合了众多运维工具(puppet.cfengine.chef.func.fabric)的优点,实现了批量系统配置 ...

  10. ansible安装配置及最佳实践roles

    ansible是什么? ansible是一款轻量级配置管理工具,用于远程批量部署.安装.配置.类似的还有puppet.saltstack,各有所长,任君自选. 官方文档:http://docs.ans ...

随机推荐

  1. docker安装常用软件

    linux安装docker 1.安装gcc相关 yum install gcc -y yum install gcc-c++ -y 2.安装工具包 #安装工具包 yum -y install yum- ...

  2. 第8章 使用标记帮助工具构建表单(ASP.NET Core in Action, 2nd Edition)

    本章包括 使用Tag Helpers轻松构建表单 使用锚标记帮助程序生成URL 使用Tag Helpers为Razor添加功能 在第7章中,您了解了Razor模板以及如何使用它们为应用程序生成视图.通 ...

  3. 2003031120—廖威—Python数据分析第七周作业—MySQL的安装以及使用

    项目    内容 课程班级博客链接 https://edu.cnblogs.com/campus/pexy/20sj 这个作业要求链接  https://edu.cnblogs.com/campus/ ...

  4. ASP.NET Core 读取配置文件信息

    一:读取配置文件 先来看一下appsettings.json文件的内容,如下图: { "ConnectionStrings": { "ServerConnection&q ...

  5. 第一天1h

    //摄氏度和华氏度之间的换算//20211120//ZhangWenjing#include<stdio.h>int main(void){ int f = 0; int c = 0; s ...

  6. K8S二进制单节点部署

    一.常见的k8s部署方式 1.inikube: Minikube是一个工具,可以在本地快速运行一个单节点微型K8s,仅用于学习预览K8s的一些特性使用 部署地址: https://kubernetes ...

  7. 在Windows平台上利用CMD命令行来压缩和解压缩.tar.gz压缩包

    解压命令: tar -xzvf dwt.tar.gz -C tmp/ 上述命令将dwt.tar.gz压缩包解压到tmp/文件夹 压缩命令: tar -czvf dwt.tar.gz dwt/ 上述命令 ...

  8. Vue 的下拉刷新指令

    loadmore: { //自定义指令: 下拉加载 bind(el, binding) { let p = 0; let t = 0; let down = true; el.addEventList ...

  9. docker安装pgsql

    aliyun环境docker安装并使用postgres121.拉取postgres镜像docker pull postgres:12 2.检查现有镜像docker images 3.启动postgre ...

  10. loadrunner添加头部

    web_add_auto_header("token_id", "{token_id}"); 或 web_add_header("token_id&q ...