ansible 自动化运维
ansible 部署应用程序 (在操作系统层面之上)
系统初始化过程
主机名,yun源,网络,服务,时间同步,内核参数 (可以在pxe这里完成)
ansible可以方便100多台服务器来变更,不至于pxe重新安装
PXE 预启动的执行环境
PXE (Pre-boot Execution Environment)协议使计算机可以通过网络启动。
当硬盘没有OS时可以选择
光盘
u盘
网络
启动
网络 (网卡) ip 当前的环境也得有dhcp服务器来分配ip 引导程序 启动 安装系统 脚本 anacoda
anacoda.cfg 为预写配置
主控端安装ansible软件就行
pupput
ruby
saltstack
python
安装包
服务 master与agent对接 (属于saltstack) 客户端服务需要汇报心跳
模块化
ansible
python
安装包
基于ssh服务 (被管的客户端,在主机清单写)
模块化
ssh 加密
telent 被抓包都是明文
配一个aliyun的epel源
下载ansible并写主机清单。来测试
[root@workstation ansible]# cat hosts
192.168.230.165
192.168.230.166
[root@workstation ansible]#
红色为报错
黄色有改动,且成功
使用相应的模块完成会更好 虽然shell是万金油
shell不能保证ansible的幂等性 重复执行效果一样
从上图可以看出差别。user模块发现符合要求,则不在重新创建,而shell重新创建且引发了报错
ansible 基于ssh 所以并发连接会受限,ssh并发1000台,那么ssh就会顶不住
ansible可以多级控制 ansible嵌套ansible下发命令
ansible拥有playbook,按顺序执行指令
配置域名,写主机清单
[root@workstation ansible]# cat /etc/hosts
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
192.168.230.164 workstation.example.com workstation
192.168.230.165 servera.example.com servera
192.168.230.166 servera.example.com serverb
[root@workstation ansible]# vi hosts
[root@workstation ansible]# cat hosts
servera
serverb
[root@workstation ansible]#
[root@workstation ansible]# ansible all --list-hosts
hosts (2):
servera
serverb
[root@workstation ansible]#
遇到此问题,手动接收密钥
查看联通性
成功-k后,短时间内就不需要-k了
我使用ssh的哪个用户登录?
[root@workstation ansible]# ansible all -m shell -a 'whoami' -k
SSH password:
serverb | CHANGED | rc=0 >>
root
servera | CHANGED | rc=0 >>
root
登录后的工作目录为家目录
[root@workstation ansible]# ansible servera -m shell -a 'pwd' -u xiaomao -k
SSH password:
servera | CHANGED | rc=0 >>
/home/xiaomao
[root@workstation ansible]#
使用xiaomao来连接,并且发现家目录为xiaomao
通过家目录来判断当前用户更加靠谱
pwd未切换用户,读不到root的环境变量
补充ce内容
提权之后,角色会从普通用户变为root
[xiaomao@servera ~]$ sudo id
uid=0(root) gid=0(root) groups=0(root) context=unconfined_u:unconfined_r:unconfined_t:s0-s0:c0.c1023
[xiaomao@servera ~]$ id
uid=1000(xiaomao) gid=1000(xiaomao) groups=1000(xiaomao) context=unconfined_u:unconfined_r:unconfined_t:s0-s0:c0.c1023
[xiaomao@servera ~]$
[xiaomao@servera ~]$ sudo cat /etc/sudoers.d/xiaomao
xiaomao ALL=(ALL) NOPASSWD:ALL
[xiaomao@servera ~]$
标签:xiaomao,workstation,001,ansible,ssh,原理,root,servera
From: https://www.cnblogs.com/supermao12/p/16631887.html