ansible笔记-(4)-常用模块-文件 *** 作

ansible笔记-(4)-常用模块-文件 *** 作,第1张

blockinfile模块可以帮助我们在指定的文件中插入一段“文本”,这段文件是被标记的,换句话说就是,我们在这段文件上做了记号,以便在以后的 *** 作可以通过“标记”找到这段文本。然后进行修改或删除。单靠这样的描述不容易理解,结合下面的示例应该就很快的明白了。敬歼念

为方便举例,我们将/etc/rc.d/rc.local文件复制到/testdir目录中去,以做测试 :cp cp /etc/rc.d/rc.local /testdir/

我们在/testdir/rc.local文件末尾添加两行命令

我们可以借用lineinfile模块,确保“某一行文本”存在于指定的文亮困件中,或者确保从文件中删除指定文本改闹(即确保指定的文本不存在于文件中)。还可以根据正则表达式,替换“某一行文件” 通俗的讲这个相当于liunx的sed命令。

接下来我们看一下lineinfile模块常用的一些参数

我们新建立files文件

Ansible使用

/etc/ansible/ansible.cfg 主配置文件 ansible的配置文件

/etc/ansible/hosts Inventory 要衫毁远程控制的主机列表

/usr/bin/ansible-doc 帮助文件

/usr/bin/ansible-playbook 指定运行任务文件

默认: /etc/ansible/hosts

inventory file可以有多个,且也可以通过Dynamic Inventory来动态生成。

参考解释例子ansible_ssh_host将要连接的远程主机名.与你想要设定的主睁扒机的别名不同的话,可通过此变量设置.ansible_ssh_host=192.169.1.123ansible_ssh_portssh端口号.如果不是默认的端口号,通过此变量设置.ansible_ssh_port=5000ansible_ssh_user默认的 ssh 用户名ansible_ssh_user=cxpadminansible_ssh_passssh 密码(这种方式并不悉塌昌安全,我们强烈建议使用 --ask-pass 或 SSH 密钥)ansible_ssh_pass=’123456’

ansible2.0,ansible_ssh_user, ansible_ssh_host, ansible_ssh_port已经改变为ansible_user, ansible_host, ansible_port。具体参考官网

http://docs.ansible.com/ansible/latest/intro_inventory.html

常见的模块及使用参考: ansible基本使用教程 - 陈小跑 - 博客园

命令行方式一次只能执行单条命令,如果命令量较多,可以使用playbook的方式。 https://segmentfault.com/a/1190000038230424

playbook使用yaml格式编写。组成结构如下:

举例如下:

使用参考: https://segmentfault.com/a/1190000038230424

"msg": "Using a SSH password instead of a key is not possible because Host Key checking is enabled and sshpass does not support this. Please add this host's fingerprint to your known_hosts file to manage this host."

通常情况下,通过&指定的后台任务在终端退出后会自动退出执行。一般来说,加上nohup即可在后台一直执行。但在使用ansible时,发现 ansible all -m shell -a 'nohup cmd &' 命令无法在后台一直执行。后来想了个办法,将命令写入脚本,然后通过执行脚本来实现。

脚本内容为

ansible命令为 ansible all -m script -a 'bash xxx.sh' 。sleep的原因是退出太快可能脚本没跑起来就退出了。

原文链接

Ansible 1.9之前允许用户使用sudo和有限的su命令来以不同用明链户的身份/权限远程登陆执行激绝孙task,及创建资源. 在1.9版本中’become’取代了之前的sudo/su,

Ansible执行playbooks遇到需要提权的情况,除了要在yml文件里面设置become:True之外,还需要在宏竖hosts配置文件配置密码或者在运行playbook命令的时候加上输入密码参数

1、在hosts文件添加,ansible_become_pass=password

2、运行命令的时候加上 –ask-become-pass

此指令集还有:

become

等同于添加 ‘sudo:’ 或 ‘su:’ ,默认为sudo,被控主机为centos的话需要设置become_method为su

become_user

等同于添加 ‘sudo_user:’ 或 ‘su_user:’

become_method

可以设置的值为为:[sudo/su/pbrun/pfexec/doas]

hosts文件可设置变量

ansible_become、ansible_become_user、ansible_become_method、ansible_become_pass,意思同上


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/tougao/12220970.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-21
下一篇 2023-05-21

发表评论

登录后才能评论

评论列表(0条)

保存