mirror of https://github.com/jumpserver/jumpserver
parent
fcf20335e8
commit
0c11a602a8
|
@ -8,11 +8,18 @@
|
||||||
# debug:
|
# debug:
|
||||||
# msg: "Username: {{ account.username }}, Password: {{ account.secret }}"
|
# msg: "Username: {{ account.username }}, Password: {{ account.secret }}"
|
||||||
|
|
||||||
|
|
||||||
|
- name: Get groups of a Windows user
|
||||||
|
ansible.windows.win_user:
|
||||||
|
name: "{{ jms_account.username }}"
|
||||||
|
register: user_info
|
||||||
|
|
||||||
- name: Change password
|
- name: Change password
|
||||||
ansible.windows.win_user:
|
ansible.windows.win_user:
|
||||||
name: "{{ account.username }}"
|
name: "{{ account.username }}"
|
||||||
password: "{{ account.secret }}"
|
password: "{{ account.secret }}"
|
||||||
groups: "Administrators"
|
groups: "{{ user_info.groups[0].name }}"
|
||||||
|
groups_action: add
|
||||||
update_password: always
|
update_password: always
|
||||||
when: account.secret_type == "password"
|
when: account.secret_type == "password"
|
||||||
|
|
||||||
|
|
|
@ -22,6 +22,8 @@ logger = get_logger(__name__)
|
||||||
|
|
||||||
|
|
||||||
class ChangeSecretManager(AccountBasePlaybookManager):
|
class ChangeSecretManager(AccountBasePlaybookManager):
|
||||||
|
ansible_account_prefer = ''
|
||||||
|
|
||||||
def __init__(self, *args, **kwargs):
|
def __init__(self, *args, **kwargs):
|
||||||
super().__init__(*args, **kwargs)
|
super().__init__(*args, **kwargs)
|
||||||
self.method_hosts_mapper = defaultdict(list)
|
self.method_hosts_mapper = defaultdict(list)
|
||||||
|
|
|
@ -30,6 +30,10 @@ class GatherAccountsFilter:
|
||||||
result = {}
|
result = {}
|
||||||
for line in info:
|
for line in info:
|
||||||
data = line.split('@')
|
data = line.split('@')
|
||||||
|
if len(data) == 1:
|
||||||
|
result[line] = {}
|
||||||
|
continue
|
||||||
|
|
||||||
if len(data) != 3:
|
if len(data) != 3:
|
||||||
continue
|
continue
|
||||||
username, address, dt = data
|
username, address, dt = data
|
||||||
|
|
|
@ -4,8 +4,13 @@
|
||||||
- name: Gather posix account
|
- name: Gather posix account
|
||||||
ansible.builtin.shell:
|
ansible.builtin.shell:
|
||||||
cmd: >
|
cmd: >
|
||||||
users=$(getent passwd | grep -v nologin | grep -v shutdown | awk -F":" '{ print $1 }');for i in $users;
|
users=$(getent passwd | grep -v nologin | grep -v shutdown | awk -F":" '{ print $1 }');for i in $users;
|
||||||
do last -w -F $i -1 | head -1 | grep -v ^$ | awk '{ print $1"@"$3"@"$5,$6,$7,$8 }';done
|
do k=$(last -w -F $i -1 | head -1 | grep -v ^$ | awk '{ print $1"@"$3"@"$5,$6,$7,$8 }')
|
||||||
|
if [ -n "$k" ]; then
|
||||||
|
echo $k
|
||||||
|
else
|
||||||
|
echo $i
|
||||||
|
fi;done
|
||||||
register: result
|
register: result
|
||||||
|
|
||||||
- name: Define info by set_fact
|
- name: Define info by set_fact
|
||||||
|
|
|
@ -12,6 +12,7 @@ logger = get_logger(__name__)
|
||||||
|
|
||||||
|
|
||||||
class PushAccountManager(ChangeSecretManager, AccountBasePlaybookManager):
|
class PushAccountManager(ChangeSecretManager, AccountBasePlaybookManager):
|
||||||
|
ansible_account_prefer = ''
|
||||||
|
|
||||||
@classmethod
|
@classmethod
|
||||||
def method_type(cls):
|
def method_type(cls):
|
||||||
|
|
|
@ -25,6 +25,7 @@ class PlaybookCallback(DefaultCallback):
|
||||||
class BasePlaybookManager:
|
class BasePlaybookManager:
|
||||||
bulk_size = 100
|
bulk_size = 100
|
||||||
ansible_account_policy = 'privileged_first'
|
ansible_account_policy = 'privileged_first'
|
||||||
|
ansible_account_prefer = 'root,Administrator'
|
||||||
|
|
||||||
def __init__(self, execution):
|
def __init__(self, execution):
|
||||||
self.execution = execution
|
self.execution = execution
|
||||||
|
@ -123,6 +124,7 @@ class BasePlaybookManager:
|
||||||
def generate_inventory(self, platformed_assets, inventory_path):
|
def generate_inventory(self, platformed_assets, inventory_path):
|
||||||
inventory = JMSInventory(
|
inventory = JMSInventory(
|
||||||
assets=platformed_assets,
|
assets=platformed_assets,
|
||||||
|
account_prefer=self.ansible_account_prefer,
|
||||||
account_policy=self.ansible_account_policy,
|
account_policy=self.ansible_account_policy,
|
||||||
host_callback=self.host_callback,
|
host_callback=self.host_callback,
|
||||||
)
|
)
|
||||||
|
|
|
@ -14,7 +14,7 @@ __all__ = ['JobViewSet', 'JobExecutionViewSet', 'JobRunVariableHelpAPIView',
|
||||||
from ops.tasks import run_ops_job_execution
|
from ops.tasks import run_ops_job_execution
|
||||||
from ops.variables import JMS_JOB_VARIABLE_HELP
|
from ops.variables import JMS_JOB_VARIABLE_HELP
|
||||||
from orgs.mixins.api import OrgBulkModelViewSet
|
from orgs.mixins.api import OrgBulkModelViewSet
|
||||||
from orgs.utils import tmp_to_org, get_current_org_id, get_current_org
|
from orgs.utils import tmp_to_org, get_current_org
|
||||||
from accounts.models import Account
|
from accounts.models import Account
|
||||||
|
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue