ansible实操入门

ansible 自动化运维

1、环境

1、python虚拟环境

1、安装虚拟环境程序

bash 复制代码
pip install virtualenv

2、创建虚拟环境

利用 virtualenv [虚拟环境名称] 来创建虚拟Python环境,在虚拟环境里用pip安装的包都会安装到当前的虚拟环境中。

bash 复制代码
$ virtualenv cms

如果系统里安装了不同的Python版本,可以使用--python来指定虚拟环境的python版本。

bash 复制代码
$ virtualenv --python /usr/local/webserver/python3.6/bin/python3.6 cms

默认情况下虚拟环境不会依赖系统环境的site-packages,如果想依赖系统环境的site-packages,可以使用--system-site-packages来设置。

bash 复制代码
$ virtualenv --system-site-packages cms

启动和退出虚拟环境

启动虚拟环境:activate

bash 复制代码
[...]$ source cms/bin/activate
(cms)[...]$

退出虚拟环境:deactivate

bash 复制代码
(cms)[...]$ deactivate
[...]$

使用virtualenvwrapper

virtualenvwrapper是virtualenv的扩展工具,可以方便的创建、删除、复制、切换不同的虚拟环境。

bash 复制代码
$ pip install virtualenvwrapper

virtualenvwrapper提供了如下命令来操作虚拟环境:

  • 创建虚拟环境:mkvirtualenv [虚拟环境名称]

  • 列出虚拟环境:lsvirtualenv

  • 切换虚拟环境:workon [虚拟环境名称]

  • 查看当前环境安装了哪些包:lssitepackages

  • 进入当前环境的目录:cdvirtualenv [子目录名]

  • 进入当前环境的site-packages目录:cdsitepackages [子目录名]

  • 控制当前环境是否使用global site-packages:toggleglobalsitepackages

  • 复制虚拟环境:cpvirtualenv [source] [dest]

  • 退出虚拟环境:deactivate

  • 删除虚拟环境:rmvirtualenv [虚拟环境名称]

2、安装ansible

bash 复制代码
pip install ansblie
#支撑环境
复制代码

2、第一次尝试

1. 创建inventory配置文件

bash 复制代码
vi hosts

2. 为配置文件添加数据

bash 复制代码
alpine01 ansible_host=192.168.174.138 ansible_port=22 ansible_user=username ansible_ssh_pass=userpassword ansible_sudo_exe=su ansible_sudo_pass=password ansible_become_method=su ansible_become_user=root ansible_become_pass=password
​
alpine02 ansible_host=192.168.174.139 ansible_port=22 ansible_user=username ansible_ssh_pass=userpassword ansible_sudo_exe=su ansible_sudo_pass=password ansible_become_method=su ansible_become_user=root ansible_become_pass=password
复制代码

配置文件解析

  • hostname:第一个单词代表主机名

  • ansible_host:代表主机地址

  • ansible_port:ssh端口

  • ansible_user:ssh用户名

  • ansible_ssh_pass:ssh密码

  • ansible_sudo_exe:提权命令路径

  • ansible_become_method:提权命令

  • ansible_sudo_pass:提权命令密码(错误❌)

  • ansible_become_user:提权用户

  • ansible_become_pass:提权命令密码(正确✔)

分组

复制代码
[testgroup]
alpine01
alpine02

使用hosts 组名来表示这一组

或者可以在命令行用 -l 选项限定主机列表:

bash 复制代码
ansible -l testgroup all -m ping

3. 运行命令

1、 ping

bash 复制代码
ansible all -m ping -i hosts 
## all指所有主机 -m指定模块 -i指定配置文件

2、 sudo 更新

bash 复制代码
ansible all -a "apk update" -i hosts -b
## -a表示命令 -b表示主动提权
相关推荐
李永奉几秒前
杰理芯片SDK开发-ENC双麦降噪配置/调试教程
人工智能·单片机·嵌入式硬件·物联网·语音识别
Dfreedom.10 分钟前
图像滤波:非线性滤波与边缘保留技术
图像处理·人工智能·opencv·计算机视觉·非线性滤波·图像滤波
小白跃升坊21 分钟前
基于1Panel的AI运维
linux·运维·人工智能·ai大模型·教学·ai agent
kicikng24 分钟前
走在智能体前沿:智能体来了(西南总部)的AI Agent指挥官与AI调度官实践
人工智能·系统架构·智能体协作·ai agent指挥官·ai调度官·应用层ai
测试者家园27 分钟前
测试用例智能生成:是效率革命,还是“垃圾进,垃圾出”的新挑战?
人工智能·职场和发展·测试用例·测试策略·质量效能·智能化测试·用例设计
GIS瞧葩菜27 分钟前
Cesium 轴拖拽 + 旋转圈拖拽 核心数学知识
人工智能·算法·机器学习
MMME~29 分钟前
Ansible Playbook高效自动化实战指南
网络·自动化·ansible
njsgcs30 分钟前
dqn和cnn有什么区别 dqn怎么保存训练经验到本地
人工智能·神经网络·cnn
AndrewHZ38 分钟前
【AI黑话日日新】什么是AI智能体?
人工智能·算法·语言模型·大模型·llm·ai智能体
跃渊Yuey39 分钟前
【Linux】线程同步与互斥
linux·笔记