Ansible简单部署与使用

目录

环境

  • Ubuntu 20.04

安装Ansible

apt install

bash 复制代码
sudo apt install ansible

markupsafe error

安装成功后,尝试运行ansible,部分环境下会有如下报错:

bash 复制代码
ubuntu@ubuntu:~$ ansible --version
Traceback (most recent call last):
  File "/usr/bin/ansible", line 62, in <module>
    import ansible.constants as C
  File "/usr/lib/python3/dist-packages/ansible/constants.py", line 12, in <module>
    from jinja2 import Template
  File "/usr/lib/python3/dist-packages/jinja2/__init__.py", line 33, in <module>
    from jinja2.environment import Environment, Template
  File "/usr/lib/python3/dist-packages/jinja2/environment.py", line 15, in <module>
    from jinja2 import nodes
  File "/usr/lib/python3/dist-packages/jinja2/nodes.py", line 23, in <module>
    from jinja2.utils import Markup
  File "/usr/lib/python3/dist-packages/jinja2/utils.py", line 656, in <module>
    from markupsafe import Markup, escape, soft_unicode
ImportError: cannot import name 'soft_unicode' from 'markupsafe' (/home/ubuntu/.local/lib/python3.8/site-packages/markupsafe/__init__.py)

上述报错通常是markupsafe版本不兼容导致,查看markupsafe的版本:

bash 复制代码
ubuntu@ubuntu:~$ pip show markupsafe
Name: MarkupSafe
Version: 2.1.5
Summary: Safely add untrusted strings to HTML/XML markup.
Home-page: https://palletsprojects.com/p/markupsafe/
Author:
Author-email:
License: BSD-3-Clause
Location: /home/ubuntu/.local/lib/python3.8/site-packages
Requires:
Required-by: Werkzeug

回退到2.0.1版本可以解决:

bash 复制代码
python -m pip install markupsafe==2.0.1

ansible可成功运行:

bash 复制代码
ubuntu@ubuntu:~$ ansible --version
ansible 2.9.6
  config file = /etc/ansible/ansible.cfg
  configured module search path = ['/home/ubuntu/.ansible/plugins/modules', '/usr/share/ansible/plugins/modules']
  ansible python module location = /usr/lib/python3/dist-packages/ansible
  executable location = /usr/bin/ansible
  python version = 3.8.10 (default, Nov 22 2023, 10:22:35) [GCC 9.4.0]

配置Ansible

创建个人目录

为了不影响系统配置,可以在个人的自定义目录下运行ansible,基于个人的配置文件:

bash 复制代码
mkdir -p /home/ubuntu/mydir/ansible

ansible.cfg

拷贝系统的cfg文件到个人目录下进行修改:

bash 复制代码
cp /etc/ansible/ansible.cfg /home/ubuntu/mydir/ansible

修改cfg文件:

powershell 复制代码
[defaults]
inventory      = /home/ubuntu/mydir/ansible/hosts

[privilege_escalation]
become=True
become_method=sudo
become_user=root
become_ask_pass=False

hosts

拷贝系统的hosts文件到个人目录下进行修改:

bash 复制代码
cp /etc/ansible/hosts /home/ubuntu/mydir/ansible

修改hosts文件:

powershell 复制代码
[my_test]
#10.5.3.202 ansible_ssh_port=22 ansible_ssh_user=test ansible_ssh_pass='123' ansible_su_pass='123'
10.5.3.202

[my_test:vars]
ansible_ssh_user=test
ansible_ssh_pass="123"

测试Ansible

ping

测试受控主机的连通性:

bash 复制代码
ubuntu@ubuntu:~/mydir/ansible$ ansible my_test -m ping
10.5.3.202 | SUCCESS => {
    "ansible_facts": {
        "discovered_interpreter_python": "/usr/bin/python"
    },
    "changed": false,
    "ping": "pong"
}

批量执行自定义命令

常用命令

bash 复制代码
ansible my_test -m shell -a "bash xxx.sh"
ansible my_test -m copy -a "src=/home/ubuntu/xxx.sh dest=/home/test/ mode=775"
ansible my_test -m file -a "path=/home/test/xxx.sh group=test owner=test"
相关推荐
独行soc8 分钟前
#渗透测试#批量漏洞挖掘#HSC Mailinspector 任意文件读取漏洞(CVE-2024-34470)
linux·科技·安全·网络安全·面试·渗透测试
BD_Marathon12 分钟前
Ubuntu下Tomcat的配置
linux·ubuntu·tomcat
饥饿的半导体36 分钟前
Linux快速入门
linux·运维
BD_Marathon1 小时前
Ubuntu:Tomcat里面的catalina.sh
linux·ubuntu·tomcat
BD_Marathon1 小时前
设置LInux环境变量的方法和区别_Ubuntu/Centos
linux·ubuntu·centos
Me4神秘1 小时前
Linux国产与国外进度对垒
linux·服务器·安全
zhaowangji1 小时前
ubuntu 20.04 安装中文输入法 (sougou pin yin)
linux·ubuntu
老纪的技术唠嗑局2 小时前
OceanBase PoC 经验总结(二)—— AP 业务
数据库
两斤半2 小时前
Debian TTY环境乱码
linux·debian
阿里云大数据AI技术2 小时前
OpenSearch 视频 RAG 实践
数据库·人工智能·llm