Python自动化运维作业——作业4
更新地址:
作业要求
1)VMware中,创建3台Linux虚拟机,虚拟机均在一个网段,可以互相ping通。3台虚拟机均安装Python,主控端安装Ansible。
2)设置主机清单,其中包含连个被控端的分组,组名为自己姓名,如下图所示。
3)列出配置过的主机列表,如下图所示。
4)将主控端公钥复制到被控端的所有主机。
5)使用ping模块,免密登陆被控端,测试主机的连通性,如下图所示。
1)VMware中,创建3台Linux虚拟机,虚拟机均在一个网段,可以互相ping通。3台虚拟机均安装Python,主控端安装Ansible。
如果你已经有虚拟机了,可以直接用咧,希望你还保留着一些。
下面内容是重新安装一个:
下面内容是重新安装一个:
1.0 懒人包:
见文章末尾下载链接(500M+1G)
1.1 下载镜像安装包:
随便找一个或者用下面的链接自动下载:
下面这个链接会自动取选地址,并且下载,应该挺快,我这里有57mb/s
https://mirrors.cernet.edu.cn/debian-cd/current/amd64/iso-dvd/debian-12.5.0-amd64-DVD-1.iso
1.2 安装系统
如果你的VMware已经被你卸载了:
下这个文件,里面有你需要的东东:(右键这个蓝色的链接,然后选另存为,或者你可以看懂锟斤拷也可以)https://p.dabbit.net/blog/pic_bed/sharex/_pn-2024-04-15-18-31-02_Wallaby_Dim_Awesome.txt
- 新建虚拟机
安装个系统,一直点下一步就行,注意几个小地方(4/5/6/7)
a. hostname 记得改一下
b. 空间设置大一点
c. 不建议自动安装,建议手动安装。
d. 咱因为控制虚拟机大小,桌面环境就不装了。(但是如果你之前电脑宿主机和虚拟机经常连不上(ping不通),我建议你装一个图形环境,然后下个todesk,直接远程控制好复制命令。)
e. 咱只截图了不是一直点下一步的步骤。
- 开机,记得网卡选NAT模式。
1.3 开机,登陆之后ip addr查看IP地址
ip addr
- 因为是debian,所以默认不能root登陆,要用你新建的用户名登陆
这一步推荐使用SSH工具,而不是跟我这样随便用命令行。可以用MobaXterm什么的。
ssh dayi@192.168.59.149
ssh [你的用户名]@[虚拟机IP]
1.4 安装python
a. su
切换到root
b. nano /etc/apt/sources.list
修改源
c. 添加修改:
deb http://mirrors.ustc.edu.cn/debian stable main contrib non-free non-free-firmware
deb http://mirrors.ustc.edu.cn/debian stable-updates main contrib non-free non-free-firmware
deb http://mirrors.ustc.edu.cn/debian-security/ stable-security main non-free contrib
d. 改成这样ctrl+s (注意第一行注释掉),然后ctrl+x退出
e. 安装python
apt update
apt install python3-pip -y
f. 看看有没有python3
pip -V
1.5 克隆两个虚拟机,然后开机后修改hostname
开机之后,查看IP地址(命令:ip addr
) ,然后改下hostname
su
hostnamectl set-hostname ovo-1
hostnamectl set-hostname ovo-2
hostnamectl set-hostname ovo-3
hostnamectl set-hostname 【这个是你想要的主机名】
bash # 看看生没生效
大概这个样子:
我这里想分发方便一点,所以直接装了俩个新的。
1.6 测试是否相互ping通
实际上只需要在意master跟其他的是否相通。
然后记录一下他们的IP,之后可能会用到哦
我这边的IP:
python-master 192.168.59.149
py-ovo1 192.168.59.154
py-ovo2 192.168.59.151
py-ovo3 192.168.59.153
测试是否能ping通:
(这里可以快速启一个ssh,但是不一定好用)
用工具登录到python-master
上:
ping 192.168.59.154
ping 192.168.59.151
ping 192.168.59.153
我这里都能ping通:
1.7 安装Ansible
课本上:
- debian系 系统 (apt的包管理器)(我这里用这个方法)
该步骤ubuntu可以正常安装,debian请看下文 [安装] :
su
apt install sudo
sudo su
apt-get install software-properties-common
apt-add-repository ppa:ansible/ansible
apt update
apt install ansible -y
- centos 系统
yum install ansible
- pip安装
debian系会提示要求用apt安装(报错特征:python3-xyz)。如果出现可以用apt install python3-ansible
来代替下面的命令
pip3 install ansible -i https://mirrors.ustc.edu.cn/pypi/web/simple
官网:
相关链接:
- pipx 安装 https://pipx.pypa.io/stable/
- ansible 安装 https://docs.ansible.com/ansible/latest/installation_guide/intro_installation.html
debian:
# 安装pipx
sudo apt update
sudo apt install pipx
pipx ensurepath
sudo pipx ensurepath --global # optional to allow pipx actions with --global argument
# 安装ansible
pipx install --include-deps ansible
其他系统同理,可以看下链接。
安装:
这里我用的debian,步骤后,报错:
这样做:
su
apt install sudo -y
sudo apt-get install software-properties-common
sudo echo "deb http://ppa.launchpad.net/ansible/ansible/ubuntu trusty main" >> /etc/apt/sources.list
sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 93C4A3FD7BB9C367
sudo apt update
sudo apt install ansible
不出意外的画没报错。
ansible命令补全(可选)
pip3 install argcomplete -i https://mirrors.ustc.edu.cn/pypi/web/simple --break-system-packages
你可以测试一下:
ansible --version
2.0 设置主机清单,其中包含连个被控端的分组,组名为自己姓名,如下图所示。
2.1 先设置允许root通过ssh登陆
如果你发现root用户无法通过ssh登陆到主机(会提示密码错误什么的):(主控机和被控机)
su
echo "PermitRootLogin yes" >> /etc/ssh/sshd_config
systemctl restart sshd
这样就好啦。主控机和被控机都做一下
如果你发现可以直接root登陆就不用做这一步了。
2.2 设置免密登陆
在master上
su #直接用root了,方便,可以用其他用户
ssh-keygen -t rsa # 生成RSA密钥 一直回车就可以
复制密钥到其他的几个被控机器上。(会提示输入密码和yes)
ssh-copy-id root@192.168.59.154
ssh-copy-id root@192.168.59.151
ssh-copy-id root@192.168.59.153
测试免密登陆
ssh root@192.168.59.154
这样不输入密码就登陆上就可以啦(退出的话输入exit)
2.3 写配置文件
mkdir -pv /etc/ansible/
nano /etc/ansible/hosts
文件内容类似这样:
py-ovo1 ansible_host=192.168.59.154
py-ovo2 ansible_host=192.168.59.151
py-ovo3 ansible_host=192.168.59.153
[dayi]
py-ovo1
py-ovo2
[ovo]
py-ovo3
localhost ansible_connection=local
ctrl+s 保存文件
ctrl+x 退出
3.0 3)列出配置过的主机列表,如下图所示。
命令:
ansible all --list
ansible dayi --list
ansible ovo --list
回显:
root@python-master:/home/dayi# ansible all --list
hosts (4):
py-ovo1
py-ovo2
py-ovo3
localhost
root@python-master:/home/dayi# ansible dayi --list
hosts (2):
py-ovo1
py-ovo2
root@python-master:/home/dayi# ansible ovo --list
hosts (2):
py-ovo3
localhost
root@python-master:/home/dayi#
3.1 没用的:
你如果有服务器的话,可以添加上你自己滴,密钥登陆同理
like this:
这里我加了个docker容器
4.0 4)将主控端公钥复制到被控端的所有主机。
这里已经做啦。详细见【2.1】和【2.2 设置免密登陆】
5.0 完活? 5)使用ping模块,免密登陆被控端,测试主机的连通性,如下图所示。
ansible -m ping dayi
ansible -m ping all #全部滴
当当:
感觉没问题啦
5.1 可能出现的问题
如果没python可能会出现这种:
装上就好啦
5.2 是哒就这些啦
ovo
6.0 虚拟机/文件下载
用户名 root 密码123456
用户名 dayi 密码123456
新建用户命令adduser xxx
文件下载:
有什么好的网盘求推荐一下,特别那种分享不限速的。(可以自建网盘嘛)(穷,小文件还好,这种一下子好几G的流量吃不消)
【超级会员V7】通过百度网盘分享的文件:python自动…
链接:https://pan.baidu.com/s/1ifdpFtvwP5eHG8bBR3X3CQ?pwd=d45t
提取码:d45t
复制这段内容打开「百度网盘APP 即可获取」
(熊曰:呋食很樣圖現洞嚄呱告喜氏蜂呆噔怎誒森嗷怎誒雜噗物哈偶襲告洞吃樣嗚既冬堅嚄類住森啽果吖我吖家啽呆哮擊象哈嗥哈冬類註哮嗥噗怎誒達咬發非唬唬類啽取嗚很誘嗅唬拙歡吃哞拙囑嗅眠性拙偶捕魚嗥出啽怎沒樣類咯噤性人註嗥噤食襲萌更達唬擊溫嗷喜呱性嘍啽嗡洞類性我洞破嗷嚄嘶誘咯魚嗚更嗚眠我萌山果有呱住嘍爾咯噤出呆嘶非魚山物住溫果呦啽寶麼嚁爾盜樣擊咯嗄誘訴冬蜜出嗥吖象誒和取嗥麼爾更歡住眠堅噔嗡雜嘶魚寶嗄註出告嘶眠山洞呆爾笨誒家怎嗷象有怎誒捕動歡意出襲訴擊怎吖吖呆訴哞冬襲拙堅笨呱呆咯既更萌嗥既怎拙吖覺呱嗒我哞嚄冬爾山既啽笨樣更哮更嚁住呱森現物)
(有SVIP是真的快)doge
master主节点已经传完了(500M),剩下的其实什么linux都可以用啦。快照里可能有你需要的还原点。
没救,一大堆反应这个问题的,但是好像没有一个解决的
山东联通晚高峰限速,50mbps -> 5mbps 直接传不动
真的服了这破联通了。(熊曰:呋食食眠擊發襲動噔擊呦唬咯洞嗒萌咯沒呦性氏食襲吖誘嘍誒冬山性我哮嗡嗥誒動破非喜會樣覺)
https://music.163.com/song?id=1327337964&userid=5194682097 (你敢点一下嘛)