首页 > 其他分享 >ansible入门指南 - ansible的常用命令

ansible入门指南 - ansible的常用命令

时间:2023-08-18 16:22:38浏览次数:44  
标签:入门 -- CHANGED rc yaml ansible 常用命令 chino

ansible的常用命令

运行ansible命令的时候会使用 ansible.cfg 配置文件
配置文件优先级为 ANSIBLE_CONFIG 指定的文件 > ~/.ansible.cfg > /etc/ansible/ansible.cfg

ansible

ansible命令可以用来运行 ad-hoc 指令

ansible-config

配置文件相关的功能, 可以运行以下命令生成一个默认的配置文件

ansible-config init --disabled > ansible.cfg

ansible-console

交互式的解释器, 用来指向ansible tasks, 可以用来同时在多个服务器上执行同一个命令

(base) ➜ chino@chino-igs  ~/examples/ansible  ansible-console -i inventory.yaml all
Welcome to the ansible console. Type help or ? to list commands.

chino@all (3)[f:5]$ echo $USER
tomcat | CHANGED | rc=0 >>
chino
tomcat2 | CHANGED | rc=0 >>
chino
tomcat1 | CHANGED | rc=0 >>
chino
chino@all (3)[f:5]$ pwd
tomcat1 | CHANGED | rc=0 >>
/home/chino
tomcat2 | CHANGED | rc=0 >>
/home/chino
tomcat | CHANGED | rc=0 >>
/home/chino
chino@all (3)[f:5]$

也可以使用--become-user, 在所有机器上同时以root用户身份执行任务


(base) ➜ chino@chino-igs  ~/repos/examples/ansible  ansible-console -i inventory.yaml all --become-user root --become
Welcome to the ansible console. Type help or ? to list commands.

chino@all (3)[f:5]# whoami
tomcat | CHANGED | rc=0 >>
root
tomcat2 | CHANGED | rc=0 >>
root
tomcat1 | CHANGED | rc=0 >>
root
chino@all (3)[f:5]#

ansible-doc

ansible-doc 命令用来查看模块的信息

# 查看user模块的输入输出
ansible-doc user
# 查看user模块的playbook片段
ansible-doc -s user

ansible-galaxy

用来操作role或者collection

ansible-inventory

查看inventory信息

(base) ➜ chino@chino-igs  ~/repos/examples/ansible  ansible-inventory -i inventory.yaml --graph
@all:
  |--@ungrouped:
  |--@prod:
  |  |--tomcat1
  |  |--tomcat2
  |--@uat:
  |  |--tomcat

ansible-playbook

在目标主机上执行指定的playbook

ansible-pull

一般用于机器从远程代码库上拉playbook, 然后本地执行. 可以用来执行定期巡检任务

ansible-pull -i localhost, -U [email protected]:test/test.git playbook.yaml

ansible-vault

用于加密变量文件, 保护密码等敏感信息

# 创建加密的vars.yaml文件, 按照提示输入密码
ansible-vault create vars.yaml
# 查看加密的文件内容
ansible-vault view vars.yaml
# 解密文件
ansible-vault decrypt vars.yaml
# 加密变量, password保存密码
ansible-vault encrypt_string --vault-password-file password "testencryptstr" --name myencstr
# 输出
Encryption successful
myencstr: !vault |
          $ANSIBLE_VAULT;1.1;AES256
          35333334383837333233616438623739376331303739636331613663363563306439326461303366
          6464336536613431386432613366613565316466653937630a613961616263613835636264313131
          30616538393337343862666163336366306138623534316665396365323939633565313164666236
          6561396537383738350a653634386237646537356435643136623133323234646135383566343434
          3834
# 输出的变量保存到myencvar.yaml文件中, 然后运行下面的命令解密字符串
ansible localhost -m ansible.builtin.debug -a var="myencstr" -e "@myencvar.yaml" --vault-id password
# 输出结果
[WARNING]: No inventory was parsed, only implicit localhost is available
localhost | SUCCESS => {
    "myencstr": "testencryptstr"
}

标签:入门,--,CHANGED,rc,yaml,ansible,常用命令,chino
From: https://www.cnblogs.com/Chinori/p/17640856.html

相关文章

  • C++快速入门 第四十二讲:链接和作用域
    与作用域有关的另一个概念是链接,当同时编译多个文件时,每个源文件被称为一个翻译单元,在某一个翻译单元里定义的东西在另一个翻译单元里使用正是链接发挥作用的地方。存储类(storageclass):每个变量都有一个存储类,它决定着程序将把变量的值储存在计算机的什么地方、如何存储、以及变......
  • C++快速入门 第四十三讲:链接和作用域2
    1header.h文件23#ifndefHEADER_H4#defineHEADER_H56unsignedlongreturnFactorial(unsignedshortnum);7staticconstunsignedshortheaderNum=5;//定义静态恒定值的全局变量89#endif1011that.cpp文件:1213#include"header.h"14uns......
  • C++快速入门 第四十五讲:类模板
    类模板与函数模板非常相似,同样是先由你编写一个类的模板,再由编译器在你第一次使用这个模板时生成的实际代码。实例:栈的出入栈1#include<iostream>2#include<string>34template<classT>5classStack//栈类6{7public:8Stack(unsignedintsize=......
  • C++快速入门 第四十四讲:函数模板swap使用
    泛型编程技术支持程序员创建函数和类的蓝图(即模板,template),而不是具体的函数和类。标准模板库STL(StandardTemplateLibrary),STL库是泛型编程技术的经典之作,它包含了许多非常有用的数据类型和算法。当拥有一个模板时,编译器将根据模板自动创建一个函数,该函数会使用正确的数据类型......
  • C++快速入门 第四十六讲:内联模板
    内联函数从源代码层看,有函数的结构,而在编译后,却不具备函数的性质。编译时类似宏替换,使用函数体替换调用处的函数名。(在程序中,调用其函数时,该函数在编译时被替换,而不是像一般函数那样是在运行时被调用)实例:栈1#include<iostream>2#include<string>34template<class......
  • C++快速入门 第四十七讲:容器和算法
    C++标准库提供的向量(vector)类型从根本上解决了数组先天不足的问题(内存固定,如果不用那么多内存编译器也会为其分配)我们用不着对一个向量能容纳多少元素做出限定,因为向量可以动态地随着你往它里面添加元素而无限增大。还可以用它的size()方法查知某给定向量的当前长度(即包含的元素......
  • C++快速入门 第三十六讲:副本构造器
    我们可以把一个对象赋值给一个类型与之相同的变量,编译器将生成必要的代码把“源”对象各属性的值分别赋值给“目标”对象的对应成员。这种赋值行为称之为逐位复制。(但如果某些成员变量是指针的话,对象成员逐位复制的结果是你将拥有两个一模一样的实例,而这两个副本里的同名指针会指......
  • 软件测试|测试平台开发-Flask 入门:编写第一个简单 Web 应用
    简介Flask是一个轻量级的PythonWeb框架,它使得创建Web应用变得简单快捷。相比于Django框架,它具有以下的优点:轻:Flask是一个轻量级的Web框架,使用Python语言编写易:较其他同类型框架更为灵活、轻便且容易上手快:小型团队在短时间内就可以完成功能丰富的中小型网站或Web服务......
  • C++快速入门 第三十八讲:避免内存泄漏
    如果程序会运行很长时间(例如在服务器上,注意不是所有的操作系统都像windows一样每天都要重启),并且在不停地申请新的内存块,忘记释放那些已经不再有用的老内存迟早会把内存消耗殆尽,直接导致后边的new操作无法执行甚至崩溃。动态内存是没有作用域的,所以必须由程序员来跟踪它们......
  • C++快速入门 第三十七讲:高级强制类型转换
    实例1:静态强制转换1#include<iostream>2#include<string>34usingnamespacestd;5classCompany6{7public:8Company(stringtheName,stringproduct);9virtualvoidprintInfo();1011protected:12stringname;13......