CC00004.NavigationLog——|Ansible|

一、概述:

### --- 概述:
~~~     Ansible自动化运维工具简介及特点剖析
~~~     Ansible自动化运维工具原理和有点深入理解
~~~     Ansible模块企业实战工具及命令演练
~~~     Ansible自动化运维工具playbook应用实战
~~~     详解Ansible配置文件和高级性能调优

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-6QD4QXJs-1648555379947)(file:///F:/NO.X.01000——备份——为知笔记/temp/3c312025-d205-4eb6-8eb5-04bf384a9822/128/index_files/632325b9-09c9-47d3-962a-ccbf982c3947.jpg)]
二、linux云计算工程师三大和核心职能:
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-qlEqdu1o-1648555379950)(file:///F:/NO.X.01000——备份——为知笔记/temp/3c312025-d205-4eb6-8eb5-04bf384a9822/128/index_files/1e5a80ae-f90c-4c97-9e2b-54a349a089b3.jpg)]

### --- 平台架构组建:
~~~     负责参与并审核架构设计的合理性,搭建运维平台管理架构,通过开源解决方案,
~~~     以确保在产品发布之后能高效稳定的运行,
~~~     保障并不断提升服务的可用性,确保用户数据安全,提升用户体验。
### --- 日常运营保障:
~~~     负责用运维技术或者运维平台确保产品可以高效的发布上线,
~~~     负责保障产品7*24小时稳定运行,在此期间可以对出现的问题可以快速定位并解决,
~~~     在日常工作中不断优化系统架构和部署的合理性,以提升系统服务的稳定性,
### --- 性能效率优化:
~~~     用自动化工具或者运维平台提升软件在研发周期中的工程效率,不断优化系统架构,
~~~     提升部署效率,优化资源利用率,支持产品的不断迭代,需要不断的进行架构的优化调整,
~~~     以确保整个产品能够在功能不断丰富和复杂的条件下,同时保证高可用性。
### --- Ansible是什么:
~~~     Ansible简单说是一个配置管理系统(configuration management system),
~~~     你只需要可以使用ssh访问你的服务器或者设备就行。
~~~     它也不同于其他工具,因为他使用推送的方式,而不是puppet等。
~~~     那样使用拉取安装agent的方式,你可以将代码部署到任意数量的服务器上!
### --- Ansible能做什么:
~~~     Ansible可以帮助我们完成一些批量任务,或者完成一些需要经常重复的公工作;
~~~     比如:同时在100台服务器上安装nginx服务,并在安装后启动他们
~~~     比如:将某个文件一次性拷贝到100台服务器上
~~~     比如:每当有新服务器加入工作环境是,
~~~     你都要为新服务器部署某个服务,也就是你需要经常重复的完成相同的工作。
~~~     这些场景我们都可以使用到Ansible

三、Ansible架构:
在这里插入图片描述

### --- Ansible架构:
~~~     右边绿色是我们被管理的主机(虚拟机、物理机、云主机等)
~~~     从以上架构图中可以看出Ansible是由主机清单(配置),playbook(配置),
~~~     以及各模块插件组成,简单的说就是,
~~~     用户(管理员)通过Ansible的主机清单配置或playbook配置(一组任务)
~~~     调用Ansible的各种模块及参数来对,清单中的主机进行统一的管理。
~~~     Ansible可以工作在linux、BSD、Mac OS、等平台,
~~~     对Python环境的版本最低要求为Python2.6以上,如果操作系统Python软件版本为2.4,
~~~     需要升级方可使用Ansible工具;

四、配置Ansible实战:

### --- 硬件环境:
~~~     Ansible-server端:        192.168.1.60
~~~     Ansible-client端:          192.168.1.70
~~~     Ansible-client端:           192.168.1.71
~~~     Ansible-client端:            192.168.1.72
### --- 安装方式:
~~~     源码安装 ,pip,yum安装;
~~~     Centos Red Hat操作系统可以直接基于YUM工具自动安装Ansible,
~~~     Centos6.x或者Centos7.x安装前,需要安装epel扩展源,代码如下:

五、Ansible部署

### --- 环境准备
~~~     # 安装扩展源
[root@localhost ~]# yum -y install epel-release                                     // 安装扩展源
[root@localhost ~]# yum install -y ansible
 (11/15): ansible-2.9.14-1.el7.noarch.rpm  
[root@localhost ~]# ansible --version                                               // 查看它的版本
ansible 2.9.14 
python version = 2.7.5 
~~~     # 可以查看到它的配置文件
 
[root@localhost ~]# ll /etc/ansible/
-rw-r--r-- 1 root root 19985 10月  8 01:35 ansible.cfg                   // 此文件为Ansible的主配置文件
-rw-r--r-- 1 root root  1016 10月  8 01:35 hosts                         // 定义主机组的
drwxr-xr-x 2 root root     6 10月  8 01:35 roles                         // 定义不同角色
### --- Ansible主机清单
~~~     # Ansible主机清单:
~~~     # Ansible远程批量管理,其中执行命令是通过Ad-Hoc来完成,
~~~     # 也几点对点单条执行命令,能够快速执行,而且不需要保存执行的命令,
~~~     # 默认hosts文件配置主机列表,可以配置分组,可以定义各种ip及规则,hosts列表默认配置。
[root@localhost ansible]# cat hosts |more                               // 查看Ansible主机清单
[root@localhost ansible]# vim hosts 
### ---  them like this:
[web]                                                                   // 定义了一个组名
192.168.1.[70:72]                                                       // 定义了组内的主机、    70/71/72主机
[web]                                                                   // 或者这样定义也可以
192.168.1.70
192.168.1.71
192.168.1.72
### --- ping模块实战
~~~     # Ansible最基础的模块为ping模块,主要用判断客户端是否在线,用ping本身的服务器,范沪指changed ping;
~~~     # ansible web -m ping  //使用Ansible对web组内的主机进行ping模块测试
[root@localhost ansible]# ansible web -m ping
Are you sure you want to continue connecting (yes/no)?                  // 提示没有配置秘钥对,解决方案针对问题一
[root@localhost ~]# ansible web -m ping
192.168.1.70 | SUCCESS => {
    "ansible_facts": {
        "discovered_interpreter_python": "/usr/libexec/platform-python"
    }, 
    "changed": false, 
    "ping": "pong"
}
192.168.1.72 | SUCCESS => {
    "ansible_facts": {
        "discovered_interpreter_python": "/usr/libexec/platform-python"
    }, 
    "changed": false, 
    "ping": "pong"
}
192.168.1.71 | SUCCESS => {
    "ansible_facts": {
        "discovered_interpreter_python": "/usr/libexec/platform-python"
    }, 
    "changed": false, 
    "ping": "pong"
}
### --- command模块:
~~~     # command模块:
~~~     # Ansible command模块为Ansible默认模块,主要用于执行linux命令,
~~~     # 可以在直接管理远程服务器,任务操作等。
[root@localhost ~]# ansible web -m command -a "date"
192.168.1.71 | CHANGED | rc=0 >>
Wed Nov  4 14:25:03 UTC 2020
192.168.1.70 | CHANGED | rc=0 >>
Wed Nov  4 14:25:03 UTC 2020
192.168.1.72 | CHANGED | rc=0 >>
Wed Nov  4 14:25:03 UTC 2020
 
[root@localhost ~]# ansible web -m command -a "ping -c 1 www.baidu.com" 
[root@localhost ~]# ansible web -m command -a "yum install httpd -y"
[root@localhost ~]# ansible web -m command -a "systemctl start httpd.service"
[root@localhost ~]# ansible web -m command -a "ss -tan"             // 查看端口

六、Ansible Playbook应用:

### --- Ansible Playbook应用:
### --- Playbook由一个或多个“paly”组成的列表,
### --- play的主要功能Ansible中的Task定义好的角色,指定剧本对应的服务器组;
### --- 远程安装nginx服务器脚本;playbook代码如下;
[root@localhost ~]# vim nginx_install.yaml
~~~ 脚本内容;
-host:web
 remote_user:root
 tasks:
 -name:cvc Pcre-devel and Zlib LIB Install.
  yum:name=pcre-devel,pcre,zlib-devel,gcc-c++ state=installed
 -name:cvc Nginx WEB Server Install Process.
 shell:cd /tmp;rm -rf nginx-1.15.0.tar.gz;wget
http://nginx.org/download/nginx-1.15.0.tar.gz;tar xzf nginx-1.15.0.tar.gz;cd nginx-1.15.0;./configure --prefix=/usr/local/nginx;make,make isntall
### --- 执行脚本在三台主机上部署nginx
[root@localhost ~]# ansible-playbook nginx_install.yam1 -vvv

附录一:

### --- 报错现象
[root@localhost ansible]# ansible web -m ping
The authenticity of host '192.168.1.71 (192.168.1.71)' can't be established.
ECDSA key fingerprint is SHA256:+fXgJ0vWlg+shAIaDf+FJKJrFrdECU/NOXu5iVz3fuU.
ECDSA key fingerprint is MD5:bb:c7:9f:3b:69:7e:8c:cc:12:04:23:59:c1:ce:b5:df.
Are you sure you want to continue connecting (yes/no)? The authenticity of host '192.168.1.72 (192.168.1.72)' can't be established.
ECDSA key fingerprint is SHA256:+fXgJ0vWlg+shAIaDf+FJKJrFrdECU/NOXu5iVz3fuU.
ECDSA key fingerprint is MD5:bb:c7:9f:3b:69:7e:8c:cc:12:04:23:59:c1:ce:b5:df.
Are you sure you want to continue connecting (yes/no)? The authenticity of host '192.168.1.70 (192.168.1.70)' can't be established.
ECDSA key fingerprint is SHA256:+fXgJ0vWlg+shAIaDf+FJKJrFrdECU/NOXu5iVz3fuU.
ECDSA key fingerprint is MD5:bb:c7:9f:3b:69:7e:8c:cc:12:04:23:59:c1:ce:b5:df.
Are you sure you want to continue connecting (yes/no)?
### --- 报错分析
### --- 错误提示:没有和远程主机配置秘钥对,可以使用ssh-keygen配置秘钥对
### --- 解决方案:免秘钥配置
[root@localhost ~]# ssh-keygen
[root@localhost ~]# ssh-copy-id -i /root/.ssh/id_rsa.pub   -p 22 root@192.168.1.70  //将秘钥对拷贝到目标主机。
[root@localhost ~]# ssh 192.168.1.70                                    // 测试目标配置是否成功
Last login: Sun Nov  1 06:29:29 2020 from 192.168.1.101
[root@cb687a8072d1 ~]# ip add
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

yanqi_vip

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

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

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

打赏作者

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

抵扣说明:

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

余额充值